Создание пользовательского блока (Code-Basic) простым языком.

Написание кода на языке C++, не зная языка С++.

Статистический опрос.

Мне помогла эта тема разобраться с созданием ПБ.
34
61%
Я уже умел создавать ПБ, но нашел в теме что то новое для себя.
16
29%
Я умею создавать ПБ, ничего нового, но считаю тему полезной.
3
5%
Тема прикольная, но особой пользы от нее я не вижу.
1
2%
Полный бред. Прорабы какие то, квартиранты. Чушь.
2
4%
 
Всего голосов: 56

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

#81

Сообщение aidar_i » 09.12.2021{, 17:37}

Qwert855 писал(а):
09.12.2021{, 15:57}
Т.е только через "новый" редактор?
Нет, делайте в старом.
Вам письмо отправлял в ЛС давно, откройте.

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Создание пользовательского блока (Code-Basic) простым языком.

#82

Сообщение Qwert855 » 12.12.2021{, 21:17}

Если кто то знает как можно добавлять условия экземпляров в блоках, подскажите пож та.
Видел такие блоки от нового редактора, но редактор очень накручен, функционал большинства опций не понятен.

по итогу объединил код декларации и код цикла одним блоком, сняв флаг использования одного экземпляра и добавив нужные на данный момент условия.

Код: Выделить всё

#include <Adafruit_NeoPixel.h>
bool en;
bool En;
byte num_led;
byte NumL;
byte brightness;
byte led_1r;
byte led_1g;
byte led_1b;
bool clearL;
bool St;
//bool clearL;
Adafruit_NeoPixel pixels= Adafruit_NeoPixel(5 ,   7 , NEO_GRB + NEO_KHZ800);
void setup()
{
    pixels.begin();
    pixels.show();
}
void loop()
{
    //Плата:5
    en = 0;
    En = 0;
    num_led = 0;
    NumL = 0;
    brightness = 0;
    led_1r = 0;
    led_1g = 0;
    led_1b = 0;
    clearL = 0;
    if (en   == 1 && En == 0)
    {
        pixels.setBrightness(brightness);
        pixels.setPixelColor (num_led -1, pixels.Color(led_1r  ,  led_1g  ,  led_1b));
        pixels.show();
        St = 1;
    }
    else if (En == 1 && en   == 0)
    {
        pixels.setBrightness(brightness);
        for (byte i = num_led -1; i <= NumL -1; ++i)
        {
            pixels.setPixelColor (i, pixels.Color(led_1r  ,  led_1g  ,  led_1b));
            pixels.show();
            St = 1;
            //clearL = 1;
        }
    }
    else if (En == 0 && clearL == 1)
    //else if (En == 1 && en == 1)
    {
        // clearL = (0);
        pixels.clear();
        pixels.show();
        St = 0;
    }
    else
    {
        pixels.setPixelColor (num_led -1, pixels.Color(0 , 0  ,  0));
        pixels.show();
        St = 0;
    }
    //Плата:6
}

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

#83

Сообщение aidar_i » 13.12.2021{, 17:46}

Qwert855 писал(а):
12.12.2021{, 21:17}
Если кто то знает как можно добавлять условия экземпляров в блоках
СпойлерПоказать
NeoPixel.flp
(114.75 КБ) 47 скачиваний

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Создание пользовательского блока (Code-Basic) простым языком.

#84

Сообщение Qwert855 » 13.12.2021{, 18:22}

да я по сути так и сделал.

но в новом редакторе можно присваивать номера самому
хотелось бы сделать декларацию на экземпляр с присвоением пина, а далее блоки функции привязывать к экземпляру.
СпойлерПоказать
002.flp
(2.34 МБ) 54 скачивания
СпойлерПоказать
Безымянный2.png
как объяснить блоку что несет только функцию луп, к какому заголовку он относится? если в проекте таких блоков 10 в разных частях программы.
можно конечно поставить всего один блок на проект и все сделать последовательностью перезаписи переменных, но все же.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

#85

Сообщение aidar_i » 13.12.2021{, 19:52}

Qwert855 писал(а):
13.12.2021{, 18:22}
как объяснить блоку что несет только функцию луп, к какому заголовку он относится? если в проекте таких блоков 10 в разных частях программы.
Вот так: создаете для каждой ленты еще свой главный блок со своим идентификатором.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

#86

Сообщение aidar_i » 13.12.2021{, 20:09}

Пример с блоками
NeoPixel_1.flp
(413.07 КБ) 53 скачивания

Qwert855
Сержант
Сообщения: 159
Зарегистрирован: 19.12.2020{, 23:57}
Репутация: 7
Имя: Alex

Создание пользовательского блока (Code-Basic) простым языком.

#87

Сообщение Qwert855 » 13.12.2021{, 20:33}

это нужно вручную изменения вставить в код и потом блоки размножить?
pixels_1
pixels_2
и тд.
и все корректировки в ЛУП блоке разово так же вручную делать. :(
трудоемко но ОК. спасибо

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Создание пользовательского блока (Code-Basic) простым языком.

#88

Сообщение aidar_i » 13.12.2021{, 20:49}

Qwert855 писал(а):
13.12.2021{, 20:33}
это нужно вручную изменения вставить в код и потом блоки размножить?
pixels_1
pixels_2
и тд.
и все корректировки в ЛУП блоке разово так же вручную делать. :(
трудоемко но ОК. спасибо
Делаете 2 блока на один вывод, куда подключена лента (блок 1 и размножаемый блок 1.1), если у Вас 2 ленты то нужно 4 блока. Блоки 1.1, 2.1 могут вставляться необходимое количество раз. Ничего трудоемкого!
В код лазить не нужно, и, вообще то, я Вам блоки уже выложил! Если Вам нужно еще на третий вывод, создайте блоки под номером 3 и 3.1.
Да, в новом редакторе можно из параметров.

Ответить

Вернуться в «Обучающие примеры работы в FLProg»