Заметь все молчат.Только ты один умный с языком без костей.Я прошу код.У меня есть ардуино часы экран.Написано влпроге.Но не работает.Я много не прошу.А болтать на пустые нет времени
Я с тобой не пил.Что разговаривать на Ты.Какие форумы выбирать я буду решать сам. Кроме вашего форума ещё их на просторах интернета море.Не хорошая репутация будет вашему форуму при таком подходе. Не надо ставить себя выше всех.
вот именно что ты просишь код, а все молчат. Что-то незаметно чтоб кто-то горел желанием тебе помогать. Стоит задуматься о том, как ты ставишь вопросы. Может сначала что-то самому сделать, прежде чем на форум бежать?
Цитата:
А болтать на пустые нет времени
у тебя, который нифига не умеет - нет времени даже, чтоб написать код для себя - а у тех кто знает, значит куча времени писать код для неизвестного лентяя?
при включении дисплея появляется окно приветствия на 3 секунды,
при этом должен воспроизводится звуковой файл, по идее должно быть так:
play 0,0,0
delay=3000
page page1
но при таком коде, файл полностью не воспроизводится, а только начало и три раза,
если делаю код такой:
delay=3000
play 0,0,0
page page1
файл проигрывается полностью, но уже на первой странице,
похоже проблема в delay, но что не так, или как сделать без delay, после окончания проигрывания файла перейти на другую страницу ? в командах такого не нашел...
Добрый день. Хотел бы спросить у знающих товарищей следующий вопрос. У меня есть две странички А и Б, на страничке А присутствует картинка, а на странице Б кнопка которая отправляет команд VIS p1,1 ( команда открытия каритинки). Но вопрос в следущем как эту команду привезать к страничке А? Если ее отправлять со станички Б то выходит ошибка 0x02 0xFF 0xFF 0xFF - Returned when invalid Component ID or name was used. Т.е эта команда работает на страничке А, а на страничке Б нет в виду отсутствия ссылки на страничку А. Как это сделать не могу понять, page 0,VIS p1,1 тоже не работает
да самостоятельные, это я выложил что бы показать что оба варианта пробывал. Если vis 17,1 слать со стороны ардуино, то все работает. А если но стороне экрана работает только на данной страничке page0 где расположена картинка. Вот и вопрос возник почему так работает, а если посылать команду со странички page1 не работает
Все логично. После смены страницы с самого некстиона ивент больше не действителен и перестаёт выполняться. До vis дело не доходит. При посылке команды с ардуины vis прилетает уже на смененную страницу.
И так я нашел решение для этой задачи. Пришлось обратиться и почитать форум производителя. Так как раз и нашелся ответ с примером. Нужно использовать глобальную переменную sys. В общем кому интерестно то переходим https://nextion.tech/forums/topic/how-to-vis0-or-vis1-an-item-id-from-a-diferent-page/#post-230857 пример в конце с кнопкой двойного удержания. Все действие происходит на стороне монитора
В одной строке можно писать только одну команду. Когда делается переход на другую страницу командой page далее ни какой код на этой странице уже не выполняется. Командой vis ни когда не пользовался, но по описанию она работает только для объектов текущей страницы. Т.е. решение: в Preinit страницы А надо поставить условие которое будет выполнять vis. Управлять работой условия с помощью переменной Variable (например myvar). Разместить ее на странице А, в ее свойствах сделать глобальной. На странице Б присваивать переменной страницы А нужное значение явно указывая где она живет page0.myvar.val=1 или 0. Этих sys всего три, и на все хотелки может не не хватить.
if(bt3.val==0)
{
page0.myvar.val=1
page page0
}
Свойство объекта vscope локальный или глобальный определяет, можно ли управлять свойствами объекта другой страницы или нет. Если посылать команды записи/чтения свойств объекта с контроллера то работает в любом состоянии vscope.
По этому есть еще вариант решения этой задачи, этот объект картинка на странице А сделать vscope глобальным. А на странице Б менять свойства этого объекта pic, и это может быть интереснее чем просто прятать объект. Страница А будет показывать картинки выбранные на странице Б :-)
может кто подскажет, не могу сообразить, как на одну кнопку повесить несколько событий по кругу ?
Две переменные заводишь и одну из них инкрементируешь по нажатию.
В цикле сравниваешь обе и если отличаются то вызываешь событие.
Ну и обработать не забудь присвоение
значений , после события и ограничение событий.
А вообще лучше это на стороне контроллера делать а не на стороне HMI
Две переменные заводишь и одну из них инкрементируешь по нажатию. В цикле сравниваешь обе и если отличаются то вызываешь событие. Ну и обработать не забудь присвоение значений , после события и ограничение событий.
Друзья, приветствую! Недавно рылся в мануале сабжа в поисках ответа на вход и выход из сна. Но об этом в следующем сообщении, а сейчас про то, что наткнулся на команду, которой на дисплее реализовано косвенное обращение ко всему у чего есть id номер! b[id].atr где atr - любой доступный атрибут объекта val,pic,aph... (Cмотрите описание квадратных скобок) Тут я вспомнил давнишний пост (на который я тут и отвечаю)
И получается, что тот код теперь сводится к одной строке:
b[count.val+N].val = currentID.val
Теперь подробнее:
Есть переменные cash_ID1 ... cash_ID10 Их ID к примеру 10 ... 20 соответственно.
Стартовое значение count = 1, тогда та самая N = 9 Можно сразу count = 10, если вам при этом не надо изменять состояние картинки, у которой другой id и соответственно будет своя N.
Вопрос про вход, а главное выход из сна. Проблема в том, что при пробуждении от касания - экран передаёт в порт код, что проснулся 0x87 0xFF 0xFF 0xFF Но это можно отфильтровать, тк нужные коды гораздо меньше FF87. Самое неприятное - он отправляет координаты нажатия, код команды х.67
Как отключить это самовольство?)) Вроде как sendxy=0 должен отключить, но у меня работает. Прописывал в преинициализации page0.
Если будить через порт, то всё чисто - ни каких отчетов не отправляет.
Если кто в курсе - подскажите пожалуйста.
А почему для общения используешь эту хрень кодовую, с дисплеем можно и на ты общаться.
Не нужно будет обращать внимание на всякую хрень, которую он шлёт, просто на ардуине сделай обработчик сериал, и парси то, что ты уже ранее написал.
Ниже пишу примерно.
Например, при нажатии кнопки на дисплее, в теле кнопки пишешь print Knopka и к концу этого текста добавляет состояние кнопки, т.е. 1 получается, что дисплей шлёт уже текст Knopka1, этот код обрабатывает на ардуине функция, и если текст входящий равен Knopka, то далее считываешь конечное число вхождения 1 или 0, ну дальше уже код для выполнения какого то действия.
Также и в обратную сторону, отправляешь в сериал, на котором весит дисплей, или несколько на одном порту (делал Я такое, всё работает, уже лет 5) и на самом дисплее в переменной таймера или в коде главной странице, ну лучше таймера на 50мс, пишешь, что нужно сделать если например переменная (с ранее добавленной переменной p1.val, или t. txt) p1. val=2(или любое другое число, которое отправляешь с ардуины), далее например меняешь картинку на дисплее или какое-то значение на экране дисплея, ну а если приходит в переменную t. txt="Privet"(или другое слово), выполняешь тоже самое.
Заметь все молчат.Только ты один умный с языком без костей.Я прошу код.У меня есть ардуино часы экран.Написано влпроге.Но не работает.Я много не прошу.А болтать на пустые нет времени
Я с тобой не пил.Что разговаривать на Ты.Какие форумы выбирать я буду решать сам. Кроме вашего форума ещё их на просторах интернета море.Не хорошая репутация будет вашему форуму при таком подходе. Не надо ставить себя выше всех.
Нет времени - не пиши. Есть море других форумов - уходи туда. Все просто.
вот именно что ты просишь код, а все молчат. Что-то незаметно чтоб кто-то горел желанием тебе помогать. Стоит задуматься о том, как ты ставишь вопросы. Может сначала что-то самому сделать, прежде чем на форум бежать?
у тебя, который нифига не умеет - нет времени даже, чтоб написать код для себя - а у тех кто знает, значит куча времени писать код для неизвестного лентяя?
Начните отсюда: https://ee.kpi.ua/~prat/edu/books/programming/c/1_K_R.pdf
И еще: если будете пытаться писать на Си так, как пишете по-русски, у Вас ничего не получится. Компилятор Вас не поймет.
может кто подскажет ?
при включении дисплея появляется окно приветствия на 3 секунды,
при этом должен воспроизводится звуковой файл, по идее должно быть так:
но при таком коде, файл полностью не воспроизводится, а только начало и три раза,
если делаю код такой:
файл проигрывается полностью, но уже на первой странице,
похоже проблема в delay, но что не так, или как сделать без delay, после окончания проигрывания файла перейти на другую страницу ? в командах такого не нашел...
На странице приветствия поставьте таймер который включит первую страницу.
точно! так все четко! спасибо!
Nextion локализовал какую-то неведомую зверушку от TJC, назвав её Discovery: https://nextion.tech/2021/07/04/the-sunday-blog-nextion-news-the-new-discovery-f-series-hmi-displays-arrive/
stambylov
Добрый день не смог открыть вашу ссылку к посту #327. Наверное все была удаленна. Не могли бы разяснить еще раз данный вопрос на примере.
stambylov
Добрый день не смог открыть вашу ссылку к посту #327. Наверное все была удаленна. Не могли бы разяснить еще раз данный вопрос на примере.
Видео не нашел, видимо удалил, записал новое, думаю разберетесь
https://disk.yandex.ru/a/QoLY_DdLpBXYnA
Спасибо большое. Я вчера случайно на трубе ваше видео нашел.
Nextion локализовал какую-то неведомую зверушку от TJC, назвав её Discovery: https://nextion.tech/2021/07/04/the-sunday-blog-nextion-news-the-new-discovery-f-series-hmi-displays-arrive/
Прикольно, а самое главное - стал шустрее!
Добрый день. Хотел бы спросить у знающих товарищей следующий вопрос. У меня есть две странички А и Б, на страничке А присутствует картинка, а на странице Б кнопка которая отправляет команд VIS p1,1 ( команда открытия каритинки). Но вопрос в следущем как эту команду привезать к страничке А? Если ее отправлять со станички Б то выходит ошибка 0x02 0xFF 0xFF 0xFF - Returned when invalid Component ID or name was used. Т.е эта команда работает на страничке А, а на страничке Б нет в виду отсутствия ссылки на страничку А. Как это сделать не могу понять, page 0,VIS p1,1 тоже не работает
Варианты:
1) забыли про глобальную область видимости;
2) запутались в ID - страницы назвали A и B, а обращаетесь к ним, как к p0, p1;
...
100500) хз.
Нет не запутался, А и Б это образно было написано а так как положенно page0 and page1 оба параметра картинка и кнопка имеют статус global
вот код который на кнопке
if(bt3.val==0)
{
page page0,vis 17,1
}
а вот что за ошибку выдает копилятор
Error:Invalid number of arguments:page page0,vis 17,1( Double click to jump to code)
Error:Compile failed! 1 Errors, 0 Warnings,
а если код прописать так
if(bt3.val==0)
{
vis 17,1 // 17 это ID компанента
}
то выдает ошибку в порт \x02џџџ, а картинка не меняется
Разве 'page page0' и 'vis 17,1' не самостоятельные команды? Зачем их в одну строчку пихать?
да самостоятельные, это я выложил что бы показать что оба варианта пробывал. Если vis 17,1 слать со стороны ардуино, то все работает. А если но стороне экрана работает только на данной страничке page0 где расположена картинка. Вот и вопрос возник почему так работает, а если посылать команду со странички page1 не работает
Все логично. После смены страницы с самого некстиона ивент больше не действителен и перестаёт выполняться. До vis дело не доходит. При посылке команды с ардуины vis прилетает уже на смененную страницу.
Я бы попытался записать так: vis page0.b0,1 или экспериментировал с этим: https://nextion.tech/instruction-set/#s2_29
спасибо буду играться и пробывать
И так я нашел решение для этой задачи. Пришлось обратиться и почитать форум производителя. Так как раз и нашелся ответ с примером. Нужно использовать глобальную переменную sys. В общем кому интерестно то переходим https://nextion.tech/forums/topic/how-to-vis0-or-vis1-an-item-id-from-a-diferent-page/#post-230857 пример в конце с кнопкой двойного удержания. Все действие происходит на стороне монитора
В одной строке можно писать только одну команду. Когда делается переход на другую страницу командой page далее ни какой код на этой странице уже не выполняется. Командой vis ни когда не пользовался, но по описанию она работает только для объектов текущей страницы. Т.е. решение: в Preinit страницы А надо поставить условие которое будет выполнять vis. Управлять работой условия с помощью переменной Variable (например myvar). Разместить ее на странице А, в ее свойствах сделать глобальной. На странице Б присваивать переменной страницы А нужное значение явно указывая где она живет page0.myvar.val=1 или 0. Этих sys всего три, и на все хотелки может не не хватить.
if(bt3.val==0)
{
page0.myvar.val=1
page page0
}
Свойство объекта vscope локальный или глобальный определяет, можно ли управлять свойствами объекта другой страницы или нет. Если посылать команды записи/чтения свойств объекта с контроллера то работает в любом состоянии vscope.
По этому есть еще вариант решения этой задачи, этот объект картинка на странице А сделать vscope глобальным. А на странице Б менять свойства этого объекта pic, и это может быть интереснее чем просто прятать объект. Страница А будет показывать картинки выбранные на странице Б :-)
Спасибо, в следующий раз буду пробывать ваши варианты
может кто подскажет, не могу сообразить, как на одну кнопку повесить несколько событий по кругу ?
может кто подскажет, не могу сообразить, как на одну кнопку повесить несколько событий по кругу ?
Две переменные заводишь и одну из них инкрементируешь по нажатию.
В цикле сравниваешь обе и если отличаются то вызываешь событие.
Ну и обработать не забудь присвоение
значений , после события и ограничение событий.
А вообще лучше это на стороне контроллера делать а не на стороне HMI
спасибо, вопрос решен..
Друзья, приветствую! Недавно рылся в мануале сабжа в поисках ответа на вход и выход из сна. Но об этом в следующем сообщении, а сейчас про то, что наткнулся на команду, которой на дисплее реализовано косвенное обращение ко всему у чего есть id номер! b[id].atr где atr - любой доступный атрибут объекта val,pic,aph... (Cмотрите описание квадратных скобок) Тут я вспомнил давнишний пост (на который я тут и отвечаю)
И получается, что тот код теперь сводится к одной строке:
b[count.val+N].val = currentID.val
Теперь подробнее:
Есть переменные cash_ID1 ... cash_ID10 Их ID к примеру 10 ... 20 соответственно.
Стартовое значение count = 1, тогда та самая N = 9 Можно сразу count = 10, если вам при этом не надо изменять состояние картинки, у которой другой id и соответственно будет своя N.
Вопрос про вход, а главное выход из сна. Проблема в том, что при пробуждении от касания - экран передаёт в порт код, что проснулся 0x87 0xFF 0xFF 0xFF Но это можно отфильтровать, тк нужные коды гораздо меньше FF87. Самое неприятное - он отправляет координаты нажатия, код команды х.67
Как отключить это самовольство?)) Вроде как sendxy=0 должен отключить, но у меня работает. Прописывал в преинициализации page0.
Если будить через порт, то всё чисто - ни каких отчетов не отправляет.
Если кто в курсе - подскажите пожалуйста.
А почему для общения используешь эту хрень кодовую, с дисплеем можно и на ты общаться.
Не нужно будет обращать внимание на всякую хрень, которую он шлёт, просто на ардуине сделай обработчик сериал, и парси то, что ты уже ранее написал.
Ниже пишу примерно.
Например, при нажатии кнопки на дисплее, в теле кнопки пишешь print Knopka и к концу этого текста добавляет состояние кнопки, т.е. 1 получается, что дисплей шлёт уже текст Knopka1, этот код обрабатывает на ардуине функция, и если текст входящий равен Knopka, то далее считываешь конечное число вхождения 1 или 0, ну дальше уже код для выполнения какого то действия.
Также и в обратную сторону, отправляешь в сериал, на котором весит дисплей, или несколько на одном порту (делал Я такое, всё работает, уже лет 5) и на самом дисплее в переменной таймера или в коде главной странице, ну лучше таймера на 50мс, пишешь, что нужно сделать если например переменная (с ранее добавленной переменной p1.val, или t. txt) p1. val=2(или любое другое число, которое отправляешь с ардуины), далее например меняешь картинку на дисплее или какое-то значение на экране дисплея, ну а если приходит в переменную t. txt="Privet"(или другое слово), выполняешь тоже самое.
Думаю поймёшь чего, куда писать)
А зачем вы пишите на старый форум ?
Хз, а чего он старый?
Хохлы начали дудосить в начале осени.
Решили сменить движок.
Вот ссылка на новый:
https://forum.arduino.ru/
Спс
Спасибо. Про кодовое слово, как то не додумался))