python - 如何构建十六进制命令并将其发送到电视

标签 python serial-port pyserial

我有一台 NEC PX-42VM5HA 等 ionic 电视,我正在尝试使用连接的计算机进行控制。我有数据表,其中显示了控制电视的所有代码和协议(protocol)信息。我不确定如何在 python 中构建正确的数据结构来发送十六进制控制代码。以下是电源控制代码和通信协议(protocol)。

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()

最佳答案

将控制代码写为字符串

ON = "\x9f\x80\x60\x4e\x00\xcd"
ser.write(ON)

关于python - 如何构建十六进制命令并将其发送到电视,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15026329/

相关文章:

python - 在 python 的虚拟环境中 pip install 后无法导入tensorflow

android - 使用 HC-05 将连续数据从 arduino 发送到 Android 应用程序

python - 将字符串发送到 serial.to_bytes 不起作用

python - 如何检查 python 对象是否是 numpy ndarray

python - 使用 python flickr lib 从标签中搜索图像 - 但没有 api key

c++ - 使用 select() 进行非阻塞串行

python - 如何在 Python 中将 ASCII 字符转换为字符串

python-3.x - Tkinter:使用 after() 使函数定期运行

python - 我可以在 Python 中异步删除文件吗?

python - 使用串口通信在python和arduino之间进行同步