class DisplayData – Display-data¶
Klassen DisplayData ger tillgång till sidokanalslänkarna hos en ansluten HDMI-/DisplayPort-display:
DDC (Display Data Channel) är en I2C-buss som bär displayens EDID – ett strukturerat block som beskriver panelens kapacitet (tillverkare, stödda upplösningar och uppdateringsfrekvenser, färg- och ljudformat, …). Källenheter frågar efter den en gång vid uppstart för att upptäcka vad mottagaren stöder.
CEC (Consumer Electronics Control) är en dubbelriktad enkeltrådsbuss som låter anslutna HDMI-/DisplayPort-enheter utbyta korta kontrollpaket – på-/avstängning, ingångsväxling, volym, vidarebefordran av fjärrkontroll, etc.
Endera eller båda kanalerna kan aktiveras vid konstruktion. Den råa EDID:n läses med display_id(); CEC-ramar kan skickas med send_frame(), pollas synkront via receive_frame() eller dirigeras till ett återanrop med frame_callback().
Exempel – fråga den anslutna displayens EDID och lyssna efter CEC-ramar adresserade till logisk adress 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)
Konstruktorer¶
- class display.DisplayData(*, cec: bool = False, ddc: bool = False, ddc_addr: int = 0x50)¶
cecsätts tillTrueför att aktivera CEC-kommunikation med en extern display.ddcsätts tillTrueför att aktivera DDC-kommunikation med en extern display.ddc_addrI2C-adress för den externa displayens EEPROM.- display_id() bytes¶
Returnerar den externa displayens EDID-data som ett
bytes-objekt. EDID-headers och kontrollsummor verifieras och alla sektioner sammanfogas till ett endabytes-objekt. GenererarOSErrorvid fel.
- send_frame(dst_addr: int, src_addr: int, data: bytes) None¶
Skickar en CEC-ram till
dst_addrfrånsrc_addrinnehållandedata. GenererarOSErrorvid fel.
- receive_frame(dst_addr: int, *, timeout: int = 1000) tuple[int, bytes]¶
Väntar i upp till
timeoutmillisekunder på en CEC-ram adresserad tilldst_addr. Returnerar en tupel av(src_addr, data). GenererarOSErrorvid timeout eller fel.
- frame_callback(callback: Callable[[int, bytes], None] | None, dst_addr: int) None¶
Registrerar
callbackför att anropas när en CEC-ram adresserad tilldst_addrtas emot. Återanropet anropas med två argument: källadressen som enintoch ramens nyttolast som ettbytes-objekt.Skicka
Nonesomcallbackför att avaktivera mottagning. Medan ett återanrop är registrerat ska du inte anropaDisplayData.receive_frame().