I have to wait a certain size data by serial port during certain time. If I get less data for this time, then I would like to avoid read data. If I get enough data early, then I would like to read them and stop waiting data too.
My current solution looks like this:
serial.open()
start_time = time()
while serial.in_waiting < expected_data_size: # waiting certain size of data
if time_to_wait < time() - start_time: # time is expired
serial.close()
return
data = serial.read(expected_data_size)
serial.close()
But I think it's not good solution, because comparisons (in "while" and "if" blocks) occur a lot of times, while it waits for a data.
Please, advise me, how to implement it better in Python 3. To work with serial port I use pySerial.
Thank you in advance!