Полностью очистить последовательный буфер модемного модуля во время чтения

У меня есть модуль модема GSM, в первую очередь я попробовал его из приложения microcom. и все было хорошо.Во-вторых, я реализовал свой собственный код в c. Если я передаю команды AT, я могу прочитать это и его ответ много раз. Как я могу очистить порт? Кажется, иногда я могу читать порт почти до бесконечности.:-)

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

Я использую Linux.

Тамас

1 ответ

Решение

Ты можешь использовать tcflush() очистить вход, выход или оба.

tcflush () отбрасывает данные, записанные в объект, на который ссылается fd, но не переданные, или данные, полученные, но не прочитанные, в зависимости от значения queue_selector:

   TCIFLUSH
          flushes data received but not read.

   TCOFLUSH
          flushes data written but not transmitted.

   TCIOFLUSH
          flushes both data received but not read, and data written but not
          transmitted.
Другие вопросы по тегам