Страница 24 из 26
Re: FLProg 9.6.x тестирование
Добавлено: 15 мар 2026, 21:26
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
С уважением.
Re: FLProg 9.6.x тестирование
Добавлено: 16 мар 2026, 09:05
pilotyac71
Здравствуйте. Обновил до версии 9.6.21. Блок меню в многоуровневом режиме так и не работает. Вроде бы важный блок для управления оборудованием, но его не исправляют. В 7 и 8 версиях все работало замечательно. Почему в 9 на него не обращают внимания? Так же выше задавал вопрос про RemoteXY. Никто ничего не ответил.
Re: FLProg 9.6.x тестирование
Добавлено: 16 мар 2026, 14:32
montirovka
Ander писал(а): 15 мар 2026, 20:47
Tyma писал(а): 15 мар 2026, 20:41
Да, я именно это и сделал, получил значения для каждой кнопки. Поэтому и указал, что на старой версии работает, а вот 9.6.4 - собирает криво.
С уважением.
9.6.4 не криво собирает, просто блок не адаптирован под эту версию - обращайтесь к автору блока.
Попробовал я сам переделать под новую версию этот блок. Не получается.
А вот отмазка, что 9.6.4 не криво собирает, просто блок не адаптирован под эту версию достаточно универсальная. Что в блоке используется математика не адаптирована под девятую версию? Там деление, вычитание, сложение, сравнение и логическое И.
С нуля сделал блок. Открываю его , а там нет связей. Да и связи не получается восстановить.
2026-03-16_14-25-03.png
Re: FLProg 9.6.x тестирование
Добавлено: 17 мар 2026, 08:39
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
Re: FLProg 9.6.x тестирование
Добавлено: 17 мар 2026, 18:38
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) - все летает прекрасно, как "мама родила".
Re: FLProg 9.6.x тестирование
Добавлено: 19 мар 2026, 23:55
ecoins
pilotyac71 писал(а): 16 мар 2026, 09:05
Здравствуйте. Обновил до версии 9.6.21. Блок меню в многоуровневом режиме так и не работает. Вроде бы важный блок для управления оборудованием, но его не исправляют. В 7 и 8 версиях все работало замечательно. Почему в 9 на него не обращают внимания? Так же выше задавал вопрос про RemoteXY. Никто ничего не ответил.
1.Блок меню поправлен. Сейчас готовится стабильная версия, будут внесены изменения в блок меню.
2.По RemoteXY - сложившуюся проблему обещали разрешить разработчики RXY и пока у них не складывается.
Пока смотрите рекомендации по ссылке
viewtopic.php?p=145028#p145028
С уважением, ecoins.
Re: FLProg 9.6.x тестирование
Добавлено: 20 мар 2026, 07:58
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.
Спасибо за ответ.
Re: FLProg 9.6.x тестирование
Добавлено: 24 мар 2026, 22:22
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 - не работают(не мигают).
Re: FLProg 9.6.x тестирование
Добавлено: 25 мар 2026, 09:31
Engineer200
Engineer200 писал(а): 20 фев 2026, 06:45
Доброе утро!
FLProg 9.6.9 . Блок из кандидатов, расширитель MCP2307. Ошибка в режиме "все входы". Не ставится завершающая фигурная скобка. А сама скобка улетает в конец скетча.
Сейчас перед компиляцией ардуиной, руками ставлю скобку перед следующей платой (один блок на плате) и удаляю лишнюю скобку в конце скетча.
Режим "все выходы" работает нормально.
Другие режимы не проверял.
Неправильно было написано, правильно MCP23017.
Ошибку в блоке нашёл.
Основные настройки
___Код блока
______Код каждого экземпляра
_________Секция "Loop"
____________Место вставки блока 'Loop"
_______________END:run
Установлено ненужное условие.
Может поправите, А то эта беда таскается уже в нескольких версиях подряд.
Хорошая программа FLProg. Спасибо.
Re: FLProg 9.6.x тестирование
Добавлено: 25 мар 2026, 11:23
ecoins
Engineer200 писал(а): 25 мар 2026, 09:31
Доброе утро!
FLProg 9.6.9 . Блок из кандидатов, расширитель MCP2307. Ошибка в режиме "все входы". Не ставится завершающая фигурная скобка. А сама скобка улетает в конец скетча.
Сейчас перед компиляцией ардуиной, руками ставлю скобку перед следующей платой (один блок на плате) и удаляю лишнюю скобку в конце скетча.
Может поправите, А то эта беда таскается уже в нескольких версиях подряд.
Хорошая программа FLProg. Спасибо.
1.Поправил.
01.MCP23017.ubi
2.Пока можете пользоваться присоединенном блоке - в кандидатах наверное появится ближе к стабильной версии.
Успехов.
С уважением, ecoins.
Re: FLProg 9.6.x тестирование
Добавлено: 25 мар 2026, 21:14
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 ++++
//========================================================================================================================================
В итоге белый экран
Направьте пожалуйста на путь истинный
Re: FLProg 9.6.x тестирование
Добавлено: 25 мар 2026, 21:41
ecoins
krost писал(а): 25 мар 2026, 21:14
Доброго времени суток Камрады! Помогите победить дисплей St7789 проект st7789.flp Flprog 9.6.25
В итоге белый экран
Направьте пожалуйста на путь истинный
1.Попробуйте приложенный проект.
2.Выведите на консоль отчет с параметрами проекта - для этого после загрузки программы и переход в монитор порта на ESP32 скорее всего понадобится нажать СБРОС.
3.Посмотрите в отчете пины SPI - к тем ли пинам подключили дисплей?
4.Если не получится, пришлите фото дисплея (с двух сторон).
С уважением, ecoins.
Re: FLProg 9.6.x тестирование
Добавлено: 26 мар 2026, 14:35
Alhim20
Доброе время суток. У меня стояла 9.6.21. Все было ок. Обновился на 9.6.25. Крашится сразу при открытии любого старого проекта из 9.6.21 и раньше. 9.6.23 такая же история. Откатился на 9.6.21. Все ок. Вин 10.
Re: FLProg 9.6.x тестирование
Добавлено: 26 мар 2026, 20:35
support
Alhim20 писал(а): 26 мар 2026, 14:35
Доброе время суток. У меня стояла 9.6.21. Все было ок. Обновился на 9.6.25. Крашится сразу при открытии любого старого проекта из 9.6.21 и раньше. 9.6.23 такая же история. Откатился на 9.6.21. Все ок. Вин 10.
К утру бэта версия обновится
Re: FLProg 9.6.x тестирование
Добавлено: 27 мар 2026, 09:44
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)++++
//========================================================================================================================================
Re: FLProg 9.6.x тестирование
Добавлено: 27 мар 2026, 11:25
Alhim20
Блок НТП сервера во вкладке коммуникации
Re: FLProg 9.6.x тестирование
Добавлено: 27 мар 2026, 12:42
vicnic1520
Внимательнее читайте. О нем и речь. Штатный блок NTP из вкладки коммуникации версии программы 9.6.26.
Re: FLProg 9.6.x тестирование
Добавлено: 27 мар 2026, 13:42
maxrolor
Доброго времени суток. Подскажите пожалуйста. А что за Клуб, что он даёт и для чего?
Re: FLProg 9.6.x тестирование
Добавлено: 27 мар 2026, 15:22
pilotyac71
Здравствуйте. Подскажите пожалуйста, почему при выборе RemoteXY нет выбора подключения по wifi?
Re: FLProg 9.6.x тестирование
Добавлено: 27 мар 2026, 18:01
Phazz
pilotyac71 писал(а): 27 мар 2026, 15:22
Здравствуйте. Подскажите пожалуйста, почему при выборе RemoteXY нет выбора подключения по wifi?
Это пока в разработке