Secondly, as for your question itself, you seem to be asking "how can I clear out any characters waiting in the input buffer for a particular filehandle". The easiest way to accomplish this is with the Term::ReadKey module:
That code will pull characters until the RX buffer is empty and will wait 0.1 seconds on an empty RX buffer to decide that it's really done. You can use "-1" if you want it to exit as soon as the RX buffer is empty and not wait.use Term::ReadKey; # ... do some stuff to the filehandle COMPORT ... # ... do the command that gives the long response ... # Clear the remaining input while (defined(ReadKey(0.1,COMPORT))) {} # ... do some other command ...
I do hope that you're using sysread or some similar unbuffered system to deal with serial ports - otherwise, you'll have all sorts of trouble.
-- @/=map{[/./g]}qw/.h_nJ Xapou cets krht ele_ r_ra/; map{y/X_/\n /;print}map{pop@$_}@/for@/
In reply to Re: How to flush the data accumulated in COM port buffer
by fizbin
in thread How to flush the data accumulated in COM port buffer
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |