ЭкоСреда ecoins

Мультиплатформенная среда реального времени - библиотеки, блоки, примеры

vlad1451
Сержант
Сообщения: 133
Зарегистрирован: 06.09.2019{, 19:23}
Репутация: 7
Имя: Владимир

ЭкоСреда ecoins

#741

Сообщение vlad1451 » 07.04.2023{, 06:34}

ecoins писал(а):
06.04.2023{, 21:16}
Отлично, у Вас почти все получилось, получится и остальное.
Успехов.
С Уважением, Энвер.
По большому счёту это не у меня получилось, просто я проверил на другом терминале, из сети. То есть, код поступаемый в Com порт имеет правильный вид, и мне свой терминал нужно "допиливать".

nick2015
Рядовой
Сообщения: 45
Зарегистрирован: 20.12.2019{, 09:19}
Репутация: 2
Имя: Николай

ЭкоСреда ecoins

#742

Сообщение nick2015 » 13.04.2023{, 07:38}

Здравствуйте Ecoins, у меня проблема с выводом на дисплей 8x2. Суть проблемы в том что не могу вывести во 2 строку, выводит все равно в 1. На штатных блоках все работает. Библиотеки и блоки последние.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#743

Сообщение ecoins » 13.04.2023{, 08:08}

nick2015 писал(а):
13.04.2023{, 07:38}
Здравствуйте Ecoins, у меня проблема с выводом на дисплей 8x2. Суть проблемы в том что не могу вывести во 2 строку, выводит все равно в 1. На штатных блоках все работает. Библиотеки и блоки последние.
Пришлите простой тест, на котором не работает.

nick2015
Рядовой
Сообщения: 45
Зарегистрирован: 20.12.2019{, 09:19}
Репутация: 2
Имя: Николай

ЭкоСреда ecoins

#744

Сообщение nick2015 » 13.04.2023{, 08:17}

ecoins писал(а):
13.04.2023{, 08:08}
nick2015 писал(а):
13.04.2023{, 07:38}
Здравствуйте Ecoins, у меня проблема с выводом на дисплей 8x2. Суть проблемы в том что не могу вывести во 2 строку, выводит все равно в 1. На штатных блоках все работает. Библиотеки и блоки последние.
Пришлите простой тест, на котором не работает.
8x2.7z
(237.45 КБ) 12 скачиваний

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#745

Сообщение ecoins » 13.04.2023{, 20:48}

nick2015 писал(а):
13.04.2023{, 08:17}
8x2.7z
Только к вечеру загрузил тест. Внешне все нормально. Завтра найду дисплей 8x2, попробую и напишу.
С уважением, Энвер.

WildCat
Лейтенант
Сообщения: 422
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

ЭкоСреда ecoins

#746

Сообщение WildCat » 13.04.2023{, 23:11}

ecoins, здравствуйте.

В блоках nextion попробовал новые функции: получение номера страницы, состояния спит/не спит, гашение и пробуждение дисплея.

С получением статуса спит/не спит всё ок. Работает.

Управление сном, на мой взгляд, не совсем так как надо работает. То есть, получается что управление полностью лежит на контроллере. Если на входе в блок 0, то дисплей засыпает (по своим настройкам) и тут же просыпается.
Либо, если в блоке сна 1, то дисплей всегда спит.
А нужно просто отправить 0, когда есть потребность разбудить дисплей. Может быть, несколько раз, для надёжности.

А вот с получением номера страницы беда.
Постоянно висит значение 99. Пробовал и диспетчер дисплея с выводом номера страницы, и отдельно блок вывода номера страницы.
На переключения страниц никак не реагирует.

Библиотеки и блоки от 29 марта.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#747

Сообщение ecoins » 14.04.2023{, 05:57}

WildCat писал(а):
13.04.2023{, 23:11}
А нужно просто отправить 0, когда есть потребность разбудить дисплей. Может быть, несколько раз, для надёжности.
Режим отправки настраиваемый - можно выбрать режим по изменениям + периодический, это обеспечивает регулярную отправку.
Почему дисплей сам просыпается? YНе знаю, надо наверное в самом дисплее покопаться через отладчик.
WildCat писал(а):
13.04.2023{, 23:11}
А вот с получением номера страницы беда.
Постоянно висит значение 99. Пробовал и диспетчер дисплея с выводом номера страницы, и отдельно блок вывода номера страницы.
На переключения страниц никак не реагирует.
Вроде работало на профессиональном блоке. То, что отправляется номер текущей страницы, это проверял.
Чуть позже посмотрю, сейчас немного "подвяз" на развитии общих системных библиотеках (поиск более оптимальных подходов).
--------------------
Был на выставке в Крокус-Центре(Москва). После этого заказал на пробу дисплей DWIN - попробуем развить для FLProg и эту линейку дисплеев.
И еще заказали дисплей Kingo.
----------------------
C Уважением, Энвер.

