luokka DisplayData – näyttödata¶
DisplayData-luokka tarjoaa pääsyn kytketyn HDMI- / DisplayPort-näytön sivukanavien linkkeihin:
DDC (Display Data Channel) on I2C-väylä, joka kuljettaa näytön EDID-tietoa – jäsenneltyä lohkoa, joka kuvaa paneelin ominaisuudet (valmistaja, tuetut resoluutiot ja virkistystaajuudet, väri- ja äänimuodot, …). Lähdelaitteet kyselevät sen kerran käynnistyksen yhteydessä selvittääkseen, mitä vastaanotin tukee.
CEC (Consumer Electronics Control) on yksijohtiminen kaksisuuntainen väylä, jonka avulla kytketyt HDMI- / DisplayPort-laitteet voivat vaihtaa lyhyitä ohjauspaketteja – virran kytkentä päälle/pois, sisääntulon vaihto, äänenvoimakkuus, kaukosäätimen välitys jne.
Kumpi tahansa tai molemmat kanavat voidaan ottaa käyttöön rakennusvaiheessa. Raaka EDID luetaan display_id()-metodilla; CEC-kehyksiä voidaan lähettää send_frame()-metodilla, kysellä synkronisesti receive_frame()-metodilla tai reitittää takaisinkutsuun frame_callback()-metodilla.
Esimerkki – kysele kytketyn näytön EDID ja kuuntele loogiseen osoitteeseen 0 osoitettuja CEC-kehyksiä:
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)
Rakentajat¶
- class display.DisplayData(*, cec: bool = False, ddc: bool = False, ddc_addr: int = 0x50)¶
cecarvoonTrueottaaksesi käyttöön CEC-viestinnän ulkoisen näytön kanssa.ddcarvoonTrueottaaksesi käyttöön DDC-viestinnän ulkoisen näytön kanssa.ddc_addrulkoisen näytön EEPROM:in I2C-osoite.- display_id() bytes¶
Palauttaa ulkoisen näytön EDID-datan
bytes-oliona. EDID-otsakkeet ja tarkistussummat varmennetaan ja kaikki osiot yhdistetään yhdeksibytes-olioksi. NostaaOSError-poikkeuksen virhetilanteessa.
- send_frame(dst_addr: int, src_addr: int, data: bytes) None¶
Lähettää CEC-kehyksen osoitteeseen
dst_addrosoitteestasrc_addrsisältäen datandata. NostaaOSError-poikkeuksen virhetilanteessa.
- receive_frame(dst_addr: int, *, timeout: int = 1000) tuple[int, bytes]¶
Odottaa enintään
timeoutmillisekuntia osoitteeseendst_addrosoitettua CEC-kehystä. Palauttaa monikon(src_addr, data). NostaaOSError-poikkeuksen aikakatkaisun tai virheen yhteydessä.
- frame_callback(callback: Callable[[int, bytes], None] | None, dst_addr: int) None¶
Rekisteröi
callback-funktion kutsuttavaksi, kun osoitteeseendst_addrosoitettu CEC-kehys vastaanotetaan. Takaisinkutsua kutsutaan kahdella argumentilla: lähdeosoiteint-tyyppisenä ja kehyksen hyötykuormabytes-oliona.Anna
Nonearvonacallbackpoistaaksesi vastaanoton käytöstä. Kun takaisinkutsu on rekisteröity, älä kutsuDisplayData.receive_frame()-metodia.