情况如下:
我有两个图章,一个连接到端口:/dev/ttyUSB1,一个外部的,未连接。外部有一个(基于 Contiki 的)程序,可以(每 2 秒)向插入计算机的邮票发送一个字母。插入计算机的邮票有一个程序,也是基于 Contiki 的,它通过无线电信号读取这些信息。
现在,我编写了一个python程序,利用pyserial,它旨在读取进入端口的信息并将其显示在终端中。我知道消息正确到达,因为我可以从通过 USB 连接到终端的印章打印消息。但我无法从 python 代码中读取信息。
import serial, time, threading
ser = serial.Serial()
ser.port = "/dev/ttyUSB1"
ser.baudrate = 9600
ser.bytesize = serial.SEVENBITS
ser.parity = serial.PARITY_EVEN
ser.timeout = 0.1
ser.rtscts = 1
try:
ser.open()
except Exception, e:
print "error open serial port: " + str(e)
exit()
if ser.isOpen():
try:
numOfLines = 0
while True:
print ser.read()
numOfLines = numOfLines + 1
time.sleep(2)
if (numOfLines >= 50):
break
ser.close()
except Exception, e1:
print "error communicating...: " + str(e1)
else:
print "cannot open serial port "
运行时,它不会每隔几秒钟打印一次从邮票发送的预期字母,而是打印一些一致但随机的字母。例如:
w
z
z
w
g
z
g
z
z
z
w
z
w
当我移除连接到印章的 USB 时,程序没有输出。所以它必须从端口读取一些东西......任何帮助将不胜感激。