FLProg 9.6.x тестирование

Tyma
Рядовой
Сообщения: 56
Зарегистрирован: 02 мар 2023, 02:46
Имя: Tomas
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: FLProg 9.6.x тестирование

Сообщение Tyma »

Ander писал(а): 15 мар 2026, 20:47
Tyma писал(а): 15 мар 2026, 20:41
montirovka писал(а): 15 мар 2026, 19:54
Подключите блок (железо) к аналоговому блоку и выведите на дисплей или uart значения при нажатии кнопок. Эти значения будут нужны для определения интервалов значений для понятия работы кнопок. В 9 версии FLProg используется 12 битное АЦП. В старых версиях 10 битное значение было. Из-за этого не работают некоторые блоки использующие аналоговый вход. Так же на работу влияет напряжение питания платы кнопок. Имеется ввиду 3.3 вольта или 5 вольт.
Да, я именно это и сделал, получил значения для каждой кнопки. Поэтому и указал, что на старой версии работает, а вот 9.6.4 - собирает криво.

С уважением.
9.6.4 не криво собирает, просто блок не адаптирован под эту версию - обращайтесь к автору блока.
Но я пересобрал аналогичный,уже используя версию 9.6.4, как показано на видео уроке https://flprog.ru/uchebnyj-centr/videou ... telja-fbd/ - и безрезультатно.
5_Btn_(FBD).ubi
С уважением.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
pilotyac71
Рядовой
Сообщения: 49
Зарегистрирован: 06 мар 2019, 16:36
Имя: Александр
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: FLProg 9.6.x тестирование

Сообщение pilotyac71 »

Здравствуйте. Обновил до версии 9.6.21. Блок меню в многоуровневом режиме так и не работает. Вроде бы важный блок для управления оборудованием, но его не исправляют. В 7 и 8 версиях все работало замечательно. Почему в 9 на него не обращают внимания? Так же выше задавал вопрос про RemoteXY. Никто ничего не ответил.
Аватара пользователя
montirovka
Подполковник
Сообщения: 1320
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 161 раз
Поблагодарили: 521 раз

Re: FLProg 9.6.x тестирование

Сообщение montirovka »

Ander писал(а): 15 мар 2026, 20:47
Tyma писал(а): 15 мар 2026, 20:41
montirovka писал(а): 15 мар 2026, 19:54
Да, я именно это и сделал, получил значения для каждой кнопки. Поэтому и указал, что на старой версии работает, а вот 9.6.4 - собирает криво.

С уважением.
9.6.4 не криво собирает, просто блок не адаптирован под эту версию - обращайтесь к автору блока.
Попробовал я сам переделать под новую версию этот блок. Не получается.
А вот отмазка, что 9.6.4 не криво собирает, просто блок не адаптирован под эту версию достаточно универсальная. Что в блоке используется математика не адаптирована под девятую версию? Там деление, вычитание, сложение, сравнение и логическое И.
С нуля сделал блок. Открываю его , а там нет связей. Да и связи не получается восстановить.
2026-03-16_14-25-03.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
montirovka
Подполковник
Сообщения: 1320
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 161 раз
Поблагодарили: 521 раз

Re: FLProg 9.6.x тестирование

Сообщение montirovka »

Решил разобраться с кнопками что выше. Вернее даже не так. Есть от телевизоров Supra с десяток плат с кнопками управления. На платке 7 кнопок. Разобрался с подключением. Все заработало. Делал по принципу как в проекте выше, но без ПБ и сразу вводил значения пределов. Решил сделать как пользовательский блок. Не заработало. При нажатии любой кнопки, выдает что нажата 7 кнопка. Не получилось разобраться с ПБ.
2026-03-17_08-12-17.png
Сделал для теста простой проект в FLProg 9.6.4. Компаратор сравнивает два значения и включает соответствующий дисплей с номер входа. На второй плате точно такой же проект, как и на первой. На первой работает,а на второй нет.
В проекте что ниже первая плата отключена от компиляции.
2026-03-17_08-27-54.png
Попробовал в версии FLProg 9.6.21 ошибка компиляции второй платы.
2026-03-17_08-35-15.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Tyma
Рядовой
Сообщения: 56
Зарегистрирован: 02 мар 2023, 02:46
Имя: Tomas
Благодарил (а): 1 раз
Поблагодарили: 1 раз

Re: FLProg 9.6.x тестирование

Сообщение Tyma »

Запрос проверить собранный код у chatgpt:
Да. Он криво собран по той же причине, что и раньше.

Главный баг вот здесь:

ubpar_125440348 = 0;
...
ubpar_79146376 = 0;
ubpar_175158211 = 0;
ubpar_40719224 = 0;

Ты вызываешь функцию так:

_func_UB_249579380(..., 100, 1760, 420, 1040);

но внутри функции FLProg сразу затирает все входные пороги в ноль.
Из-за этого дальше считается вот это:

