admin管理员组

文章数量:1558087

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!

本文标签: 串口时间内时钟数据Python