последовательные данные усекаются termios на встроенном устройстве

Я работаю над программой C, прослушивающей последовательный порт, работающий на встроенном устройстве ARM Linux.

Другие наборы данных работают нормально, но всегда, когда я отправляю определенный набор данных, начало набора усекается. Что усекается, так это следующее (вывод программы slsniff, работающий на цели):

Device --> ^ (094) { (123) <STX> (002) <BS> (008) <STX> (002) <NUL> (000) <NUL> (000) <STX> (002) <SOH> (001) <ETX> (003)

Я достаточно отладил, чтобы быть уверенным, что это вызвано некоторой константой termios, которая использует конец текста ETX для усечения.

Прямо сейчас я до:

struct termios t;

t.c_lflag &= ~(ICANON | IEXTEN | ECHO);
t.c_iflag &= ~ICRNL;
t.c_cc[VMIN] = 1;                   /* Character-at-a-time input */
t.c_cc[VTIME] = 0;                  /* with blocking */

Символ-разделитель набора — это CR 0x0d, который работает нормально во всех случаях.

Любая помощь очень ценится.

С уважением, Берт


person quadmore    schedule 02.03.2011    source источник


Ответы (1)


Ответ был:

cfmakeraw, как описано на http://linux.die.net/man/3/termios.

person quadmore    schedule 02.03.2011