_gtv1 = (0) / 2; // 0
_gtv2 = ((0 - 0) / 2) + 0; // 0
_gtv3 = ((0 - 0) / 2) + 0; // 0
_gtv4 = ((0 - 0) / 2) + 0; // 0
_gtv5 = ((4095 - 0) / 2) + 0; // 2047

То есть реально у тебя выходят диапазоны такие:

кнопка 1: adc < 0 → никогда

кнопка 2: 0 < adc < 0 → никогда

кнопка 3: 0 < adc < 0 → никогда

кнопка 4: 0 < adc < 0 → никогда

кнопка 5: 0 < adc < 2047 → почти всё подряд

То есть блок логически сломан.

Почему это видно сразу

Вот этот кусок уже приговор:

ubpar_125440348 = 0;
ubpar_79146376 = 0;
ubpar_175158211 = 0;
ubpar_40719224 = 0;

Если входные параметры функции обнуляются, значит:

либо блок "Вставка кода" в FLProg собран с ошибкой,

либо FLProg опять неверно сгенерировал связи,

либо параметры блока оформлены так, что они попали как выходные времянки, а не как реальные входы.
И в финале, результат такой и получается - жмёш любую кнопку (в верх, в низ, право), всегда высвечивается кнопка 5.
Если делать на старой версии ( у меня 8.0.2) - все летает прекрасно, как "мама родила".
ecoins
Администратор
Сообщения: 4494
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 229 раз
Поблагодарили: 390 раз

Re: FLProg 9.6.x тестирование

Сообщение ecoins »

pilotyac71 писал(а): 16 мар 2026, 09:05 Здравствуйте. Обновил до версии 9.6.21. Блок меню в многоуровневом режиме так и не работает. Вроде бы важный блок для управления оборудованием, но его не исправляют. В 7 и 8 версиях все работало замечательно. Почему в 9 на него не обращают внимания? Так же выше задавал вопрос про RemoteXY. Никто ничего не ответил.
1.Блок меню поправлен. Сейчас готовится стабильная версия, будут внесены изменения в блок меню.
2.По RemoteXY - сложившуюся проблему обещали разрешить разработчики RXY и пока у них не складывается.
Пока смотрите рекомендации по ссылке
viewtopic.php?p=145028#p145028
С уважением, ecoins.
pilotyac71
Рядовой
Сообщения: 49
Зарегистрирован: 06 мар 2019, 16:36
Имя: Александр
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: FLProg 9.6.x тестирование

Сообщение pilotyac71 »

ecoins писал(а): 19 мар 2026, 23:55
pilotyac71 писал(а): 16 мар 2026, 09:05 Здравствуйте. Обновил до версии 9.6.21. Блок меню в многоуровневом режиме так и не работает. Вроде бы важный блок для управления оборудованием, но его не исправляют. В 7 и 8 версиях все работало замечательно. Почему в 9 на него не обращают внимания? Так же выше задавал вопрос про RemoteXY. Никто ничего не ответил.
1.Блок меню поправлен. Сейчас готовится стабильная версия, будут внесены изменения в блок меню.
2.По RemoteXY - сложившуюся проблему обещали разрешить разработчики RXY и пока у них не складывается.
Пока смотрите рекомендации по ссылке
viewtopic.php?p=145028#p145028
С уважением, ecoins.
Спасибо за ответ.
Аватара пользователя
Nikolai
Рядовой
Сообщения: 36
Зарегистрирован: 06 ноя 2021, 10:05
Откуда: Чехов
Имя: Николай
Благодарил (а): 5 раз

Re: FLProg 9.6.x тестирование

Сообщение Nikolai »

Nikolai писал(а): 12 мар 2026, 02:06 9.6.21, ESP8266 NodeMCU 1.0 не мигает, что не так?
Вопрос так и остался открытым FLP6.9.23, ESP8266WeMos mini: выходы d1,d2,d3,d4 - работают (мигают), выходы d0,d5,d6,d7,d8 - не работают(не мигают).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
Engineer200
Рядовой
Сообщения: 57
Зарегистрирован: 19 дек 2025, 06:16
Имя: Александр
Благодарил (а): 18 раз
Поблагодарили: 5 раз

Re: FLProg 9.6.x тестирование

Сообщение Engineer200 »

Engineer200 писал(а): 20 фев 2026, 06:45 Доброе утро!
FLProg 9.6.9 . Блок из кандидатов, расширитель MCP2307. Ошибка в режиме "все входы". Не ставится завершающая фигурная скобка. А сама скобка улетает в конец скетча.
Сейчас перед компиляцией ардуиной, руками ставлю скобку перед следующей платой (один блок на плате) и удаляю лишнюю скобку в конце скетча.
Режим "все выходы" работает нормально.
Другие режимы не проверял.
Неправильно было написано, правильно MCP23017.
Ошибку в блоке нашёл.
Основные настройки
___Код блока
______Код каждого экземпляра
_________Секция "Loop"
____________Место вставки блока 'Loop"
_______________END:run
Установлено ненужное условие.
Может поправите, А то эта беда таскается уже в нескольких версиях подряд.
Хорошая программа FLProg. Спасибо.
Люблю делать то, что потом само работает.
ecoins
Администратор
Сообщения: 4494
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 229 раз
Поблагодарили: 390 раз