WildCat
Лейтенант
Сообщения: 422
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

ЭкоСреда ecoins

#748

Сообщение WildCat » 14.04.2023{, 14:07}

ecoins писал(а):
14.04.2023{, 05:57}
Вроде работало на профессиональном блоке
Проф блок тоже пробовал. С ним тоже самое.
Но у меня блок direct, send, sleep - на простом редакторе, и только один блок из проф редактора. С другими проф блоками компилятор выдает ошибки.

Контроллер esp32 .

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#749

Сообщение ecoins » 14.04.2023{, 16:58}

WildCat писал(а):
14.04.2023{, 14:07}
Проф блок тоже пробовал. С ним тоже самое.
Но у меня блок direct, send, sleep - на простом редакторе, и только один блок из проф редактора. С другими проф блоками компилятор выдает ошибки.
Сейчас не получается переключиться - некоторую работу доделываю по старшим моделям STM32 доделываю.
Позже комплексно пройдусь по блокам Nextion.

Аватара пользователя
pvorobei
Рядовой
Сообщения: 42
Зарегистрирован: 14.09.2018{, 20:30}
Репутация: 14
Откуда: СПБ
Имя: Иван

ЭкоСреда ecoins

#750

Сообщение pvorobei » 16.04.2023{, 22:59}

ecoins, Здравствуйте! Прошу прощения за офтоп. Вопрос такой ка Вам. Можно ли как-то познакомиться с Вашими наработками в виде кода? Так вышло, что с FBD давно не работаю(ничего против не имею, но для себя считаю лишней прокладкой). Может github или другой источник? Смотрю вокруг Ваших наработок прям не шуточный холивар. Хотелось бы ознакомиться.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#751

Сообщение ecoins » 16.04.2023{, 23:09}

pvorobei писал(а):
16.04.2023{, 22:59}
ecoins, Здравствуйте! Прошу прощения за офтоп. Вопрос такой ка Вам. Можно ли как-то познакомиться с Вашими наработками в виде кода? Так вышло, что с FBD давно не работаю(ничего против не имею, но для себя считаю лишней прокладкой). Может github или другой источник? Смотрю вокруг Ваших наработок прям не шуточный холивар. Хотелось бы ознакомиться.
С кодом просто - библиотеки С++ размещены в первом посте.
Мне было бы очень интересно объединить усилия в создании системных библиотек поверх ядер Arduino IDE для мультиплатформенного и многозадачного проектирования. То что Вы увидите, далеко от совершенства, во многом из-за того, что не имею многолетнего опыта работы на C++ и из-за архаичности ядер для разных архитектур разных контроллеров.
Если Вас что-то заинтересует, напишите в личку, я свяжусь с Вами. Задач много и мы не успеваем порой разобраться с выбором подходов для их решения. Может у нас что-то вместе взаимо полезное получится.
С уважением, Энвер.

Аватара пользователя
pvorobei
Рядовой
Сообщения: 42
Зарегистрирован: 14.09.2018{, 20:30}
Репутация: 14
Откуда: СПБ
Имя: Иван

ЭкоСреда ecoins

#752

Сообщение pvorobei » 16.04.2023{, 23:19}

ecoins, Спасибо, посмотрю. Едва ли я буду Вам полезен, но если будут идеи - напишу.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#753

Сообщение ecoins » 17.04.2023{, 17:52}

Здесь viewtopic.php?f=179&t=8218&start=20#p123936 поставил вопросы о быстродействии:

Получилось >2537615(средняя >2.540млн, циклов в сек)."

Вопросы:
1.Возможно ли это на FLProg в принципе?
2.Если да, то как это можно реализовать на FLProg?
3.Сможет ли это кто-то сейчас повторить?
-----------
Ответ на первый вопрос - да, возможно, и у нас даже получилось.
Теперь о результатах исследований.
Тестирование проводилось на простом тесте - вывод на Lcd.i2c мерцающей звездочки и быстродействия в циклах loop() за одну секунду.
Test_Speed_v02.ino
(3.36 КБ) 15 скачиваний
Test_Speed_v02.160423.zip
(425.59 КБ) 21 скачивание
Скетч тестаПоказать

