whileループでシリアルデータを読み取っています。ただし、サンプルレートを制御することはできません。
コード自体の実行には0.2秒かかるようですので、それより速く実行することはできません。しかし、私はサンプリングがどれだけ遅いかを正確に制御できるようにしたいと思います。
'sleep'を使用してそれを行うことができるように感じますが、問題は、さまざまなポイントでループ自体の読み取りに時間がかかる可能性があることです(シリアルデータを介して送信されているものによって異なります)。バランスをとるために。
たとえば、1秒ごとにサンプリングしたいとします。ループの実行には、0.2秒から0.3秒かかります。私のコードは、0.8秒(ループが0.2秒かかる場合)または0.7秒(ループが0.3秒かかる場合)スリープするのに十分スマートである必要があります。
import serial
import csv
import time
#open serial stream
while True:
#read and print a line
sample_value=ser.readline()
sample_time=time.time()-zero
sample_line=str(sample_time)+','+str(sample_value)
outfile.write(sample_line)
print 'time: ',sample_time,', value: ',sample_value