Re: FLProg 9.6.x тестирование

Сообщение ecoins »

Engineer200 писал(а): 25 мар 2026, 09:31 Доброе утро!
FLProg 9.6.9 . Блок из кандидатов, расширитель MCP2307. Ошибка в режиме "все входы". Не ставится завершающая фигурная скобка. А сама скобка улетает в конец скетча.
Сейчас перед компиляцией ардуиной, руками ставлю скобку перед следующей платой (один блок на плате) и удаляю лишнюю скобку в конце скетча.
Может поправите, А то эта беда таскается уже в нескольких версиях подряд.
Хорошая программа FLProg. Спасибо.
1.Поправил.
01.MCP23017.ubi
2.Пока можете пользоваться присоединенном блоке - в кандидатах наверное появится ближе к стабильной версии.
Успехов.
С уважением, ecoins.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
krost
Рядовой
Сообщения: 15
Зарегистрирован: 05 авг 2024, 08:31
Имя: Andrei
Благодарил (а): 1 раз

Re: FLProg 9.6.x тестирование

Сообщение krost »

Доброго времени суток Камрады! Помогите победить дисплей St7789 проект
st7789.flp
Flprog 9.6.25
вот скетч
Показать

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

#define RT_HW_FLPROG_PRG "FLProg 9.6.25 - SP 0.0"
#define RT_HW_FLPROG_PRJ "FLProg 9.6.21 - SP 0.0"
#include "flprogUtilites.h"
#include "RT_HW_OLED.h"
#ifdef RT_HW_SPECIAL_INCLUDE
#include RT_HW_SPECIAL_INCLUDE
#endif
#ifdef RT_HW_SPECIAL_ISTANCE
RT_HW_SPECIAL_ISTANCE
#endif
//========================================================================================================================================
//++++ Начало объявления дисплея TFT ST7789 RGB(SPI0)new ++++
//========================================================================================================================================
//!!!!!Дисплей
static RT_HW_STRUCT_SPI_DEV oled_46401107_busDev;
static RT_HW_OLED_SPI_Bus oled_46401107_bus( & oled_46401107_busDev);
static RT_HW_OLED_Device oled_46401107;
bool oled_46401107_isNeedRepaint = true;
uint8_t oled_46401107_num = 0;
uint8_t oled_46401107_contrast = 100;
uint8_t oled_46401107_rotate = RT_HW_OLED_TYPE_ROTATE_0;
int16_t oled_46401107_offsetX = 0;
int16_t oled_46401107_offsetY = 0;
uint8_t oled_46401107_mirrorX = 0;
uint8_t oled_46401107_mirrorY = 0;
bool oled_46401107_canWork = true;
uint32_t oled_46401107_LR;
//#### Экран Экран 1
bool oled_scr_53835402_active = true;
//------ Виджет Текст - 1
String oled_fld_txt_29588805_str = "TEXT";
int16_t oled_fld_txt_29588805_x = 42;
int16_t oled_fld_txt_29588805_y = 142;
int8_t oled_fld_txt_29588805_scl = 6;
//------ Виджет Текст - 2
String oled_fld_txt_165224358_str = "TEXT";
int16_t oled_fld_txt_165224358_x = 71;
int16_t oled_fld_txt_165224358_y = 93;
int8_t oled_fld_txt_165224358_scl = 4;
//------ Виджет Цифровое значение - 3
int16_t oled_fld_nv_47666115_x = 65;
int16_t oled_fld_nv_47666115_y = 42;
int8_t oled_fld_nv_47666115_scl = 4;
int16_t oled_fld_nv_47666115_var = 0;
//========================================================================================================================================
//++++ Конец объявления дисплея TFT ST7789 RGB(SPI0)new ++++
//========================================================================================================================================
int16_t _gtv1 = 0;
bool _count2I = 0;
int16_t _count2_Value = 0;
bool _gen1I = 0;
bool _gen1O = 0;
uint32_t _gen1P = 0UL;
void setup()
 {
  RT_HW_Base.shed.quick.qnt = 5;
  RT_HW_Base.shed.fast.qnt = 4;
  RT_HW_Base.shed.slow.qnt = 4;
  RT_HW_Base.shed.back.qnt = 5;
  RT_HW_Base.shed.frdm.qnt = 50;
  RT_HW_Base.shed.sysQuick.qnt = 21;
  flprog::specialSetup();}