#include "RT_HW_LCD44780.h"
#include "RT_HW_BASE.h"
byte _gtv2;
byte Out_176998533_191087899;
unsigned long Out_12146096_247411459;
RT_HW_LCD44780_DEVICE_ID z_191087899; uint8_t initParam_191087899=0; uint8_t debug_191087899=0;
uint8_t cols_191087899; uint8_t rows_191087899; uint8_t periodReboot_191087899;
uint8_t i2cPCFbus_191087899=0; uint8_t i2cPCFadr_191087899;
RT_HW_LCD44780_PARAM_ID id_115435254; uint8_t initParam_115435254=0; uint8_t debug_115435254=0;
uint16_t Gperiod_115435254; char Gsign0_115435254; char Gsign1_115435254;
RT_HW_LCD44780_PARAM_ID id_169318329; uint8_t initParam_169318329=0; uint8_t debug_169318329=0;
const char Lhead_169318329[] PROGMEM ="~";

void setup()
{
RT_HW_Base.shed.quick.qnt=5; //--Кол-во срочных задач (период 10мс);
RT_HW_Base.shed.fast.qnt=4; //--Кол-во быстрых задач (период 25мс);
RT_HW_Base.shed.slow.qnt=4; //--Кол-во медленных задач (период 250мс);
RT_HW_Base.shed.back.qnt=5; //--Кол-во фоновых задач (период 100мс);
RT_HW_Base.shed.frdm.qnt=50; //--Кол-во свободных задач (период loop()-когда нет вызванных задач);
}
void loop()
{
//Плата:1
//=================================Диспетчер задач====================================
RT_HW_Base.shed.quick.qnt=5; //--Кол-во срочных задач (период 10мс);
RT_HW_Base.shed.fast.qnt=4; //--Кол-во быстрых задач (период 25мс);
RT_HW_Base.shed.slow.qnt=4; //--Кол-во медленных задач (период 250мс);
RT_HW_Base.shed.back.qnt=5; //--Кол-во фоновых задач (период 100мс);
RT_HW_Base.shed.frdm.qnt=50; //--Кол-во свободных задач (период loop()-когда нет вызванных задач);
RT_HW_Base.sheduler();
if(RT_HW_Base.shed.eventSec){
Out_12146096_247411459=RT_HW_Base.shed.cycle;
}
_gtv2 = (RT_HW_Base.shed.frdm.num);

//Плата:2
//Наименование:Lcd i2c
if (_gtv2 == 10) {
//==================================Lcd HD44780====================================================
if(z_191087899.custom==0){
cols_191087899=162/10; rows_191087899=162-(cols_191087899*10);
i2cPCFbus_191087899=0;
i2cPCFadr_191087899=(0x27);
RT_HW_lcd44780.initDeviceI2CPCF8574(z_191087899,cols_191087899,rows_191087899,i2cPCFadr_191087899,i2cPCFbus_191087899,0); Out_176998533_191087899=z_191087899.num;
z_191087899.periodReboot=periodReboot_191087899;}
RT_HW_lcd44780.directDevice(z_191087899);
//===================================Lcd HD44780 output============================================
if(id_115435254.custom==0){ Gsign0_115435254=RT_HW_lcd44780.getSignBitCode(2,0); Gsign1_115435254=RT_HW_lcd44780.getSignBitCode(2,1); Gperiod_115435254=500; RT_HW_lcd44780.initBlinkID (id_115435254,(Out_176998533_191087899),Gperiod_115435254, 1,1);}
RT_HW_lcd44780.LcdBlink(id_115435254,Gsign0_115435254,Gsign1_115435254);
//===================================Lcd HD44780 output============================================
if(id_169318329.custom==0) {RT_HW_lcd44780.initLongID(id_169318329,(Out_176998533_191087899),'U','R','~',10,1,0);}
RT_HW_lcd44780.LcdVar(id_169318329,Lhead_169318329,(Out_12146096_247411459));
}
Проект test_Speed.png
Ниже стенды.
20230417_172845.jpg
------
Результаты измерений:
Test_Speed_v02_170423.jpg
--------------
По контроллера с гарвардской архитектурой(AVR,STM32) быстродействие в целом пропорционально частоте процессора.
У ESP8266 и у ESP32 все гораздо хуже.
-----------
С уважением, Энвер.

WildCat
Лейтенант
Сообщения: 422
Зарегистрирован: 04.06.2022{, 04:14}
Репутация: 48
Имя: Михаил

ЭкоСреда ecoins

#754

Сообщение WildCat » 19.04.2023{, 07:07}

ecoins, отлаживаю проект, и возник вопрос: а корректно ли работают таймеры и генераторы ФЛП (TON, TOF, G-SM, G-AM) с диспетчером задач?
Или таймеры нужно выносить на платы без диспетчера, и связь через переменные?

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#755

Сообщение ecoins » 19.04.2023{, 10:14}

WildCat писал(а):
19.04.2023{, 07:07}
ecoins, отлаживаю проект, и возник вопрос: а корректно ли работают таймеры и генераторы ФЛП (TON, TOF, G-SM, G-AM) с диспетчером задач?
Или таймеры нужно выносить на платы без диспетчера, и связь через переменные?
Да в общем то нет. Проекты Вы вроде делаете аккуратно, быстродействие контролируете. И еще новая возможность появилась в FLProg - контроль времени работы платы, очень полезная опция для оптимизации быстродействия, спасибо за это Разработчику.
Неплохо выводить его на дисплей 16x2 i2c - на этапе отладки помогает, да и какую-то контрольную информацию можно вывести. В конечное устройство можно просто не ставить, даже плату можно не отключать - там алгоритм адаптивный и при отсутствии дисплея почти не потребляет ресурсов.
На всякий случай - не подключайте дисплей трубчатыми китайскими проводами - сохраните и нервы и время. Мы эти кабеля делаем на разъемах с ножевыми приемными контактами (ну как на плате UNO), используем ленточные кабели. Паять надо аккуратно, иначе штырьки выскакивают - мы применяем прием в виде маленьких печатных плат под контактные площадки.
С уважением, Энвер.

urqagun
Рядовой
Сообщения: 74
Зарегистрирован: 12.10.2020{, 19:16}
Репутация: 12
Имя: Юрий

ЭкоСреда ecoins

#756

Сообщение urqagun » 19.04.2023{, 12:03}

Напомните пож. где найти библиотеку RT_HW_BASE, где на форуме начало работы с вашей системой? год назад попробовал,и не возвращался а теперь решил поэкспериментировать с стм 401 и пико

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#757

Сообщение ecoins » 19.04.2023{, 12:27}

urqagun писал(а):
19.04.2023{, 12:03}
Напомните пож. где найти библиотеку RT_HW_BASE, где на форуме начало работы с вашей системой? год назад попробовал,и не возвращался а теперь решил поэкспериментировать с стм 401 и пико
В посте #1. Работает и STM32F401, и с Raspberry Pi Pico.
Сейчас идет глубокая переработка и тестирование библиотек - они будут проще, компактнее, понятнее, быстрее и обладать большей совместимостью с новым развитием FLProg (там тоже меняется системное программное обеспечение).
С уважением, Энвер.

urqagun
Рядовой
Сообщения: 74
Зарегистрирован: 12.10.2020{, 19:16}
Репутация: 12
Имя: Юрий

ЭкоСреда ecoins

#758

Сообщение urqagun » 19.04.2023{, 12:58}

Как начинающий, выскажу пожелания, можете записать на ютубе краткий гайд, как начать работать с вашей средой? Например как правильно собрать набор ваших библиотек. с кратким комментарием какие и зачем предназначаются, чтобы далее можно было начать практиковать вашу магию из последующих примеров. Далее изложить основы идеологии, обосновывающие мотивацию перейти на вашу систему, основы ртос, и то, как она вами реализована на примерах. Далее уже по возможности по списку, так как это уже сложилось в подобных гайдах по нарастающей - ногодрыг, чтение пинов, допрос датчиков, вывод на дисплей и так далее. То есть было бы здорово сделать в тайный храм вашей идеи привычную дверь с ручкой и ковриком перед ней "welcome". С наилучшими пожеланиями :)иначе для малоискушенного неофита затруднения возможны.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ЭкоСреда ecoins

