напълно изчистете серийния буфер на модемен модул по време на четене

Имам модул за gsm модем, припърво го пробвах от microcom appl. и всичко беше наред. Второ внедрих собствен код в c. Ако предам AT командите, мога да прочета това и отговора му много пъти. Как мога да изчистя порта? Изглежда понякога мога да чета порта почти до вечност. :-)

Опитах се да не взема предвид това, но това предизвиква объркване, когато обработвам отговорите.

Използвам Linux.

Тамас


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