void loop()
 {
  RT_HW_Base.sheduler();
  flprog::specialPool();
  if(RT_HW_Base.shed.sysQuick.num == 1)
   {
    //========================================================================================================================================
    //++++ Начало тела дисплея TFT ST7789 RGB(SPI0)new ++++
    //========================================================================================================================================
    if(oled_46401107_canWork)
     {
      oled_custom_46401107();
      
       {
        auto & disp = oled_46401107;
        auto & oled = RT_HW_oled;
        if(oled.checkDev(disp.num))
         {
          auto & d =  * oled.dev[disp.num];
          d.direct(1);
          d.sendDevice();
          if( ! d.runDevice)
           {
            if(oled_46401107_isNeedRepaint)
             {
              d.clear(0, 0);
              oled_scr_draw_53835402();
              d.runDevice = 1;
              oled_46401107_isNeedRepaint = false;
              oled_46401107_LR = millis();}}}}
      //#### Экран Экран 1
      //------ Виджет Цифровое значение - 3
      if((_gtv1) != oled_fld_nv_47666115_var)
       {
        oled_fld_nv_47666115_var = _gtv1;
        oled_46401107_isNeedRepaint = true;}}
    //========================================================================================================================================
    //++++ Конец тела дисплея TFT ST7789 RGB(SPI0)new ++++
    //========================================================================================================================================
  }
  //Плата:1
  if(RT_HW_Base.shed.frdm.num == 1)
   {
    if( ! (0))
     {
      if( ! _gen1I)
       {
        _gen1I = 1;
        _gen1O = 1;
        _gen1P = millis();}}
    else
     {
      _gen1I = 0;
      _gen1O = 0;}
    if(_gen1I)
     {
      if(flprog::isTimer(_gen1P, 50))
       {
        _gen1P = millis();
        _gen1O =  ! _gen1O;}}
    if(_gen1O)
     {
      if( ! _count2I)
       {
        _count2I = 1;
        _count2_Value = _count2_Value  +  1;}} else {_count2I = 0;}
    _gtv1 = _count2_Value;}}
//========================================================================================================================================
//++++ Начало функций дисплея TFT ST7789 RGB(SPI0)new ++++
//========================================================================================================================================
//#### Функция инициализации
void oled_custom_46401107()
 {
  auto & d = oled_46401107;
  if(d.custom) {return;}
  auto & bus = oled_46401107_bus;
  uint8_t cs = 5;
  uint8_t dc = 2;
  uint8_t rst = 4;
  uint8_t blk = 255;
  d.custom = 1;
  d.bus =  & bus;
  if( ! oled_46401107_num) {oled_46401107_num = RT_HW_oled.addDevice( & d);}
  auto & num = oled_46401107_num;
  if(num)
   {
    bus.setParamSPI(num, 0, cs, dc, rst, blk, 40000000UL);
    d.setScreenSize(240, 320);
    d.setParamDev_ST7789(num, 100);
    d.setRotation(oled_46401107_rotate);
    oled_46401107_isNeedRepaint = true;
    d.setModeCPU();
    d.sendSizePacket = 0;}}
//#### Отрисовка экрана Экран 1
void oled_scr_draw_53835402()
 {
  if( ! oled_scr_53835402_active) {return;}
  oled_nv_draw_47666115();
  oled_text_draw_165224358();
  oled_text_draw_29588805();}
//------ Отрисовка виджета Текст - 1
void oled_text_draw_29588805() {oled_46401107.drawString(0, oled_fld_txt_29588805_x, oled_fld_txt_29588805_y, oled_fld_txt_29588805_str, oled_fld_txt_29588805_scl, RT_HW_OLED_TEXT_NORMAL, RT_HW_OLED_FILL_RED, RT_HW_OLED_FILL_NO);}
//------ Отрисовка виджета Текст - 2
void oled_text_draw_165224358() {oled_46401107.drawString(0, oled_fld_txt_165224358_x, oled_fld_txt_165224358_y, oled_fld_txt_165224358_str, oled_fld_txt_165224358_scl, RT_HW_OLED_TEXT_NORMAL, RT_HW_OLED_FILL_BLUE, RT_HW_OLED_FILL_NO);}
//------ Отрисовка виджета Цифровое значение - 3
void oled_nv_draw_47666115()
 {
  String fullString = ""  + String(oled_fld_nv_47666115_var) +  "";
  oled_46401107.drawString(0, oled_fld_nv_47666115_x, oled_fld_nv_47666115_y, fullString, oled_fld_nv_47666115_scl, RT_HW_OLED_TEXT_NORMAL, RT_HW_OLED_FILL_GREEN, RT_HW_OLED_FILL_NO);}
//========================================================================================================================================
//++++ Конец функций дисплея TFT ST7789 RGB(SPI0)new ++++
//========================================================================================================================================
В итоге белый экран
Направьте пожалуйста на путь истинный
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Администратор
Сообщения: 4494
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 229 раз
Поблагодарили: 390 раз

