Hi, all. Имею следующую проблему. Допустим, на /dev/ttyS0 приходят блоки данных с частотой 20 герц. Ни преамбулы, ничего... знаю только длину. Если мы уже ожидали данных, то все хорошо, а вот если "вклинились" посреди пакета то прочитаем белиберду. Единственный способ "поймать" начало пакете - по временной задержке между посылками. Но вот засада, задается она в децисекундах целым числом! (т.е. мне бы потребовалась задержка меньше 0.5... а число-то целое... обломс :( ) fd[0] = open("/dev/ttyS0", O_RDWR | O_NOCTTY); if (fd[0] <0) {perror("/dev/ttyS0"); exit(-1); } ...тыр-пыр...прочие настройки... newtio.c_cc[VMIN]=длина в байтах; newtio.c_cc[VTIME]=время в децисекундах; tcflush(fd[1], TCIFLUSH); tcsetattr(fd[1],TCSANOW,&newtio); ... Как быть-то ? Неужто нет способа ? Заранее спасибо.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Com-port настройка (2023)
- Форум Как узнать сколько байт пришло на /dev/ttyS0 ? (2003)
- Форум Serial port programming (2008)
- Форум [C] Com Port (2007)
- Форум Работа с com портом (2007)
- Форум tcsetattr повторный вызов (2011)
- Форум RS232 (2004)
- Форум Не получается читать с порта (2013)
- Форум Функция read() (СИ) в openwrt (2016)
- Форум [ttyUSB0] вызов read() (2010)