class DisplayData -- 顯示資料¶
DisplayData 類別提供對外接 HDMI/DisplayPort 顯示器側通道連結的存取:
DDC(Display Data Channel,顯示資料通道)是承載顯示器 EDID 的 I2C 匯流排——EDID 是描述面板能力的結構化資料區塊(製造商、支援的解析度與更新率、色彩與音訊格式等)。來源裝置在啟動時查詢一次,以探知接收端所支援的功能。
CEC(Consumer Electronics Control,消費性電子控制)是一條單線雙向匯流排,讓相連的 HDMI/DisplayPort 裝置交換簡短的控制封包——開關機、輸入切換、音量、遙控器轉發等。
可在建構時啟用其中一個或兩個通道。原始 EDID 以 display_id() 讀取;CEC 影格可用 send_frame() 傳送、透過 receive_frame() 同步輪詢,或以 frame_callback() 路由至回呼函式。
範例——查詢相連顯示器的 EDID 並監聽定址至邏輯位址 0 的 CEC 影格::
import display
data = display.DisplayData(cec=True, ddc=True)
# Read the EDID once at startup.
edid = data.display_id()
print("EDID:", edid)
def on_frame(src, payload):
print("CEC from {:#x}: {}".format(src, payload))
data.frame_callback(on_frame, 0)
建構子¶
- class display.DisplayData(*, cec: bool = False, ddc: bool = False, ddc_addr: int = 0x50)¶
cec設為True以啟用與外接顯示器的 CEC 通訊。ddc設為True以啟用與外接顯示器的 DDC 通訊。ddc_addr外接顯示器 EEPROM 的 I2C 位址。- send_frame(dst_addr: int, src_addr: int, data: bytes) None¶
從
src_addr傳送一個包含data的 CEC 影格至dst_addr。失敗時引發OSError。