Re: FLProg 9.6.x тестирование

Сообщение ecoins »

krost писал(а): 25 мар 2026, 21:14 Доброго времени суток Камрады! Помогите победить дисплей St7789 проект st7789.flp Flprog 9.6.25
В итоге белый экран
Направьте пожалуйста на путь истинный
1.Попробуйте приложенный проект.
2.Выведите на консоль отчет с параметрами проекта - для этого после загрузки программы и переход в монитор порта на ESP32 скорее всего понадобится нажать СБРОС.
3.Посмотрите в отчете пины SPI - к тем ли пинам подключили дисплей?
4.Если не получится, пришлите фото дисплея (с двух сторон).
С уважением, ecoins.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Alhim20
Рядовой
Сообщения: 99
Зарегистрирован: 28 окт 2024, 04:02
Откуда: Белогорск
Имя: Илья
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: FLProg 9.6.x тестирование

Сообщение Alhim20 »

Доброе время суток. У меня стояла 9.6.21. Все было ок. Обновился на 9.6.25. Крашится сразу при открытии любого старого проекта из 9.6.21 и раньше. 9.6.23 такая же история. Откатился на 9.6.21. Все ок. Вин 10.
Аватара пользователя
support
Администратор
Сообщения: 1939
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 60 раз
Контактная информация:

Re: FLProg 9.6.x тестирование

Сообщение support »

Alhim20 писал(а): 26 мар 2026, 14:35 Доброе время суток. У меня стояла 9.6.21. Все было ок. Обновился на 9.6.25. Крашится сразу при открытии любого старого проекта из 9.6.21 и раньше. 9.6.23 такая же история. Откатился на 9.6.21. Все ок. Вин 10.
К утру бэта версия обновится
Автор программы FLProg.
gingrig
Рядовой
Сообщения: 1
Зарегистрирован: 26 мар 2026, 09:34
Имя: Виктор

Re: FLProg 9.6.x тестирование

Сообщение gingrig »

Здравствуйте! Штатный блок (в версии 9.6.26) получения точного времени с сервера NTP не реагирует на настройки интервалов запросов. Количество успешных синхронизаций и счетчиков пакетов увеличивается раз в секунду на единицу. Это значит, что происходят постоянные запросы на сервер NTP? Если так, то это не есть хорошо. Штатный блок в версии 8.2.3 работает, как положено. Но перенести его в версию 9 не получается. Контроллер ESP8266 NodeMCU 1.0, часы DS3231.
Показать

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

#define RT_HW_FLPROG_PRG "FLProg 9.6.26 - SP 0.0"
#define RT_HW_FLPROG_PRJ "FLProg 9.6.26 - SP 0.0"
#include "flprogUtilites.h"
#include<Wire.h>
#include "flprogEthernet.h"
#include "RT_HW_OLED.h"
#include "flprogNTP.h"
#ifdef RT_HW_SPECIAL_INCLUDE
#include RT_HW_SPECIAL_INCLUDE
#endif
#ifdef RT_HW_SPECIAL_ISTANCE
RT_HW_SPECIAL_ISTANCE
#endif
FLProgOnBoardWifiInterface WifiInterface_34311974;
#define FLPROG_WIFI_INTERFACE1 WifiInterface_34311974
FLProgNTP _NTPGetTime1( & WifiInterface_34311974);
//========================================================================================================================================
//++++ Начало объявления дисплея OLED SSD1306 MONO(I2C0)++++
//========================================================================================================================================
//!!!!!Дисплей
static RT_HW_STRUCT_I2C_DEV oled_217783865_busDev;
static RT_HW_OLED_I2C_Bus oled_217783865_bus( & oled_217783865_busDev);
static RT_HW_OLED_Device oled_217783865;
bool oled_217783865_isNeedRepaint = true;
uint8_t oled_217783865_num = 0;
uint8_t oled_217783865_contrast = 100;
uint8_t oled_217783865_rotate = RT_HW_OLED_TYPE_ROTATE_0;
int16_t oled_217783865_offsetX = 0;
int16_t oled_217783865_offsetY = 0;
uint8_t oled_217783865_mirrorX = 0;
uint8_t oled_217783865_mirrorY = 0;
bool oled_217783865_canWork = true;
uint32_t oled_217783865_LR;
//#### Экран Экран 1
bool oled_scr_206095524_active = true;
//------ Виджет Цифровое значение
int16_t oled_fld_nv_152401116_x = 52;
int16_t oled_fld_nv_152401116_y = 53;
int8_t oled_fld_nv_152401116_scl = 1;
int16_t oled_fld_nv_152401116_var = 0;
//------ Виджет Цифровое значение
int16_t oled_fld_nv_221904581_x = 3;
int16_t oled_fld_nv_221904581_y = 53;
int8_t oled_fld_nv_221904581_scl = 1;
int16_t oled_fld_nv_221904581_var = 0;
//------ Виджет Строковое значение
int16_t oled_fld_sv_203127908_x = 4;
int16_t oled_fld_sv_203127908_y = 5;
int8_t oled_fld_sv_203127908_scl = 1;
String oled_fld_sv_203127908_var = "";
//========================================================================================================================================
//++++ Конец объявления дисплея OLED SSD1306 MONO(I2C0)++++
//========================================================================================================================================
struct _I2CRealRimeClockTime
 {
  byte seconds = 0;
  byte minutes = 0;
  byte Hours = 0;
  byte weekday = 0;
  byte day = 0;
  byte month = 0;
  byte year = 0;
  uint32_t startTime = 0;};
