Чтение из сбоев последовательного порта

Парни здесь требование разработать k самые близкие соседи приближаются к определению вогнутой оболочки ряда точек, который ведет себя "почти линейно на числе очков". Печально их статью, кажется, очень хорошо охраняют, и необходимо будет спросить их для нее.

Вот хороший набор ссылок , который включает вышеупомянутое и мог бы привести Вас находить лучший подход.

6
задан anorm 18 November 2009 в 09:05
поделиться

2 ответа

read () , возвращающий 0, указывает на состояние конца файла . Вы должны проверить это и разорвать цикл, если это произойдет.

Что касается того, что вызывает это - конец файла на последовательном порту указывает, что он обнаружил зависание, что означает, что линия DCD была прервана.

1245] Вы можете установить флаг CLOCAL в options.c_cflag , чтобы игнорировать линии управления модемом, если ваше устройство этого не делает.

8
ответ дан 10 December 2019 в 02:49
поделиться

Вы должны попробовать без флага O_NONBLOCK. в необработанном режиме, если настройки c_cc [VMIN] и c_cc [VTIME] равны 0, последовательный порт ведет себя следующим образом (согласно man cfmakeraw):

Если данные есть в наличии, прочтите возврат немедленно, с меньшим из количество доступных байтов, или количество запрошенных байтов. Если нет данных доступен, чтение возвращает 0

Итак, вы должны попробовать:

options->c_cc[VMIN]=1;
1
ответ дан 10 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: