0
我有一个Arduino报告时间(以秒为单位),电压,电流和焦耳历时60秒。在这样的串行监控:使用PySerial从Ardunio获取更新只需每2分钟而不是1分钟
time,voltage,current,joules
60,1.45,0.39,0.57
120,1.45,0.39,1.13
180,1.45,0.39,1.70
240,1.45,0.39,2.26
...
但是下面的Python脚本我没有得到这样的结果:
import serial
ser = serial.Serial('COM5', 9600)
logfile = open("batterytest.log", 'w')
while True:
if ser.readline() == b'Test Complete!':
logfile.close()
exit()
logfile.write(ser.readline().decode("utf-8"))
logfile.flush()
相反,我看到的结果每120秒:
time,voltage,current,joules
120,1.13,0.02,0.05
240,1.13,0.02,0.09
360,1.13,0.02,0.14
480,1.13,0.02,0.19
....
您正在阅读的两倍,因此每次迭代都会消耗两行。 –
是的,如@KlausD。表示,第一次读取在'if ser.readline()== b'Test Complete!':'中,第二次读取在'logfile.write(ser.readline()。decode(“utf-8”))''处。将读取的行存储在一个临时字符串中。 –
Everyon是对的。我不知道为什么我在查看代码时没有遇到这种情况。我建议修改。 – Russ960