LINUX.ORG.RU

Работа с компортом в linux.

 


0

1

Возможно это уже было но я хз. В общем есть UART переходник, который соединяет пк и устройство на базе STM32(делали сами). Интерфейс устройства устроен так, что оно ожидает 2 байта, а в ответ прилетает при определённой конфигурации от 0 до 16 байт. Пусть по дефолту мы не знаем, сколько нам прилетит(на самом деле знаем, но при развитии проекта может быть всё что угодно). На пк есть не самый простой совт(написан также нашими ручками), и для отладки я делаю консольный терминал заточенный под наше устройство. Задача написать максимально быстрый терминал. Ждать секунду пока кончится отправка мне не нравится. Как быть?

Как быть?

Купить «сниффер» компорта и смотреть кто задерживает данные, софт на ББ или железка, а потом уже думать «что делать».

vvn_black ★★★★★
()

Как быть?

рассказать как вы достигли такого успеха что «консольный терминал» на ПК тормозит. Почему там надо ждать целую «секунду».

PS/ если надо прям-таки быстро-быстро и надёжно, то отказывайтесь от USB-свистков-переходников, сажаете все цепи RS на UART и считываете данные из порта по сигналам.

MKuznetsov ★★★★★
()

А зачем тебе секунду ждать? Ты как только первый байт получишь, выставляй в поллинге такой таймаут, чтобы оставшиеся данные за это время успели прийти.

Eddy_Em ☆☆☆☆☆
()

1) в отладочном терминале вообще ничего ждать не нужно: все полученные данные отдаются в лог без ожидания. 2) обычно для m2m обмена по UART существует канальный протокол со стартовой последовательностью (даже у модемов это AT). И CRC для проверки целостности кадра.

zudwa
()
Ответ на: комментарий от anonymous

Два чаю :)

и тут бухтение ТС «а зачем не это усложнять и так ведь работает, мне бы просто что бы быстро вжик вжик»

ЗЫ шел 2019 год, инжинегры так и не узнали что уарт это асинхронная штука и очень хорошо ложиться на многопоточность, они как в 80ых годах все еще пердолились с таймаутами пакетов

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.