2013-07-09 55 views
0

我用串口线连接了我的智能电表。但是,使用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时,数据会被正确接收。

任何想法?

回答

3

尝试不同的设置后,这似乎已经解决了这个问题:

ser.xonxoff = 1