клас USB_VCP – віртуальний COM-порт USB¶
Клас USB_VCP дозволяє створити об’єкт типу stream, що представляє віртуальний COM-порт USB. Його можна використовувати для читання та запису даних через USB до підключеного хоста.
Конструктори¶
- class pyb.USB_VCP(id: int = 0)¶
Створює новий об’єкт
USB_VCP. Аргумент id визначає, який USB VCP-порт використовувати, якщо відкрито більше одного.Методи¶
- init(*, flow: int = -1) None¶
Налаштовує USB VCP-порт. Якщо аргумент flow не дорівнює
-1, він встановлює керування потоком як побітове ORUSB_VCP.RTSтаUSB_VCP.CTS.RTSкерує поведінкою читання;CTSкерує поведінкою запису.
- setinterrupt(chr: int) None¶
Встановлює символ, який перериває виконання коду Python. За замовчуванням встановлено 3 (CTRL-C), і коли через USB VCP-порт отримується символ CTRL-C, генерується виняток KeyboardInterrupt.
Встановіть -1, щоб вимкнути цю функцію переривання. Це корисно, коли потрібно надсилати необроблені байти через USB VCP-порт.
- read(nbytes: int | None = None) bytes | None¶
Читає щонайбільше
nbytesбайт з послідовного пристрою та повертає їх у вигляді об’єкта bytes. Якщоnbytesне задано, метод читає всі доступні байти з послідовного пристрою. USB_VCP stream неявно працює в неблокуючому режимі, тому якщо немає очікуваних даних, цей метод поверне негайно значення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змушує пристрій обмежувати передачу хоста, коли буфер читання заповнений.