מחלקה 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כדי לבטל את פונקציית ה-callback.ערכים תקפים עבור trigger הם:
USB_VCP.IRQ_RX: נתונים חדשים זמינים לקריאה מאובייקט ה-USB VCP.
קבועים¶
- RTS: int¶
דגל בקרת זרימה עבור
init(). אפשורRTSגורם להתקן לרסן את שידור המארח כאשר חוצץ הקריאה מלא.