class DisplayData – kijelzőadatok¶
A DisplayData osztály hozzáférést biztosít a csatlakoztatott HDMI / DisplayPort kijelző mellékcsatorna-kapcsolataihoz:
A DDC (Display Data Channel) egy I2C busz, amely a kijelző EDID-jét hordozza – egy strukturált blokkot, amely leírja a panel képességeit (gyártó, támogatott felbontások és frissítési frekvenciák, szín- és audioformátumok, …). A forráseszközök indításkor egyszer lekérdezik, hogy felderítsék, mit támogat a fogadó eszköz.
A CEC (Consumer Electronics Control) egy egyvezetékes, kétirányú busz, amely lehetővé teszi a csatlakoztatott HDMI / DisplayPort eszközök számára, hogy rövid vezérlőcsomagokat cseréljenek – be-/kikapcsolás, bemenetváltás, hangerő, távirányító-továbbítás stb.
Bármelyik vagy mindkét csatorna engedélyezhető a létrehozáskor. A nyers EDID a display_id() metódussal olvasható; CEC képkockák a send_frame() metódussal küldhetők, szinkron módon lekérdezhetők a receive_frame() metódussal, vagy egy visszahíváshoz irányíthatók a frame_callback() metódussal.
Példa – a csatlakoztatott kijelző EDID-jének lekérdezése és a 0-s logikai címre címzett CEC képkockák figyelése:
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)
Konstruktorok¶
- class display.DisplayData(*, cec: bool = False, ddc: bool = False, ddc_addr: int = 0x50)¶
A
ceclegyenTruea CEC kommunikáció engedélyezéséhez egy külső kijelzővel.A
ddclegyenTruea DDC kommunikáció engedélyezéséhez egy külső kijelzővel.A
ddc_addra külső kijelző EEPROM-jának I2C címe.- display_id() bytes¶
Visszaadja a külső kijelző EDID adatait egy
bytesobjektumként. Az EDID fejlécek és ellenőrző összegek ellenőrzése megtörténik, és az összes szakasz egyetlenbytesobjektumba van összefűzve. Hiba eseténOSErrorkivételt vált ki.
- send_frame(dst_addr: int, src_addr: int, data: bytes) None¶
CEC képkockát küld a
dst_addrcímre asrc_addrcímről, amely adataadatot tartalmazza. Hiba eseténOSErrorkivételt vált ki.
- receive_frame(dst_addr: int, *, timeout: int = 1000) tuple[int, bytes]¶
Legfeljebb
timeoutezredmásodpercig vár egydst_addrcímre címzett CEC képkockára. Egy(src_addr, data)tuple-t ad vissza. Időtúllépés vagy hiba eseténOSErrorkivételt vált ki.
- frame_callback(callback: Callable[[int, bytes], None] | None, dst_addr: int) None¶
Regisztrálja a
callbackvisszahívást, amelyet akkor hív meg, amikor egydst_addrcímre címzett CEC képkocka érkezik. A visszahívás két argumentummal kerül meghívásra: a forráscímmelinttípusként és a képkocka hasznos tartalmávalbytesobjektumként.Adjon át
Noneértéketcallbackként a vétel letiltásához. Amíg egy visszahívás regisztrálva van, ne hívja meg aDisplayData.receive_frame()metódust.