我试图用python控制使用RS232的投影机。此链接具有有关端口设置和预期响应的所需信息。 http://www.audiogeneral.com/Optoma/w501_rs232.pdfPython串行读取不工作
要summerise它 波特= 9600, 数据位= 8, 无奇偶校验, 1个停止位, 无流量控制。
当发送命令“〜00124 1 \ r”时,投影机应该响应okn,其中n是电源状态。
当命令“〜0000 1 \ r”被送到投影机应该
从腻子我能够发送的命令和其他命令的权力,并看到投影机做的事情应该是动力。我还可以发送读取命令,并将适当的okn响应返回给腻子。
从python中,我可以发送开机命令并查看投影机的电源。然而,当我发送电源状态命令时,我从不会看到任何字符进入读缓冲区。
这里是我写的一个测试脚本代码,试图调试这个。
import serial
ser = serial.Serial("/dev/ttyUSB0")
print ser.baudrate
print ser.bytesize
print ser.parity
print ser.stopbits
print ser.xonxoff
print ser.rtscts
print ser.dsrdtr
print ser.name
print "Power State"
ser.write("~00124 1")
while ser.inWaiting() > 0:
response = ser.read(3)
print response
output:
9600
8
N
1
False
False
False
/dev/ttyUSB0
True
Power State
我期望电源状态线后OKN,但它不显示
我没有看到“Power State”后面的任何内容,这表明ser.inWaiting()的返回值<= 0,所以你应该打印它,它是type(),因为它可能是一个字符串而不是int。 –
我打印它的类型是int,但它的值是0,所以循环不会运行。我试着用True:它只是挂起,直到我杀了程序。 – CrimsonKnights