class DisplayData -- بيانات العرض¶
توفر الفئة DisplayData وصولًا إلى روابط القناة الجانبية لعرض HDMI / DisplayPort متصل:
DDC (قناة بيانات العرض) هي ناقل I2C يحمل بيانات EDID الخاصة بالعرض -- وهي كتلة مهيكلة تصف إمكانيات اللوحة (الشركة المصنّعة، والدقات ومعدلات التحديث المدعومة، وصيغ الألوان والصوت، ...). تستعلم عنها الأجهزة المصدر مرة واحدة عند بدء التشغيل لاكتشاف ما يدعمه الجهاز المستقبِل.
CEC (التحكم في الإلكترونيات الاستهلاكية) هو ناقل ثنائي الاتجاه بسلك واحد يتيح لأجهزة HDMI / DisplayPort المتصلة تبادل حزم تحكم قصيرة -- التشغيل/الإيقاف، وتبديل المدخل، ومستوى الصوت، وتمرير التحكم عن بُعد، إلخ.
يمكن تفعيل إحدى القناتين أو كلتيهما عند الإنشاء. تُقرأ بيانات EDID الخام بواسطة display_id()؛ ويمكن إرسال إطارات CEC بواسطة send_frame()، أو استطلاعها بشكل متزامن عبر receive_frame()، أو توجيهها إلى دالة رد نداء عبر frame_callback().
مثال -- الاستعلام عن بيانات EDID الخاصة بالعرض المتصل والاستماع لإطارات CEC الموجهة إلى العنوان المنطقي 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)
البواني¶
- class display.DisplayData(*, cec: bool = False, ddc: bool = False, ddc_addr: int = 0x50)¶
cecاضبطه علىTrueلتفعيل اتصال CEC مع عرض خارجي.ddcاضبطه علىTrueلتفعيل اتصال DDC مع عرض خارجي.ddc_addrعنوان I2C لذاكرة EEPROM الخاصة بالعرض الخارجي.- display_id() bytes¶
تُرجع بيانات EDID الخاصة بالعرض الخارجي ككائن
bytes. يتم التحقق من ترويسات EDID ومجاميع التحقق وتُدمج جميع الأقسام في كائنbytesواحد. تطلقOSErrorعند الفشل.
- send_frame(dst_addr: int, src_addr: int, data: bytes) None¶
ترسل إطار CEC إلى
dst_addrمنsrc_addrيحتوي علىdata. تطلقOSErrorعند الفشل.
- receive_frame(dst_addr: int, *, timeout: int = 1000) tuple[int, bytes]¶
تنتظر حتى
timeoutميلي ثانية لاستقبال إطار CEC موجّه إلىdst_addr. تُرجع صفًا بالشكل(src_addr, data). تطلقOSErrorعند انتهاء المهلة أو الفشل.
- frame_callback(callback: Callable[[int, bytes], None] | None, dst_addr: int) None¶
تسجّل
callbackليُستدعى عند استقبال إطار CEC موجّه إلىdst_addr. تُستدعى دالة رد النداء بوسيطين: عنوان المصدر كـintوحمولة الإطار ككائنbytes.مرّر
Noneكـcallbackلتعطيل الاستقبال. وأثناء تسجيل دالة رد نداء، لا تستدعِDisplayData.receive_frame().