Помогите с реализацией в flprog из скетча

дисплей DWIN

Ответить
evgenbeck79
Рядовой
Сообщения: 8
Зарегистрирован: 02.10.2021{, 11:30}
Репутация: 0
Откуда: Иркутск
Имя: Евгений

Помогите с реализацией в flprog из скетча

#1

Сообщение evgenbeck79 » 31.07.2022{, 18:33}

Добрый день. Помогите перенести скетч на проект Flprog.
Вложения
display.ino
(630 байт) 16 скачиваний
Disp.ino
(495 байт) 13 скачиваний

Аватара пользователя
Dryundel
Полковник
Сообщения: 1898
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 569
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Помогите с реализацией в flprog из скетча

#2

Сообщение Dryundel » 31.07.2022{, 22:11}

evgenbeck79 писал(а):
31.07.2022{, 18:33}
Добрый день. Помогите перенести скетч на проект Flprog.
Если помочь, то вот.
Создание пользовательского блока из скетча(примера)
Простейшая процедура. Скетч элементарный.
.
Или надо сделать за Вас?

Отправлено спустя 8 минут 36 секунд:
Подсказка:
Файл display.ino это продолжение файла Disp.ino.
Их надо совместить простым копированием.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

evgenbeck79
Рядовой
Сообщения: 8
Зарегистрирован: 02.10.2021{, 11:30}
Репутация: 0
Откуда: Иркутск
Имя: Евгений

Помогите с реализацией в flprog из скетча

#3

Сообщение evgenbeck79 » 01.08.2022{, 03:36}

Dryundel писал(а):
31.07.2022{, 22:20}
Если помочь, то вот.
Создание пользовательского блока из скетча(примера)
Спасибо, но это немного не то.
мне надо чтобы получать по Uart значения например A5 5A 05 83..... сравнивать и возможность назначать свои действия. В данном скетче это реализовано и при создании собственного блока я не могу менять значения на свои.

Аватара пользователя
Dryundel
Полковник
Сообщения: 1898
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 569
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Помогите с реализацией в flprog из скетча

#4

Сообщение Dryundel » 01.08.2022{, 07:06}

evgenbeck79 писал(а):
01.08.2022{, 03:36}
мне надо чтобы получать по Uart значения например A5 5A 05 83.....
Значения или пообайтово как в скетче?
Вы вообще опипишите тогда задачу что требуется, а не прикладывайте учебный пример, который к стати не до конца работает.
Что это будет (идея), для чего, с какого устройства присылают я данные, в каком формате и так далее.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

evgenbeck79
Рядовой
Сообщения: 8
Зарегистрирован: 02.10.2021{, 11:30}
Репутация: 0
Откуда: Иркутск
Имя: Евгений

Помогите с реализацией в flprog из скетча

#5

Сообщение evgenbeck79 » 01.08.2022{, 07:39}

Есть дисплей Dwin, на котором будет отображаться данные от датчиков температуры, положение состояний реле (вкл, выкл), управление этими же реле. Дисплей передает(A5 5A 07 83....) и принимает в формате Hex (0хA5, 0х5A, 0х05, 0х82.....). Не могу в flprog организовать прием эти данных и отправку. Для меня стоит задача: 1) получать данные с дисплея сравнивать с моими данными и если совпадают, то включать или отключать реле (через переменную) 2) передавать данные с температурных датчиков на дисплей 3) передавать состояние положений кнопок на дисплей.
У меня рабочий проект в Flprog типа умного дома, действия которого установка и контроль температуры в доме и запуск термореле на электрокатле, также контроль открытия и закрытия дверей, включение света на заданное время. все это работает по блютуз. на андроид планшете через таскер и другие приложения выводятся все эти действия и данные, но блютуз соединение не стабильно часто прерывается, приходится перезагружать планшет или приложения. Решил заменить планшет на дисплей.

Аватара пользователя
Dryundel
Полковник
Сообщения: 1898
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 569
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Помогите с реализацией в flprog из скетча

#6

Сообщение Dryundel » 01.08.2022{, 08:51}

Ну так штатный блок приёма переменной из UART. Принимаем байты.
Единственное что надо учесть:
evgenbeck79 писал(а):
01.08.2022{, 07:39}
Дисплей передает(A5 5A 07 83....)
Дисплей передает в HEX
Соответственно A5 это 165 в DEC.
И в блоке сравнения надо писать именно 165.
Отсылать точно также.
0х82 это 130
И так далее.
Про пакет данных Вы не пишете, вероятно потому, что не требуется.

Отправлено спустя 10 минут 17 секунд:
Хотя скорее всего требуются именно пакеты данных, а это уже парсинг требуется. А вот с этим немного сложне в FLProg.

Выхода два.
1. Изучать тему парсинга
2. Ждать или заказывать блок для работы с данным дисплеем.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
dekorator
Лейтенант
Сообщения: 426
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Помогите с реализацией в flprog из скетча

#7

Сообщение dekorator » 03.08.2022{, 23:57}

Выхода два.
1. Изучать тему парсинга
2. Ждать или заказывать блок для работы с данным дисплеем.
--------
3. Можно перевести дисплей в режим modbus master например, и переносить какие-то скечи или что-то парсить не понадобится вообще. В FlProg, работа с modbus достаточно не плохо организована.
Тут пример и видео:
https://dwin-russia.ru/forum/video/t5l- ... iguration/

evgenbeck79
Рядовой
Сообщения: 8
Зарегистрирован: 02.10.2021{, 11:30}
Репутация: 0
Откуда: Иркутск
Имя: Евгений

Помогите с реализацией в flprog из скетча

#8

Сообщение evgenbeck79 » 16.08.2022{, 19:29}

Добрый день. Прошу помощи, создал два блока. Один блок принимает и сравнивает с выбранным условием и, в случае выполнения этого условия, выдаёт на выход 1 или 2 логическую единицу. Второй блок отправляет данные в определенный раздел кода. По одному блоки работают, когда в проекте их два то не работает не один.
download/file.php?mode=view&id=38052
download/file.php?mode=view&id=38051&am ... 55fbb0c5b5
Вложения
DwinS_(Code_-_Professional).ubi
Блок отправки
(120.99 КБ) 5 скачиваний
Dwin_X5_(Code_-_Professional).ubi
Блок приема
(177.93 КБ) 6 скачиваний

aidar_i
Полковник
Сообщения: 2522
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 423
Откуда: Уфа
Имя: Айдар
Контактная информация:

Помогите с реализацией в flprog из скетча

#9

Сообщение aidar_i » 16.08.2022{, 23:27}

evgenbeck79 писал(а):
16.08.2022{, 19:29}
Добрый день. Прошу помощи, создал два блока. Один блок принимает и сравнивает с выбранным условием и, в случае выполнения этого условия, выдаёт на выход 1 или 2 логическую единицу. Второй блок отправляет данные в определенный раздел кода. По одному блоки работают, когда в проекте их два то не работает не один.
download/file.php?mode=view&id=38052
download/file.php?mode=view&id=38051&am ... 55fbb0c5b5
Лучше блоки выкладывайте в проекте, чтобы не устанавливать.

evgenbeck79
Рядовой
Сообщения: 8
Зарегистрирован: 02.10.2021{, 11:30}
Репутация: 0
Откуда: Иркутск
Имя: Евгений

Помогите с реализацией в flprog из скетча

#10

Сообщение evgenbeck79 » 17.08.2022{, 03:55}

aidar_i писал(а):
16.08.2022{, 23:27}
Лучше блоки выкладывайте в проекте, чтобы не устанавливать.
Вот простой пример
download/file.php?mode=view&id=38054
Вложения
Primer.flp
(609.04 КБ) 10 скачиваний

aidar_i
Полковник
Сообщения: 2522
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 423
Откуда: Уфа
Имя: Айдар
Контактная информация:

Помогите с реализацией в flprog из скетча

#11

Сообщение aidar_i » 17.08.2022{, 07:04}

evgenbeck79 писал(а):
17.08.2022{, 03:55}
Вот простой пример
download/file.php?mode=view&id=38054
Во вставленном в секцию лооп блока DwinX5 коде пропущены 2 скобки.

Код: Выделить всё

 if (<Dwin.Name>.available())
{
Buffer[Buffer_Len] = <Dwin.Name>.read();
    Buffer_Len++;
    flag = true;
        }
  else      
        {
     if (flag)
{
       if (Buffer[0] == 0X5A) {
      switch (Buffer[5] ) {
case <Vkl>: 
if (Buffer[8] == 0X01) {
<KN1>=1;
}
else 
				{
<KN1>=0;
				}
break;
 case <Vik>: 
if (Buffer[8] == 0X01) {
<KN2>=1;
}
    	else 
	{
<KN2>=0; 
	}     
 break; 
} 
Buffer_Len = 0; // сброс номера элемента в массиве
      flag = false;
}
}  // пропущена
}  //пропущена

evgenbeck79
Рядовой
Сообщения: 8
Зарегистрирован: 02.10.2021{, 11:30}
Репутация: 0
Откуда: Иркутск
Имя: Евгений

Помогите с реализацией в flprog из скетча

#12

Сообщение evgenbeck79 » 17.08.2022{, 09:33}

aidar_i писал(а):
17.08.2022{, 07:04}
Во вставленном в секцию лооп блока DwinX5 коде пропущены 2 скобки.
Добавил, но результат тотже. пооодельности работают вместе не хотят

Аватара пользователя
Dryundel
Полковник
Сообщения: 1898
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 569
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Помогите с реализацией в flprog из скетча

#13

Сообщение Dryundel » 17.08.2022{, 11:10}

evgenbeck79 писал(а):
16.08.2022{, 19:29}
По одному блоки работают, когда в проекте их два то не работает не один.
Потому, что парсинг в вашем случае должен делаться один раз для всех экземпляров блока, а соответственно и находится должен в общем коде. В коде каждого экземпляра остается только сравнение ну или как у Вас помесь свитча с ифом.

Отправлено спустя 6 минут 36 секунд:
evgenbeck79 писал(а):
17.08.2022{, 09:33}
Добавил, но результат тотже. пооодельности работают вместе не хотят
Тупая вставка скобок Вам не поможет. Прежде всего надо правильно построить всю логику.
Для этого сделайте скетч который будет работать "в два свистка", а уже потом переносите его в блок.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Ответить

Вернуться в «Помогите, а то я "нимагу"»