kelas DisplayData -- Data Display¶
Kelas DisplayData menyediakan akses ke tautan saluran samping dari display HDMI / DisplayPort yang terhubung:
DDC (Display Data Channel) adalah bus I2C yang membawa EDID display -- blok terstruktur yang mendeskripsikan kemampuan panel (produsen, resolusi dan laju refresh yang didukung, format warna dan audio, ...). Perangkat sumber membacanya sekali saat startup untuk mengetahui apa yang didukung oleh sink.
CEC (Consumer Electronics Control) adalah bus bidireksional satu kawat yang memungkinkan perangkat HDMI / DisplayPort yang terhubung untuk bertukar paket kontrol pendek -- daya hidup/mati, pergantian input, volume, penerusan remote control, dll.
Salah satu atau kedua saluran dapat diaktifkan saat konstruksi. EDID mentah dibaca dengan display_id(); bingkai CEC dapat dikirim dengan send_frame(), dipolling secara sinkron melalui receive_frame(), atau diarahkan ke callback dengan frame_callback().
Contoh -- kueri EDID display yang terhubung dan dengarkan bingkai CEC yang ditujukan ke alamat logis 0:
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)
Konstruktor¶
- class display.DisplayData(*, cec: bool = False, ddc: bool = False, ddc_addr: int = 0x50)¶
cecatur keTrueuntuk mengaktifkan komunikasi CEC dengan display eksternal.ddcatur keTrueuntuk mengaktifkan komunikasi DDC dengan display eksternal.ddc_addralamat I2C dari EEPROM display eksternal.- display_id() bytes¶
Mengembalikan data EDID display eksternal sebagai objek
bytes. Header dan checksum EDID diverifikasi dan semua bagian digabungkan menjadi satu objekbytes. MenghasilkanOSErrorjika gagal.
- send_frame(dst_addr: int, src_addr: int, data: bytes) None¶
Mengirim bingkai CEC ke
dst_addrdarisrc_addryang berisidata. MenghasilkanOSErrorjika gagal.
- receive_frame(dst_addr: int, *, timeout: int = 1000) tuple[int, bytes]¶
Menunggu hingga
timeoutmilidetik untuk bingkai CEC yang ditujukan kedst_addr. Mengembalikan tuple(src_addr, data). MenghasilkanOSErrorjika timeout atau gagal.
- frame_callback(callback: Callable[[int, bytes], None] | None, dst_addr: int) None¶
Mendaftarkan
callbackuntuk dipanggil ketika bingkai CEC yang ditujukan kedst_addrditerima. Callback dipanggil dengan dua argumen: alamat sumber sebagaiintdan payload bingkai sebagai objekbytes.Berikan
Nonesebagaicallbackuntuk menonaktifkan penerimaan. Selama callback terdaftar, jangan panggilDisplayData.receive_frame().