_I2CRealRimeClockTime _RTC1;
uint8_t _gtv1 = 0;
uint8_t _gtv2 = 0;
String _gtv3 = "";
int16_t _gtv4 = 0;
int16_t _gtv5 = 0;
bool _NTPGetTime1_CR = 0;
bool _NTPGetTime1_CROS = 0;
bool _NTPGetTime1_hfp = 0;
bool _RTCST_Ost5 = 0;
String _RTC1_GetTime6_StrOut;
bool _count2I = 0;
uint32_t _count2_Value = 0UL;
void setup()
 {
  RT_HW_Base.shed.quick.qnt = 5;
  RT_HW_Base.shed.fast.qnt = 4;
  RT_HW_Base.shed.slow.qnt = 4;
  RT_HW_Base.shed.back.qnt = 5;
  RT_HW_Base.shed.frdm.qnt = 50;
  Wire.pins(4, 5);
  Wire.begin();
  delay(10);
  WifiInterface_34311974.setSkippingEvents(0);
  WifiInterface_34311974.clientMode(true);
  WifiInterface_34311974.setAutoConnect(true);
  WifiInterface_34311974.setAutoReconnect(true);
  WifiInterface_34311974.mac(0x78, 0xAC, 0xC0, 0x8D, 0x8C, 0xCC);
  WifiInterface_34311974.setClientSsid("Gorsvet");
  WifiInterface_34311974.setClientPassword("11111111");
  WifiInterface_34311974.setDhcp();
  Wire.beginTransmission(68);
  Wire.write(0x0E);
  Wire.write(B00000000);
  Wire.write(B10001000);
  Wire.endTransmission();
  _RTC1.startTime = millis() -  1000;
  RT_HW_Base.shed.sysQuick.qnt = 21;
  _NTPGetTime1.timeServer("ntp1.niiftri.irkutsk.ru");
  _NTPGetTime1.reqestPeriod(30);
  _NTPGetTime1.unixID.zone = 7;
  _NTPGetTime1.setCallBack(_NTPGetTime1_OnAnswer);
  _NTPGetTime1.isUseAsClock(1);
  flprog::specialSetup();}
void loop()
 {
  RT_HW_Base.sheduler();
  flprog::specialPool();
  if(RT_HW_Base.shed.sysQuick.num == 1) {WifiInterface_34311974.pool();}
  if(RT_HW_Base.shed.sysQuick.num == 2) {_NTPGetTime1.pool();}
  if(RT_HW_Base.shed.sysQuick.num == 3)
   {
    //========================================================================================================================================
    //++++ Начало тела дисплея OLED SSD1306 MONO(I2C0)++++
    //========================================================================================================================================
    if(oled_217783865_canWork)
     {
      oled_custom_217783865();
      
       {
        auto & disp = oled_217783865;
        auto & oled = RT_HW_oled;
        if(oled.checkDev(disp.num))
         {
          auto & d =  * oled.dev[disp.num];
          d.direct(1);
          d.sendDevice();
          if( ! d.runDevice)
           {
            if(oled_217783865_isNeedRepaint)
             {
              d.clear(0, 0);
              oled_scr_draw_206095524();
              d.runDevice = 1;
              oled_217783865_isNeedRepaint = false;
              oled_217783865_LR = millis();}}}}
      //#### Экран Экран 1
      //------ Виджет Строковое значение
      if((_gtv3) != oled_fld_sv_203127908_var)
       {
        oled_fld_sv_203127908_var = _gtv3;
        oled_217783865_isNeedRepaint = true;}
      //------ Виджет Цифровое значение
      if((_gtv4) != oled_fld_nv_221904581_var)
       {
        oled_fld_nv_221904581_var = _gtv4;
        oled_217783865_isNeedRepaint = true;}
      //------ Виджет Цифровое значение
      if((_gtv5) != oled_fld_nv_152401116_var)
       {
        oled_fld_nv_152401116_var = _gtv5;
        oled_217783865_isNeedRepaint = true;}}
    //========================================================================================================================================
    //++++ Конец тела дисплея OLED SSD1306 MONO(I2C0)++++
    //========================================================================================================================================
  }
  //Плата:1
  if(RT_HW_Base.shed.frdm.num == 1)
   {
    get3231Date(0x68,  & _RTC1);
    _RTC1_GetTime6_StrOut = (_convertRealTimeClockNumberToString(_RTC1.day)) + 
String("-") + (_convertRealTimeClockNumberToString(_RTC1.month)) + 
String("-") + (String("20") + (_convertRealTimeClockNumberToString(_RTC1.year))) + 
String(" ") + (_convertRealTimeClockNumberToString(_RTC1.Hours)) + 
String(":") + (_convertRealTimeClockNumberToString(_RTC1.minutes)) + 
String(":") + (_convertRealTimeClockNumberToString(_RTC1.seconds));
    _gtv3 = _RTC1_GetTime6_StrOut;
    if(_NTPGetTime1_CR)
     {
      _NTPGetTime1_CR = 0;
      _NTPGetTime1_CROS = 0;}
    else
     {
      if(_NTPGetTime1_CROS)
       {
        _NTPGetTime1_CR = 1;
        _NTPGetTime1_hfp = 1;}}
    if(_NTPGetTime1_hfp) {_NTPGetTime1.reqestPeriod(21600);} else {_NTPGetTime1.reqestPeriod(30);}
    if(_NTPGetTime1_CR)
     {
      if( ! _count2I)
       {
        _count2I = 1;
        _count2_Value = _count2_Value  +  1;}} else {_count2I = 0;}
    _gtv4 = _count2_Value;
    if(_NTPGetTime1_CR)
     {
      if( ! (_RTCST_Ost5))
       {
        set3231Date(0x68,  & _RTC1, ((_NTPGetTime1.unixID.seconds)), ((_NTPGetTime1.unixID.minutes)), ((_NTPGetTime1.unixID.hours)), ((_NTPGetTime1.unixID.day)), ((_NTPGetTime1.unixID.month)), ((_NTPGetTime1.unixID.year)),  - 1);
        get3231Date(0x68,  & _RTC1);
        _RTCST_Ost5 = 1;}} else {_RTCST_Ost5 = 0;}
    _gtv5 = (_NTPGetTime1.getCounter());}}
