Разработки ecoins для дисплея Nextion
-
- Лейтенант
- Сообщения: 516
- Зарегистрирован: 25 фев 2018, 08:48
- Откуда: Оренбург
- Имя: Александр
Разработки ecoins для дисплея Nextion
[ref]ecoins[/ref], благодарю.
Смею предположить, что для работы с более-менее какой то графикой нужно использовать ардуино мега? Или всю графику, элементарную, без излишеств, держать во встраиваемой флешке ?
Делал на основе блоков встроенных в флпрог:
ардуино нано: вывел инфутемпературу с 10 датчиков ds18 + закрасил экран + при превышении порога на одном из датчиков выводим НАГРЕВ слева от значения.
ВСЕ ! память закончилась.
Смею предположить, что для работы с более-менее какой то графикой нужно использовать ардуино мега? Или всю графику, элементарную, без излишеств, держать во встраиваемой флешке ?
Делал на основе блоков встроенных в флпрог:
ардуино нано: вывел инфутемпературу с 10 датчиков ds18 + закрасил экран + при превышении порога на одном из датчиков выводим НАГРЕВ слева от значения.
ВСЕ ! память закончилась.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Для небольших проектов можно использовать и Nano с нашими библиотеками. Работа непосредственно с Nextion занимает немного памяти и процессорного времени.KulibinOrsk писал(а): 08 янв 2022, 10:25 Смею предположить, что для работы с более-менее какой то графикой нужно использовать ардуино мега? Или всю графику, элементарную, без излишеств, держать во встраиваемой флешке ?
Со встроенными блоками Nextion это так. И еще они сильно "тормозят" проект.KulibinOrsk писал(а): 08 янв 2022, 10:25 Делал на основе блоков встроенных в флпрог:
ардуино нано: вывел инфутемпературу с 10 датчиков ds18 + закрасил экран + при превышении порога на одном из датчиков выводим НАГРЕВ слева от значения.
ВСЕ ! память закончилась
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Основательно доработали библиотеку/блоки для дисплеев Nextion.
Ну очень хорошо и компактно получилось. Учли и замечания пользователей.
Обмен буферированный и потому проект не "тормозит" почти совсем.
Время реакции в обе стороны "мгновенная".
Можно менять не только значения, но и другие свойства - размер шрифтов, цвета, фон, положение на дисплее и т.п.
Очень удобно и просто использовать дисплей с этими блоками.
Чуть позже выложим в новом релизе.
Ну очень хорошо и компактно получилось. Учли и замечания пользователей.
Обмен буферированный и потому проект не "тормозит" почти совсем.
Время реакции в обе стороны "мгновенная".
Можно менять не только значения, но и другие свойства - размер шрифтов, цвета, фон, положение на дисплее и т.п.
Очень удобно и просто использовать дисплей с этими блоками.
Чуть позже выложим в новом релизе.
- Siberian
- Лейтенант
- Сообщения: 633
- Зарегистрирован: 07 сен 2015, 11:51
- Откуда: СССР
- Имя: Александр
- Благодарил (а): 34 раза
- Поблагодарили: 5 раз
Разработки ecoins для дисплея Nextion
Добрый день!
панель Nextion я уже использую пару лет, но в стандартных блоках flprog от автора программы.
Хочу попробовать Ваш вариант, но не совсем разобрался...
1. Что нужно вставить в "adr" ?
2. Каким образом "получить" / "отправить" тип "string".
Пример в приложении.
панель Nextion я уже использую пару лет, но в стандартных блоках flprog от автора программы.
Хочу попробовать Ваш вариант, но не совсем разобрался...
1. Что нужно вставить в "adr" ?
2. Каким образом "получить" / "отправить" тип "string".
Пример в приложении.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
1.Проект .HMI не открывается, пишет что поврежден. Возможно из-за другой версии.Siberian писал(а): 20 май 2022, 13:07 Добрый день!
панель Nextion я уже использую пару лет, но в стандартных блоках flprog от автора программы.
Хочу попробовать Ваш вариант, но не совсем разобрался...
1. Что нужно вставить в "adr" ?
2. Каким образом "получить" / "отправить" тип "string".
Пример в приложении.
Мы используем версию 1.63.6. 2.Номера адресов (регистров) создаются непосредственно в Nextion 3.В 32-битные регистры in0,in1....собственно и записываются данные из MCU соответственно по адресам 0,1...
Логическая (смысловая) привязка этих регистров для конкретного теста сведена в таблице. 4.Пример экрана именами устройств: 5.Код скрипта для вывода значения регистра in0(адрес 0 для MCU) приведен ниже: =================
Возможно на восприятие немного сложно, но с точки зрения новых проектных и эксплуатационных возможностей оно, по нашему мнению, стоит.
Если тема действительно интересует, можете связаться со мной по телефону.
--------
Успехов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Разработки ecoins для дисплея Nextion
Добрый день уважаемые ecoins!
В приложении часть проекта. Не сохраняются данные из панели в EEPROM, по модбасу сохраняются без проблем. Есть возможность оценить где накосячил?
В приложении часть проекта. Не сохраняются данные из панели в EEPROM, по модбасу сохраняются без проблем. Есть возможность оценить где накосячил?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Интересно, Вы редкий пользователь дисплея Nextion - в совокупности с "правильным софтом" отличное устройство.Vint писал(а): 28 июн 2022, 09:34 Добрый день уважаемые ecoins!
В приложении часть проекта. Не сохраняются данные из панели в EEPROM, по модбасу сохраняются без проблем. Есть возможность оценить где накосячил?
В течении дня посмотрим и отпишусь.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Отличный проект и отличное использование панели Nextion.
По Nextion:
В экране Home задача tmIn:
n0.val=out10
prints out10,1 //--Отправка регистра v1 (0xFF)
--------
Код prints out10,1 приемным блоком Nextion в MCU будет просто проигнорирован, он обрабатывает только посылки формата Modbus + три 0xFF в конце.
--------
По записи в EEPROM - не должно это быть связано с Nextion (явных связей нет), вечером посмотрю проект повнимательнее, может что-то увижу.
По Nextion:
В экране Home задача tmIn:
n0.val=out10
prints out10,1 //--Отправка регистра v1 (0xFF)
--------
Код prints out10,1 приемным блоком Nextion в MCU будет просто проигнорирован, он обрабатывает только посылки формата Modbus + три 0xFF в конце.
--------
По записи в EEPROM - не должно это быть связано с Nextion (явных связей нет), вечером посмотрю проект повнимательнее, может что-то увижу.
Разработки ecoins для дисплея Nextion
Спасибо за оперативный ответ!
n0.val=out10 поставил чтобы посмотреть что приписывается в out10 при нажатии кнопок picValv, буду делать кнопки без фиксации для открытия/закрытия клапана.
на экране "Setup" есть переменные mxTto, mxGaz, mxH2o и TimeValve, отправляются в контроллер таймером tmOut. Три первых раньше отправлялись без проблем, добавил четвёртую и всё сломалось. Экран "Security" игнорируйте, это пережитки прошлого проекта для считывания датчиков 433.
n0.val=out10 поставил чтобы посмотреть что приписывается в out10 при нажатии кнопок picValv, буду делать кнопки без фиксации для открытия/закрытия клапана.
на экране "Setup" есть переменные mxTto, mxGaz, mxH2o и TimeValve, отправляются в контроллер таймером tmOut. Три первых раньше отправлялись без проблем, добавил четвёртую и всё сломалось. Экран "Security" игнорируйте, это пережитки прошлого проекта для считывания датчиков 433.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Посмотрел программы, вроде все верно и Вы вроде во все разобрались.Vint писал(а): 28 июн 2022, 15:42 на экране "Setup" есть переменные mxTto, mxGaz, mxH2o и TimeValve, отправляются в контроллер таймером tmOut. Три первых раньше отправлялись без проблем, добавил четвёртую и всё сломалось.
Загрузить программы смогу только через день, два - заняты проектом.
Попробовать можете увеличив кол-во переменных в блоке direct, но вряд ли поможет.
В приемном блоке есть опция Debug(Отладка) - если включите расширенную отладку, то на выходе появится код ошибке.
Если выведите на консоль, например нашим блоком, код ошибки, то это поможет с ориентироваться.
Коды ошибок можно подсмотреть в файле RT_HW_NEXTION.hpp (библиотека RT_HW_BASE.h) getFromNxt() - строки 80-144.
Позднее смогу плотнее разобраться.
Разработки ecoins для дисплея Nextion
Сделал так:[spoiler]
[/spoiler] в контроллер приходят нулиУ вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Просто в контроллере изначально нули, а входные посылки скорее всего приходят (если TX.nxt->RX.mcu не оборван) и транзакция соответствует требованиям.
Вы писали, что четыре переменные правильно передавались, попробуйте вернутся к этому режиму для того, чтобы убедиться, что канал работает.
Очень хорошо все можно увидеть через логический анализатор, даже самый простой.
Не получается пока посмотреть - требуется закончить некоторые работы, но если бы Вы посмотрели ошибки через режим Debug, я бы быстрее разобрался.ecoins писал(а): 28 июн 2022, 20:34 В приемном блоке есть опция Debug(Отладка) - если включите расширенную отладку, то на выходе появится код ошибке.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Нашел проблему - для длинных посылок неверно считалась контрольная сумма.
Обратите внимание на новую строку при подсчете CRC - crc=crc&0xFF //--Нормализация до байта:
// Реализует механизм повторной отправки (для надежности)
head=0x3A //--Заголовок
func=0x06 //--Отправка нескольких регистров байтовых регистров
adr=1 //--Адрес первого отправляемого регистра
qntReg=6 //--Кол-во отправляемых регистров
qntByte=6 //--Кол-во отправляемых байт
crc=head //--Код заголовка (':') в КС
crc+=func //--Параметр func
crc+=adr //--Параметра adr
crc+=qntReg //-- Параметр qntReg
crc+=qntByte //-- Параметр qntByte
//----Добавление в crc передаваемых регистров
crc+=out10
crc+=out11
crc+=out12
crc+=out13
crc+=out14
crc+=out15
crc=crc&0xFF //--Нормализация до байта:
//-----Вычисление crc с двумя дополнениями---------------------------------------------------
crc=0xFF-crc
crc+=1
crc&=0xFF
//-----Отправка посылки в UART
prints head,1 //--
prints func,1 //--Команда записи нескольких регистров
prints adr,1 //--Адрес записи
prints qntReg,1 //--Кол-во записываемых регистров
prints qntReg,1 //--Кол-во отправляемых байт
prints out10,1 //--Отправка регистра v1 (0xFF)
prints out11,1 //--Отправка регистра v2 (0xFF)
prints out12,1 //--Отправка регистра v3 (0xFF)
prints out13,1 //--Отправка регистра v4 (0xFF)
prints out14,1 //--Отправка регистра v4 (0xFF)
prints out15,1 //--Отправка регистра v4 (0xFF)
prints crc,1 //--Отправка crc (0xFF)
printh FF FF FF //--Отправка кодов завершения посылки
==================================================== -------------------------------------------------------------------------- ---------------------------------------------------------------------------
Обратите внимание на новую строку при подсчете CRC - crc=crc&0xFF //--Нормализация до байта:
// Реализует механизм повторной отправки (для надежности)
head=0x3A //--Заголовок
func=0x06 //--Отправка нескольких регистров байтовых регистров
adr=1 //--Адрес первого отправляемого регистра
qntReg=6 //--Кол-во отправляемых регистров
qntByte=6 //--Кол-во отправляемых байт
crc=head //--Код заголовка (':') в КС
crc+=func //--Параметр func
crc+=adr //--Параметра adr
crc+=qntReg //-- Параметр qntReg
crc+=qntByte //-- Параметр qntByte
//----Добавление в crc передаваемых регистров
crc+=out10
crc+=out11
crc+=out12
crc+=out13
crc+=out14
crc+=out15
crc=crc&0xFF //--Нормализация до байта:
//-----Вычисление crc с двумя дополнениями---------------------------------------------------
crc=0xFF-crc
crc+=1
crc&=0xFF
//-----Отправка посылки в UART
prints head,1 //--
prints func,1 //--Команда записи нескольких регистров
prints adr,1 //--Адрес записи
prints qntReg,1 //--Кол-во записываемых регистров
prints qntReg,1 //--Кол-во отправляемых байт
prints out10,1 //--Отправка регистра v1 (0xFF)
prints out11,1 //--Отправка регистра v2 (0xFF)
prints out12,1 //--Отправка регистра v3 (0xFF)
prints out13,1 //--Отправка регистра v4 (0xFF)
prints out14,1 //--Отправка регистра v4 (0xFF)
prints out15,1 //--Отправка регистра v4 (0xFF)
prints crc,1 //--Отправка crc (0xFF)
printh FF FF FF //--Отправка кодов завершения посылки
==================================================== -------------------------------------------------------------------------- ---------------------------------------------------------------------------
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Разработки ecoins для дисплея Nextion
Спасибо за помощь, уважаемые ecoins! Извините за задержку с ответом. Всё запустилось, в приложении рабочий проект. в74-ом посте измените строку "prints qntReg,1 //--Кол-во отправляемых байт" на "prints qntByte,1...", на второй странице проекта - отредактированный таймер tmOut.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Очень рад Вашим положительным результатам.Vint писал(а): 11 июл 2022, 21:20 Спасибо за помощь, уважаемые ecoins! Извините за задержку с ответом. Всё запустилось, в приложении рабочий проект. в74-ом посте измените строку "prints qntReg,1 //--Кол-во отправляемых байт" на "prints qntByte,1...", на второй странице проекта - отредактированный таймер tmOut.
Спасибо и за внимательность - действительно, то на что Вы обратили внимание более правильное - пока переменные с экрана только байтовые это не проявляется, но со временем может проявиться как проблема. Спасибо.
---------
Небольшой опыт по технике.
Работали с 7" дисплеем разрешением 800x400.
Решили попробовать дисплеи на 4.3" - для некоторых применений удобнее, у них разрешение 480x272, конечно пришлось экраны немного масштабировать.
Потом поняли, что если бы взяли бы дисплей 5", то они тоже имеют разрешение 800x400 и масштабировать бы не пришлось.
На будущее будем иметь ввиду это обстоятельство.
Разработки ecoins для дисплея Nextion
У меня вообще не отправлялись данные, пока не исправил на "qntByte"ecoins писал(а): 11 июл 2022, 21:35 пока переменные с экрана только байтовые это не проявляется, но со временем может проявиться как проблема
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Не из-за этого, у Вас заработало потому что в библиотеке подправлено расчет контрольной суммы.Vint писал(а): 11 июл 2022, 22:37 У меня вообще не отправлялись данные, пока не исправил на "qntByte"
Из протокола видно (в режиме debug) 5 и 6 байт равны 6. Дело в том, что все переменные на экране восьмибитные и потому без разницы кол-во байтов.
Возможно в Вашем примере и немного не так.
В любом случае обстоятельство, которые Вы выявили, очень важен.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Разработки ecoins для дисплея Nextion
Здравствуйте ecoins, ваша тема закрыта поэтому пишу сюда, блок MCP23017 если регистр А использовать как выход, а регистр В как вход и из негоже GPB0 и GPB7 как выход, то GPA0 перестает работать, где то ошибка в блоке! Хотя со старой версией блоков работало все исправно
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins для дисплея Nextion
Новая тема, в которой размещу ответ здесь: viewtopic.php?f=247&t=8064o615ye161 писал(а): 17 авг 2022, 23:27 Здравствуйте ecoins, ваша тема закрыта поэтому пишу сюда, блок MCP23017 если регистр А использовать как выход, а регистр В как вход и из негоже GPB0 и GPB7 как выход, то GPA0 перестает работать, где то ошибка в блоке! Хотя со старой версией блоков работало все исправно
Завтра попробую посмотреть и ответить.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя