Последовательная связь в Debian Auto Timeout - PullRequest
0 голосов
/ 01 февраля 2012

Я использую 3.1 Sarge, ядро ​​2.4.26 на плате TS-7400 с архитектурой ARM 9. Я использую терминалы библиотеки POSIX и fcntl.

Я пишу программу для связи между двумя встроенными устройствами через последовательный порт. Программа использует POSIX-тайм-аут VTIME и успешно работает в Ubuntu 10.1, но не работает на плате. Мне нужна программа, чтобы попытаться повторно отправить команду, если по истечении определенного времени нет ответа. Я знаю, что плата передает нормально в первый раз, но затем программа зависает в ожидании ответа. Я запускаю последовательный порт в режиме задержки, поэтому он будет ждать в read (), пока не будет получен хотя бы 1 байт или пока не пройдет 0,1 секунды, как определено VTIME.

В чем проблема или если VTIME просто не работает в этом ядре, что еще можно сделать?

1 Ответ

0 голосов
/ 02 февраля 2012

Исследовать системный вызов select ().Это позволит вам выполнить чтение, когда есть что прочитать, вместо того, чтобы ждать 0,1 секунды, надеясь, что что-то появится.Если предполагается, что это прямой порт вашего кода, то это может быть и неуместно.

Это альтернатива ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...