如何构建并发送十六进制命令到电视
我有一台NEC PX-42VM5HA的等离子电视,我想用连接的电脑来控制它。我手上有一份数据表,上面列出了控制电视的所有代码和协议信息。不过,我不太确定该如何在Python中构建合适的数据结构来发送这些十六进制的控制代码。下面是电源控制代码和通信协议。
Communication Protocol:
Interface: RS-232C
Communication: Asynchronous
Baud Rate: 9600
Data Length: 8bits
Parity: Odd
Stop Bit: 1bit
Communication Code: Hex
Power Control Codes
ON 9FH 80H 60H 4EH 00H CDH
OFF 9FH 80H 60H 4FH 00H CEH
这是我目前写的代码:
import time
import serial
ser = serial.Serial(
port='COM1',
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.close()
ser.open()
ser.isOpen()
ON=bytearray([0x9FH,0x80H,0x60H,0x4EH,0x00H,0xCDH])
OFF=bytearray([0x9FH,0x80H,0x60H,0x4FH,0x00H,0xCEH])
ser.write(OFF)
time.sleep(30)
ser.write(ON)
ser.close()
1 个回答
5
把控制代码写成字符串的形式
ON = "\x9f\x80\x60\x4e\x00\xcd"
ser.write(ON)