class USB_VCP -- منفذ اتصال افتراضي عبر USB¶
تتيح فئة USB_VCP إنشاء كائن شبيه بـ stream يمثّل منفذ الاتصال الافتراضي عبر USB. يمكن استخدامه لقراءة وكتابة البيانات عبر USB إلى المضيف الموصول.
المُنشئات¶
- class pyb.USB_VCP(id: int = 0)¶
إنشاء كائن
USB_VCPجديد. يحدد معامل id أي منفذ USB VCP يُستخدم عند الكشف عن أكثر من منفذ واحد.الأساليب¶
- init(*, flow: int = -1) None¶
تهيئة منفذ USB VCP. إذا لم يكن معامل flow بقيمة
-1فإنه يضبط التحكم في التدفق، وهو عامل OR بتي بينUSB_VCP.RTSوUSB_VCP.CTS. يتحكمRTSفي سلوك القراءة؛ ويتحكمCTSفي سلوك الكتابة.
- setinterrupt(chr: int) None¶
تعيين الحرف الذي يقاطع تنفيذ كود Python. يُضبط افتراضيًا على 3 (CTRL-C)، وعند استقبال حرف CTRL-C عبر منفذ USB VCP، يُطلق استثناء KeyboardInterrupt.
اضبطه على -1 لتعطيل ميزة المقاطعة هذه. هذا مفيد عندما تريد إرسال بايتات خام عبر منفذ USB VCP.
- read(nbytes: int | None = None) bytes | None¶
قراءة ما لا يزيد عن
nbytesمن الجهاز التسلسلي وإرجاعها ككائن bytes. إذا لم يُحدَّدnbytesفإن الأسلوب يقرأ جميع البايتات المتاحة من الجهاز التسلسلي. يعمل stream الخاص بـ USB_VCP ضمنيًا في الوضع غير الحاجب، لذا إذا لم تتوفر بيانات معلّقة، فسيعود هذا الأسلوب فورًا بالقيمةNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
قراءة البايتات من الجهاز التسلسلي وتخزينها في
buf، الذي ينبغي أن يكون كائنًا شبيهًا بمخزن مؤقت. تُقرأ على الأكثرlen(buf)بايت. وإذا أُعطيmaxlenفتُقرأ على الأكثرmin(maxlen, len(buf))بايت.يُرجع عدد البايتات المقروءة والمخزّنة في
bufأوNoneإذا لم تتوفر بيانات معلّقة.
- readline() bytes | None¶
قراءة سطر كامل من الجهاز التسلسلي.
يُرجع كائن bytes يحتوي على البيانات، بما في ذلك حرف السطر الجديد الختامي أو
Noneإذا لم تتوفر بيانات معلّقة.
- readlines() List[bytes]¶
قراءة أكبر قدر ممكن من البيانات من الجهاز التسلسلي، مع تقسيمها إلى أسطر.
يُرجع قائمة من كائنات bytes، يمثّل كل كائن أحد الأسطر. وسيتضمّن كل سطر حرف السطر الجديد.
- write(buf: bytes | bytearray | str) int¶
كتابة البايتات من
bufإلى الجهاز التسلسلي.يُرجع عدد البايتات المكتوبة.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
استقبال البيانات على الناقل:
dataيمكن أن يكون عددًا صحيحًا، وهو عدد البايتات المراد استقبالها، أو مخزنًا مؤقتًا قابلًا للتعديل سيُملأ بالبايتات المستقبَلة.timeoutهو زمن الانتظار بالميلي ثانية لانتظار الاستقبال.
القيمة المُرجَعة: إذا كان
dataعددًا صحيحًا فيُرجَع مخزن مؤقت جديد بالبايتات المستقبَلة، وإلا يُرجَع عدد البايتات المقروءة فيdata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
إرسال البيانات عبر USB VCP:
dataهي البيانات المراد إرسالها (عدد صحيح للإرسال، أو كائن مخزن مؤقت).timeoutهو زمن الانتظار بالميلي ثانية لانتظار الإرسال.
القيمة المُرجَعة: عدد البايتات المُرسَلة.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
تسجيل handler ليُستدعى كلما وقع حدث محدد بواسطة trigger. يجب أن تأخذ دالة handler وسيطًا واحدًا بالضبط، وهو كائن USB VCP. مرّر
Noneلتعطيل دالة رد النداء.القيم الصالحة لـ trigger هي:
USB_VCP.IRQ_RX: تتوفر بيانات جديدة للقراءة من كائن USB VCP.
الثوابت¶
- RTS: int¶
علم التحكم في التدفق لـ
init(). تمكينRTSيجعل الجهاز يخنق إرسال المضيف عندما يكون مخزن القراءة المؤقت ممتلئًا.