我試圖用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