PySerial接收奇怪的数据

时间:2013-07-09 20:43:47

标签: pyserial

我已将智能电表与串行电缆连接。但是,当使用PySerial检索数据时,我总是得到以下这些行:

b'\x00\n'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00

最终,我确实获得了一些数据,但不是全部。

输出应该是:

/ISk5\2ME382-1003
0-0:96.1.1(4B414C37303035313039)
1-0:1.8.1(00180.724*kWh)
1-0:1.8.2(00001.416*kWh)
1-0:2.8.1(00000.000*kWh)
1-0:2.8.2(00000.000*kWh)
[...]
!

我的剧本:

import sys
import serial

ser = serial.Serial()
ser.baudrate = 9600
ser.bytesize=serial.SEVENBITS
ser.parity=serial.PARITY_EVEN
ser.stopbits=serial.STOPBITS_ONE
ser.xonxoff=0
ser.rtscts=0
ser.timeout=None
ser.port="/dev/ttyUSB0"

ser.open()
count=0
stack=[]
while count < 25:
    p1_raw =  str(ser.readline())
    print(p1_raw)
    count=count+1

ser.close()
exit

问题似乎在于Python / PySerial。使用cu或minicom时,数据会被正确接收。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

尝试各种设置后,这似乎解决了这个问题:

  

ser.xonxoff = 1