class DisplayData – 显示数据

DisplayData 类用于获取关于连接的 DisplayPort/HDMI 显示器的信息。

构造

class display.DisplayData(cec=False, ddc=False, ddc_addr=0x50)

cec 传递 True 以启用与外部显示器的 CEC 通信(如果可能)。

ddc 传递 True 以启用与外部显示器的 DDC 通信(如果可能)。

ddc_addr 用于与外部显示器 EEPROM 进行通信的 I2C 地址。

方法

display.DisplayData.display_id() int

返回外部显示器的 EDID 数据作为 bytes()对象。已为您验证了 EDID 标头、校验和将所有部分连接成一个 bytes()对象。然后,您可以通过 此指南 进行解析。

DisplayData.send_frame(dst_addr, src_addr, bytes)

在 HDMI-CEC 总线上向 dst_addr 发送一个帧,源地址为 src_addr,数据为 bytes

DisplayData.receive_frame(dst_addr, timeout=1000)

等待 timeout 毫秒以接收地址为 dst_addr 的 HDMI-CEC帧。如果接收到的帧是为 dst_addr 的,则返回 True,否则返回 False。在超时时抛出 OSError 异常。

DisplayData.frame_callback(callback, dst_addr)

注册一个 callback,在接收到 HDMI-CEC 帧时将调用它。回调将接收两个参数,帧的 src_addr(int 类型)和 payload(bytes() 对象)。

dst_addr 设置要在 CEC 总线上侦听的过滤地址。

如果使用此方法,请不要调用 DisplayData.receive_frame() ,直到通过此方法的回调禁用了 None 作为回调。