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

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

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

Я использую линукс.

Тамас


person Tomi    schedule 11.04.2013    source источник


Ответы (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.
person Hasturkun    schedule 11.04.2013
comment
спасибо, я знал, что должно быть что-то подобное :-) Теперь я могу сделать буфер пустым. - person Tomi; 11.04.2013