Страница 8 из 24
Разработки ecoins для дисплея Nextion
Добавлено: 11 дек 2022, 05:14
ecoins
WildCat писал(а): 11 дек 2022, 04:52
Параметр "размер массива"?
Не работает (
Странно, проверим.
WildCat писал(а): 11 дек 2022, 04:52
То есть, последовательно в данной реализации нельзя никак увеличить количество выходов? Типа как в сдвиговых регистрах, переносом?
Количество выходов в блоке сделано до 10. Их может быть и много и соотвественно переменных столько, сколько определите в блоке direct.nxt.
WildCat писал(а): 11 дек 2022, 04:52
С передачей кучи бит (зашитых в байт) понятно, но мне нужно числа передавать, причем многие выходят за рамки размерности byte.
Должно передаваться и будет передаваться, потестируем.
WildCat писал(а): 11 дек 2022, 04:52
А когда можно ожидать исправленные блоки?
Готовим релиз новых библиотек, что-то будет и по Nextioт, более основательно к концу новой недели.
WildCat писал(а): 11 дек 2022, 04:52
И всё же, что значит параметр num на входе в блок get.nxt? Как его использовать и на что он влияет?
Num - правильнее назвать начальный адрес переменных на выходах. Если num=3, то на выходах будут переменные из массива->arr[3],arr[4]...
Разработки ecoins для дисплея Nextion
Добавлено: 11 дек 2022, 05:19
WildCat
ecoins писал(а): 11 дек 2022, 05:14
Num - правильнее назвать начальный адрес переменных на выходах. Если num=3, то на выходах будут переменные из массива->arr[3],arr[4]...
То есть, допустим, я ставлю 5 блоков get.nxt с размером массива 10, в первом блоке num=1, во втором 11, и так далее, в 5 - num=41 и у меня допустимый диапазон переменных = 50?
Правильно понял?
Может этот параметр назвать start adr?
Так понятнее будет.
А то он назван как в блоке send.nxt, и вводит в заблуждение.
Разработки ecoins для дисплея Nextion
Добавлено: 11 дек 2022, 05:57
ecoins
WildCat писал(а): 11 дек 2022, 05:19
То есть, допустим, я ставлю 5 блоков get.nxt с размером массива 10, в первом блоке num=1, во втором 11, и так далее, в 5 - num=41 и у меня допустимый диапазон переменных = 50?
Правильно понял?
Да,так.
WildCat писал(а): 11 дек 2022, 05:19
Может этот параметр назвать start adr?
Так понятнее будет.
А то он назван как в блоке send.nxt, и вводит в заблуждение.
Подумаем.
Разработки ecoins для дисплея Nextion
Добавлено: 11 дек 2022, 06:01
WildCat
ecoins писал(а): 11 дек 2022, 05:57Да,так
Ну тогда огонь ))
Спасибо Вам за разработку!
Вроде разобрался.
И ваш блок диспетчера попробовал, пока только количество циклов. В остальные вещи надо вникать.
Разработки ecoins для дисплея Nextion
Добавлено: 11 дек 2022, 16:47
skrickis
WildCat писал(а): 11 дек 2022, 01:15
skrickis писал(а): ↑Вчера{, 17:31}
ВЛОЖЕНИЯ
Ваш проект дисплея не компилируется.
В условиях отправки лишние циклы.
странно у меня всё компилируется
дебаг тоже работает
проект на экране тоже работает
Разработки ecoins для дисплея Nextion
Добавлено: 11 дек 2022, 23:13
WildCat
ecoins писал(а): 14 дек 2020, 14:24
Посмотрю проект и постараюсь понять что тормозит.
Разобрался.
Управление 595 регистром.
Я использовал блок прямого управления входами микросхемы
11 (SRCLK)
12 (RCLK)
14 (SER)
поставил включение платы вывода в регистр по времени (1/100мс), количество цикло увеличилось до 37000...39000.
Ещё явно тормозит процесс блок обработки аналогового мультиплексора.
3 вывода МК управляют номером канала мультиплексора и 1 АЦП на входе. Эту плату тоже сделал по времени, дальше пока непонятно куда ещё можно копнуть.
Неужели перебор адресов входа мультиплексора так тормозит процессор? У меня период перебора 8 адресов 10мс.
Отправлено спустя 3 минуты 16 секунд:
skrickis писал(а): 11 дек 2022, 16:47
странно у меня всё компилируется
У меня ругается компилятор.
Но в любом случае, тоже спасибо за проект, разобрался как разбирать на запчасти поступивший байт и как собрать байт из запчастей ))
По ходу дела написал для себя небольшой справочный файл по сборке и разборке )
Разработки ecoins для дисплея Nextion
Добавлено: 12 дек 2022, 00:15
skrickis
Удачи

Разработки ecoins для дисплея Nextion
Добавлено: 12 дек 2022, 00:33
ecoins
WildCat писал(а): 11 дек 2022, 23:13
Ещё явно тормозит процесс блок обработки аналогового мультиплексора.
3 вывода МК управляют номером канала мультиплексора и 1 АЦП на входе. Эту плату тоже сделал по времени, дальше пока непонятно куда ещё можно копнуть.
Неужели перебор адресов входа мультиплексора так тормозит процессор? У меня период перебора 8 адресов 10мс.
Так и бывает - "тормоза" в самых неожиданных местах. Для этого удобно использовать диспетчер задач в паре с LCD HD44780 (с библиотекой ecoins он не тормозит) или еще лучше дисплей Nextion(он совсем не тормозит пока буфер вывода UART не перегружается) - в реальном времени можно наблюдать за быстродействием проекта.
WildCat писал(а): 11 дек 2022, 23:13
По ходу дела написал для себя небольшой справочный файл по сборке и разборке )
Полезную работу выполнили, давайте её вставим в какую-то инструкцию по Nextion.
Разработки ecoins для дисплея Nextion
Добавлено: 12 дек 2022, 01:46
WildCat
ecoins писал(а): 12 дек 2022, 00:33
давайте её вставим в какую-то инструкцию по Nextion
Я не против, думаю, многим будет полезно.
При всём уважении к Вам и вашей работе, отсутствие инструкций, описаний и т.п. сводит на нет работу. Собственно, я сам для своих изделий (занимаюсь пром автоматикой) пишу подробные инструкции с картинками.
Сейчас то что я написал, не стоит выкладывать, это весьма ограниченная по содержанию информация, но думаю, напишу последовательность действий для таких нубов как я, в перспективе это позволит бо́льшему числу пользователей вникнуть в ваши разработки и оценить их.
Сейчас мне нужно закончить пару проектов, как будет время, займусь. Думаю, в течение одной-двух недель займусь.
Разработки ecoins для дисплея Nextion
Добавлено: 12 дек 2022, 03:03
ecoins
WildCat писал(а): 12 дек 2022, 01:46
При всём уважении к Вам и вашей работе, отсутствие инструкций, описаний и т.п. сводит на нет работу. Собственно, я сам для своих изделий (занимаюсь пром автоматикой) пишу подробные инструкции с картинками.
При всем уважении к работе команды ecoins, она не обладает бесконечными возможностями и потому подбирает баланс между новыми исследованиями и созданием подробных инструкций. И для кого инструкции: для начинающих, незнакомых с конкретным устройством.
Вот Вы с опытом промышленной автоматизации не смогли "поднять" дисплей, опираясь исключительно на документацию Nextion. Мы подобрали (и подбираем) подходы, которые компанией Nextion не предусмотрено.
WildCat писал(а): 12 дек 2022, 01:46
Сейчас то что я написал, не стоит выкладывать,
Многие из пользователей после того как осваивали что-то, теряли интерес к оформлению своего понимания.
Отчасти это издержки бесплатности используемых программных продуктов.
WildCat писал(а): 12 дек 2022, 01:46
но думаю, напишу последовательность действий для таких нубов как я, в перспективе это позволит бо́льшему числу пользователей вникнуть в ваши разработки и оценить их.
Сейчас мне нужно закончить пару проектов, как будет время, займусь. Думаю, в течение одной-двух недель займусь.
Не настаиваю, но думаю это было бы правильным решением.
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 09:39
WildCat
Собрал рабочий проект, несколько страниц дисплея, сделал тестовую прошивку для МК, где параметры периодически шлются в дисплей.
Обнаружилась проблема.
В фоновом режиме (когда экран погашен), данные не приходят
photo_2022-12-14_09-30-19.jpg
На скрине видно - с 9:16 до 9:26 дисплей "уснул", и данные не поступили.
Аварии - приходит байт состояния дискретных аварийных состояний.
Это особенность работы дисплея или моя ошибка?
И как я понял, таймеры приема данных и отправки нужно на каждой странице прописывать?
У меня сначала был один таймер для отправки и приема данных, глобальные, и все переменные, которые участвуют в обмене, тоже глобальные. Но прием/отпавка происходит только с активной страницы.
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 10:03
Vint
WildCat писал(а): 14 дек 2022, 09:39
Это особенность работы дисплея или моя ошибка?
это особенность дисплея. У меня подобная засада, при использовании thsp и thup похоже засыпает и порт передачи данных.
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 10:27
WildCat
[ref]Vint[/ref], в теории, можно отправить команду sleep=0, и панель должна проснуться.
В стандартных блоках flprog общения с nxt есть такой блок.
Но как отправить команду посредством блоков ecoins , я пока чот не понимаю.
Можно было бы сделать свою вставку и через свой самописный блок отправить текстовую команду в UART, но этот порт уже занят.
В общем, я пока не знаю что сделать можно
Отправлено спустя 4 минуты 13 секунд:
Альтернативой вижу гасить подсветку, а по отдельной переменной с контроллера (детектор появления аварии) подсветку включать. Но это не совсем sleep mode, так, костыль.
Отправлено спустя 7 минут 7 секунд:
WildCat писал(а): 14 дек 2022, 10:20
в теории, можно отправить команду sleep=0,
В дебаге проверил, панель пробуждается.
[ref]ecoins[/ref], не подскажете, как отправить команду с помощью ваших блоков? Или нужно что-то дополнительное делать?
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 10:53
Vint
при засыпании панели засыпает и порт, а при пробуждении на экране остаются устаревшие данные. На данный момент я не знаю команды для отключения только подсветки. После пробуждения надо обновлять все данные на странице, пробовал переключаться между страницами, но как то всё это не фэншуйски...
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 11:46
WildCat
Vint писал(а): 14 дек 2022, 10:53
После пробуждения надо обновлять все данные на странице
У меня после пробуждения данные сами обновляются.
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 12:28
ecoins
WildCat писал(а): 14 дек 2022, 09:39
Это особенность работы дисплея или моя ошибка?
Особенность дисплея и программы. Блоки отправки можно настроить в режиме "По изменениям или периодически". Периодический параметр установить например 1сек и все потерянные при спящем дисплее будут обновляться.
Спит или не спит дисплей тоже можно будет определить.
WildCat писал(а): 14 дек 2022, 09:39
И как я понял, таймеры приема данных и отправки нужно на каждой странице прописывать?
У меня сначала был один таймер для отправки и приема данных, глобальные, и все переменные, которые участвуют в обмене, тоже глобальные. Но прием/отпавка происходит только с активной страницы.
Да, так, но только по отправляемым с текущей страницы данным.
Посмотрите в примере:
TEST_Next_NX8048P070_011_v10_19.09.22.zip
WildCat писал(а): 14 дек 2022, 10:27
ecoins, не подскажете, как отправить команду с помощью ваших блоков? Или нужно что-то дополнительное делать?
В режиме блока отправки по изменениям или периодически ('A').
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 12:38
WildCat
Vint писал(а): 14 дек 2022, 10:03
похоже засыпает и порт передачи данных.
Проверил.
Да, порт засыпает с выдачей сообщения 0х86 (auto sleep).
Но только на передачу.
На прием работает )))
Поставил штатный flprog блок на пробуждение, работает )) Панель пробуждается.
Отправлено спустя 1 минуту 43 секунды:
ecoins писал(а): 14 дек 2022, 12:28
В режиме отправка по изменениям или периодически ('A').
Так можно любую команду отправить?
String?
У вас же вроде только цифровые значения блоки отправляют? Или ошибаюсь?
Отправлено спустя 7 минут 11 секунд:
WildCat писал(а): 14 дек 2022, 12:31
Так можно любую команду отправить?
String?
Всё, нашел.
Параметр пользователя
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 12:50
Vint
WildCat писал(а): 14 дек 2022, 11:46
после пробуждения данные сами обновляются.
перефразирую. Если в FLProg-е данные в панель передаются при изменении, после просыпания на экране висит устаревшая информация до ближайшего изменения. В блоке Ecoins есть условие отправки переменной "Периодически или при изменении входа", выставляю 2,5-3 секунды
Отправлено спустя 9 минут 55 секунд:
ecoins писал(а): 14 дек 2022, 12:28
Спит или не спит дисплей тоже можно будет определить.
Это как? Это же можно отправлять данные только при не спящей панельке...
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 12:52
WildCat
[ref]Vint[/ref],
Так это логично.
Vint писал(а): 14 дек 2022, 12:50Это как?
Перед засыпанием дисплей код шлёт.
Разработки ecoins для дисплея Nextion
Добавлено: 14 дек 2022, 12:54
ecoins
Vint писал(а): 14 дек 2022, 12:40
перефразирую. Если в FLProg-е данные в панель передаются при изменении, после просыпания на экране висит устаревшая информация до ближайшего изменения. В блоке Ecoins есть условие отправки переменной "Периодически или при изменении входа", выставляю 2,5-3 секунды
В этом режиме данные должны обновляться +-2.5,3сек.
WildCat писал(а): 14 дек 2022, 12:38
На прием работает )))
Поставил штатный flprog блок на пробуждение, работает )) Панель пробуждается.
Интересно. Возможно надо добавить эту функцию. Не очень понимаю по какому свойству(параметру) пробуждать панель?
WildCat писал(а): 14 дек 2022, 12:38
Так можно любую команду отправить?
String?
У вас же вроде только цифровые значения блоки отправляют? Или ошибаюсь?
Можно отправить любую команду в любой параметр описанный на странице - но только когда это страница включена. Это сообщение просто потеряется и просто будет перегружать порт ненужными транзакциями. В новой версии из Nextion при изменении возвращается номер текущей страницы и его можно будет использовать по усмотрению пользователя.