byte decToBcd(byte val) {return((val / 10 * 16) + (val%10));}
void set3231Date(int addres, struct _I2CRealRimeClockTime  * timeStruct, int sec, int minut, int hou, int dat, int mo, int ye, int daW)
 {
  byte temp;
  Wire.beginTransmission(addres);
  Wire.write(0x00);
  if(sec < 0) {temp = timeStruct  -> seconds;} else {temp = sec;}
  Wire.write(decToBcd(temp));
  if(minut < 0) {temp = timeStruct  -> minutes;} else {temp = minut;}
  Wire.write(decToBcd(temp));
  if(hou < 0) {temp = timeStruct  -> Hours;} else {temp = hou;}
  Wire.write(decToBcd(temp));
  if(daW < 0) {temp = timeStruct  -> weekday;} else {temp = daW;}
  Wire.write(decToBcd(temp));
  if(dat < 0) {temp = timeStruct  -> day;} else {temp = dat;}
  Wire.write(decToBcd(temp));
  if(mo < 0) {temp = timeStruct  -> month;} else {temp = mo;}
  Wire.write(decToBcd(temp));
  if(ye < 0) {temp = timeStruct  -> year;} else {temp = ye;}
  Wire.write(decToBcd(temp));
  Wire.endTransmission();
  timeStruct  -> startTime = millis() -  1000;}
void get3231Date(int addres, struct _I2CRealRimeClockTime  * timeStruct)
 {
  if( ! (flprog::isTimer((timeStruct  -> startTime), 250))) {return;}
  Wire.beginTransmission(addres);
  Wire.write(0x00);
  Wire.endTransmission();
  Wire.requestFrom(addres, 7);
  if(Wire.available())
   {
    byte seconds = Wire.read();
    byte minutes = Wire.read();
    byte hours = Wire.read();
    byte day = Wire.read();
    byte date = Wire.read();
    byte month = Wire.read();
    byte year = Wire.read();
    timeStruct  -> seconds = (((seconds & B11110000) >> 4) *  10  + (seconds & B00001111));
    timeStruct  -> minutes = (((minutes & B11110000) >> 4) *  10  + (minutes & B00001111));
    timeStruct  -> Hours = (((hours & B00110000) >> 4) *  10  + (hours & B00001111));
    timeStruct  -> weekday = (day & B00000111);
    timeStruct  -> day = (((date & B00110000) >> 4) *  10  + (date & B00001111));
    timeStruct  -> month = (((month & B00010000) >> 4) *  10  + (month & B00001111));
    timeStruct  -> year = (((year & B11110000) >> 4) *  10  + (year & B00001111));}
  timeStruct  -> startTime = millis();}
String _convertRealTimeClockNumberToString(byte value)
 {
  if(value > 9) {return String(value, DEC);}
  return(String("0") +  String(value, DEC));}
void _NTPGetTime1_OnAnswer()
 {
  _NTPGetTime1_hfp = 1;
  _NTPGetTime1_CROS = 1;}
//========================================================================================================================================
//++++ Начало функций дисплея OLED SSD1306 MONO(I2C0)++++
//========================================================================================================================================
//#### Функция инициализации
void oled_custom_217783865()
 {
  auto & d = oled_217783865;
  if(d.custom) {return;}
  auto & bus = oled_217783865_bus;
  d.custom = 1;
  d.bus =  & bus;
  if( ! oled_217783865_num) {oled_217783865_num = RT_HW_oled.addDevice( & d);}
  auto & num = oled_217783865_num;
  if(num)
   {
    bus.setParamI2C(num, 0x3C, 0, 0, 0, 400000UL);
    d.setScreenSize(128, 64);
    d.setParamDev_SSD1306(num, 100);
    d.setRotation(oled_217783865_rotate);
    oled_217783865_isNeedRepaint = true;
    d.setContrast(oled_217783865_contrast);
    d.sendSizePacket = 0;}}
//#### Отрисовка экрана Экран 1
void oled_scr_draw_206095524()
 {
  if( ! oled_scr_206095524_active) {return;}
  oled_sv_draw_203127908();
  oled_nv_draw_221904581();
  oled_nv_draw_152401116();}
//------ Отрисовка виджета Цифровое значение
void oled_nv_draw_152401116()
 {
  String fullString = ""  + String(oled_fld_nv_152401116_var) +  "";
  oled_217783865.drawString(0, oled_fld_nv_152401116_x, oled_fld_nv_152401116_y, fullString, oled_fld_nv_152401116_scl, RT_HW_OLED_TEXT_NORMAL, RT_HW_OLED_FILL_WHITE, RT_HW_OLED_FILL_NO);}
//------ Отрисовка виджета Цифровое значение
void oled_nv_draw_221904581()
 {
  String fullString = ""  + String(oled_fld_nv_221904581_var) +  "";
  oled_217783865.drawString(0, oled_fld_nv_221904581_x, oled_fld_nv_221904581_y, fullString, oled_fld_nv_221904581_scl, RT_HW_OLED_TEXT_NORMAL, RT_HW_OLED_FILL_WHITE, RT_HW_OLED_FILL_NO);}
//------ Отрисовка виджета Строковое значение
void oled_sv_draw_203127908()
 {
  String fullString = ""  + oled_fld_sv_203127908_var  +  "";
  oled_217783865.drawString(0, oled_fld_sv_203127908_x, oled_fld_sv_203127908_y, fullString, oled_fld_sv_203127908_scl, RT_HW_OLED_TEXT_NORMAL, RT_HW_OLED_FILL_WHITE, RT_HW_OLED_FILL_NO);}
//========================================================================================================================================
//++++ Конец функций дисплея OLED SSD1306 MONO(I2C0)++++
//========================================================================================================================================
Alhim20
Рядовой
Сообщения: 99
Зарегистрирован: 28 окт 2024, 04:02
Откуда: Белогорск
Имя: Илья
Благодарил (а): 1 раз
Поблагодарили: 4 раза

Re: FLProg 9.6.x тестирование

Сообщение Alhim20 »

Блок НТП сервера во вкладке коммуникации
vicnic1520
Рядовой
Сообщения: 8
Зарегистрирован: 13 окт 2020, 14:34
Имя: Виктор
Благодарил (а): 1 раз

Re: FLProg 9.6.x тестирование

Сообщение vicnic1520 »

Внимательнее читайте. О нем и речь. Штатный блок NTP из вкладки коммуникации версии программы 9.6.26.
maxrolor
Рядовой
Сообщения: 60
Зарегистрирован: 14 дек 2023, 14:04
Откуда: Анапа
Имя: Максим
Благодарил (а): 12 раз
Поблагодарили: 8 раз

Re: FLProg 9.6.x тестирование

Сообщение maxrolor »

Доброго времени суток. Подскажите пожалуйста. А что за Клуб, что он даёт и для чего?
pilotyac71
Рядовой
Сообщения: 49
Зарегистрирован: 06 мар 2019, 16:36
Имя: Александр
Благодарил (а): 1 раз
Поблагодарили: 2 раза

Re: FLProg 9.6.x тестирование

Сообщение pilotyac71 »

Здравствуйте. Подскажите пожалуйста, почему при выборе RemoteXY нет выбора подключения по wifi?
Аватара пользователя
Phazz
Полковник
Сообщения: 3522
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 384 раза
Поблагодарили: 266 раз

Re: FLProg 9.6.x тестирование

Сообщение Phazz »

pilotyac71 писал(а): 27 мар 2026, 15:22 Здравствуйте. Подскажите пожалуйста, почему при выборе RemoteXY нет выбора подключения по wifi?
Это пока в разработке
Ответить

Вернуться в «Команда ecoins»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя