Блок вывода переменной в UART

Не соединяется byte с блоком.

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Блок вывода переменной в UART

#1

Сообщение Lisica » 06.02.2018{, 09:37}

Ребята, может кто соединить блок вывода с выводом byte?
Контроль1.flp
(225.44 КБ) 132 скачивания

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Блок вывода переменной в UART

#2

Сообщение pan » 06.02.2018{, 09:45}

по ходу баг

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Блок вывода переменной в UART

#3

Сообщение rw6cm » 06.02.2018{, 10:01}

Lisica писал(а):
06.02.2018{, 09:37}
Ребята, может кто соединить блок вывода с выводом byte?
через переменную integer не пойдет?

Отправлено спустя 1 час 25 минут 13 секунд:
pan писал(а):
06.02.2018{, 09:45}
по ходу баг
Думаю это не баг, при передаче в ком, в виде переменной не получится передать байт или чар в чистом виде,
т.к. к пакету данных привязывается дополнение самой переменной, которая транспортирует эти данные.
кто будет на той стороне это раскладывать?
Win10-64, FLProg (portable)

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок вывода переменной в UART

#4

Сообщение Sancho » 06.02.2018{, 11:41}

rw6cm писал(а):
06.02.2018{, 11:26}
в виде переменной не получится передать байт или чар в чистом виде,
т.к. к пакету данных привязывается дополнение самой переменной, которая транспортирует эти данные.
кто будет на той стороне это раскладывать?
Баг, я думаю. Т.к. блок приёма готов к данным типа byte, есть такой пункт в его меню.
Вопрос при приёме - всего лишь в интерпретации принятых данных, шлём всё равно байты...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Блок вывода переменной в UART

#5

Сообщение rw6cm » 06.02.2018{, 15:18}

Sancho писал(а):
06.02.2018{, 11:41}
Баг, я думаю. Т.к. блок приёма готов к данным типа byte, есть такой пункт в его меню.
Да, согласен, что то не о том подумал, это же транспорт в среде FLProg.
И походу этот баг давно. Опустился до вер. 1.1 тоже не берется,
константу байтовую на вход поставить можно, значит должно быть.
надо в баг написать. извиняюсь уже есть.
Последний раз редактировалось rw6cm 06.02.2018{, 18:39}, всего редактировалось 1 раз.
Причина: дописал
Win10-64, FLProg (portable)

CraCk
Лейтенант
Сообщения: 634
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

Блок вывода переменной в UART

#6

Сообщение CraCk » 06.02.2018{, 17:12}


Аватара пользователя
Lisica
Сержант
Сообщения: 244
Зарегистрирован: 18.12.2017{, 17:25}
Репутация: 14
Откуда: Золотоноша

Блок вывода переменной в UART

#7

Сообщение Lisica » 06.02.2018{, 18:07}

CraCk, Во, а поиском не нашлось...
rw6cm писал(а):
06.02.2018{, 11:26}
integer не пойдет?
Оно то пойдёт, пойдёт и стрингом... просто на приёмнике опять конвертировать для обработки...

bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15.01.2018{, 00:58}
Репутация: 2
Откуда: истра
Имя: роман

Блок вывода переменной в UART

#8

Сообщение bayeck » 06.02.2018{, 22:38}

у меня и стринг не передаёт, и до кучи порты вывешивает,

Serg_Grn
Лейтенант
Сообщения: 333
Зарегистрирован: 11.02.2018{, 13:07}
Репутация: 36
Имя: Сергей

Блок вывода переменной в UART

#9

Сообщение Serg_Grn » 13.06.2018{, 12:39}

Вопрос не совсем по теме, но чтоб не плодить лишних, решил тут)
Хочу передавать число Int в UART, но чтобы передавалось в формате BYTE, а не ASCII.
Через блок "приведение типа к Byte" работает, но не хватает 1 байта, т.к. нужно передавать бОльшие числа, чем 255.
Вот не могу пока осилить такую вроде простую задачу...
Вложения
test.flp
(165.7 КБ) 75 скачиваний

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок вывода переменной в UART

#10

Сообщение Sancho » 13.06.2018{, 12:47}

Serg_Grn писал(а):
13.06.2018{, 12:39}
Вопрос не совсем по теме, но чтоб не плодить лишних, решил тут)
Хочу передавать число Int в UART, но чтобы передавалось в формате BYTE, а не ASCII.
Через блок "приведение типа к Byte" работает, но не хватает 1 байта, т.к. нужно передавать бОльшие числа, чем 255.
Вот не могу пока осилить такую вроде простую задачу...
Отправь два байта по очереди.
Проверяй, какой байт идёт первым - "порядок компиляции блоков".
Вложения
test_byte_v1.flp
(187.29 КБ) 68 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Serg_Grn
Лейтенант
Сообщения: 333
Зарегистрирован: 11.02.2018{, 13:07}
Репутация: 36
Имя: Сергей

Блок вывода переменной в UART

#11

Сообщение Serg_Grn » 13.06.2018{, 14:25}

Sancho, к сожалению, не выходит. Открываю монитор COM-порта и в разделе DEC я должен увидеть передаваемое число, но вместо этого я вижу два числа - как два байта раздельно... Сам не очень понимаю, что там происходит.
Вот в данный момент передаваемое число было около 290, а вот что в разделе DEC:
СпойлерПоказать
монитор порта.jpg
P.S. Если передавать через блок Byte, то все работает правильно - в разделе DEC передаваемое число (до 255, дальше по кругу).

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок вывода переменной в UART

#12

Сообщение Sancho » 13.06.2018{, 14:44}

Serg_Grn, Передача через UART осуществляется по-байтно, и только байтами.
Serg_Grn писал(а):
13.06.2018{, 14:25}
и в разделе DEC я должен увидеть передаваемое число
Там не увидишь! Не передаёт он число целиком!
Что-бы потом получить число, большей размерностью, чем байт, нужно провести необходимые действия - обратные проделанным при передаче.
У тебя, я вижу, передаётся, 35, 1, 34, 1... , а два байт CR (13) и LF (10) - это конец строки и перевод каретки.
Вот, пришлось переделать слегка.
Вложения
test_byte_v2.flp
(213.47 КБ) 68 скачиваний
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Serg_Grn
Лейтенант
Сообщения: 333
Зарегистрирован: 11.02.2018{, 13:07}
Репутация: 36
Имя: Сергей

Блок вывода переменной в UART

#13

Сообщение Serg_Grn » 13.06.2018{, 15:11}

Sancho писал(а):
13.06.2018{, 14:44}
Что-бы потом получить число, большей размерностью, чем байт, нужно провести необходимые действия - обратные проделанным при передаче.
Понял, спасибо! Открыли глаза, я почему-то был уверен что через UART можно передавать сразу двухбайтные числа.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Блок вывода переменной в UART

#14

Сообщение Sancho » 13.06.2018{, 15:20}

Вот ещё, посчитай, - идёт 1 и 34, это два байта, старший и младший. Старший - это сколько раз по 256 , следовательно передаётся 1*256 + 34 =290.
Или в программе взять интегер, со значением 0, прогнать по ИЛИ со старшим байтом, сдвинуть влево на 8 разрядов, прогнать по ИЛИ со вторым байтом. всё.

int out = 0;
out |= ( High << 8 ) |(Low) ;
return out;
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Ответить

Вернуться в «Спросить у знатоков»