#759

Сообщение ecoins » 19.04.2023{, 13:47}

urqagun писал(а):
19.04.2023{, 12:58}
иначе для малоискушенного неофита затруднения возможны.
Вопросы для неискушенного неофита(они ведь такие разные):
1. Имеется ли како-то уровень знаний в С++, FBL(FLProg), Arduino? Других языках?
2. Имеется ли общий опыт программирования, представления о работе с реальным временем, прерываниями, таймерами?
3. Имеются ли знания(опыт) в работе с коммуникациями(UART,RS-485,i2c,SPI,CAN,Ethernet,WiFi, встроенный BlueTooth?
4. Имеется ли общее представление об архитектуре микроконтроллера (процессор (одноядерный/многоядерный), устройство внутренней и внешней памяти, прерывания)?
5. На каких контроллерах в среде Arduino приходилось работать?
6. С какими внешними устройствами на Arduino приходилось работать (сенсоры, расширители, дисплеи и пр.)?
------
Заранее приношу извинения за несколько дотошные вопросы, но это связано с тем, что по мере движения в новые контроллеры многие представления меняются:
- кто работает на Nano,UNO могут испытывать сложности к переходе на Mega2560, ESP8266;
- схожие трудности при переходе ESP8266->ESP32, ESP32->ESP32C3,S2,S3;-->STM32F103; STM32F103C->STM32F407V; STM32F407->STM32H7; -->Raspberry Pi Pico;
-------
urqagun писал(а):
19.04.2023{, 12:58}
Например как правильно собрать набор ваших библиотек. с кратким комментарием
Если в области FLProg - то мы уже опубликовали много тестовых проектов. Можем подготовить в качестве примера по Вашим пожеланиям (процессор, сенсоры и пр.).
urqagun писал(а):
19.04.2023{, 12:58}
Как начинающий, выскажу пожелания, можете записать на ютубе краткий гайд, как начать работать с вашей средой?
Наверное можем, но в Вашем случае зачем? Вы ведь можете получить ответы на вопросы напрямую, в том числе и через видеосвязь.
------
С уважением, Энвер.

urqagun
Рядовой
Сообщения: 74
Зарегистрирован: 12.10.2020{, 19:16}
Репутация: 12
Имя: Юрий

ЭкоСреда ecoins

#760

Сообщение urqagun » 19.04.2023{, 18:35}

Согласен, ваш анализ постановки вопроса верный. Вместе с тем, существуют базовые подходы к решению большинства задач, к которым вне всякого сомнения принадлежит и та, что я озвучил в своем предыдущем посте. Чтобы направить тему в конструктивное русло, следую принципу критикуешь, предлагай, а предлагаешь делай, хочу предложить поступить следующим образом. Прошу не быть строгими к моему скромному мнению.
Оглядываясь на то, как происходила и продолжает происходить популяризация замысла и идеи автора программы, чему среди прочего посвящен данный форум, можно проследить, что развитие было ретроспективно линейным(восходящее развитие последовательно от простого к более сложному с уместными отсылками к тому, что было до текущего состояния). Во первых автор не пытался всем и каждому объяснять основы программирования, более того, мотивировал проникнувшихся его идеей трудиться самостоятельно на данном пути, чтобы скорее достигнуть нужных кондиций.
В связи с чем, я полагаю, что надо исходить из того, что базовые знания для интересующего нас "неофита" это в большей части основы, заложенные в флпрог, с которыми он более менее разобрался, а если нет, то ему в помощь все возможности, предоставленные данным форумом, как минимум. Следовательно, популяризацию вашей идеи было бы разумно проводить исходя из подобных предположений и это первое.
Второе. Ваш проект как и другие, к сожалению не все, которые бы хотелось, успешно развивается. Однако, я пока не нашел место, где в более менее одном месте можно было бы отслеживать ход развития проекта(что согласитесь является уже более менее правилом). Дело в том, что у разных заинтересовавшихся вашим проектом, будет разная точка входа в его освоение. И если нет некоего первоисточника с хронологией, то не к чему будет делать отсылки, в случае необходимости, когда вы или участники будут передавать друг другу опыт в освоении проекта.
Вот поэтому это было бы здорово сделать. То есть не обновлять в посте №1, затирая предыдущее описание состояние проекта новым, а вести последовательную хронологию.
Третье, как я упоминал ранее, было бы просто здорово выпустить ролики на ютубе, подобныетом, что делал автор и его последователи. Если такое уже есть, то этому надо посвятить тему, или разместить инфу поближе к началу развития темы на форуме.
Сделав, чтото подобное, вы бы и сами получили много профита. Во первых упорядочите свои мысли, сможете посмотреть на это со стороны, чего обычно не хватает авторам идей, оформите и закрепите более менее предметную область, специфическую для вашей системы терминологию, и так далее, все как в добротной научно исследовательской работе, которую по моему вы ведете в вашей деятельности.

Ответить

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