klasa USB_VCP – USB virtualni komunikacijski priključak

Klasa USB_VCP omogućuje stvaranje objekta nalik na stream koji predstavlja USB virtualni komunikacijski priključak. Može se koristiti za čitanje i pisanje podataka preko USB-a na povezani host.

Konstruktori

class pyb.USB_VCP(id: int = 0)

Stvara novi USB_VCP objekt. Argument id odabire koji USB VCP priključak koristiti kada je izloženo više njih.

Metode

init(*, flow: int = -1) None

Konfigurira USB VCP priključak. Ako argument flow nije -1, postavlja kontrolu protoka, bitovni-OR vrijednosti USB_VCP.RTS i USB_VCP.CTS. RTS regulira ponašanje pri čitanju; CTS regulira ponašanje pri pisanju.

setinterrupt(chr: int) None

Postavlja znak koji prekida izvođenje Python koda. Prema zadanim postavkama postavljen je na 3 (CTRL-C), a kada se znak CTRL-C primi preko USB VCP priključka, izaziva se iznimka KeyboardInterrupt.

Postavite na -1 da biste onemogućili ovu značajku prekida. To je korisno kada želite slati sirove bajtove preko USB VCP priključka.

isconnected() bool

Vraća True ako je USB povezan kao serijski uređaj, inače False.

debug_mode_enabled() bool

Vraća True ako je OpenMV IDE povezan s OpenMV Cam.

any() bool

Vraća True ako bilo koji znakovi čekaju, inače False.

close() None

Ova metoda ne radi ništa. Postoji kako bi se USB_VCP objekt mogao ponašati kao datoteka.

read(nbytes: int | None = None) bytes | None

Čita najviše nbytes sa serijskog uređaja i vraća ih kao bytes objekt. Ako nbytes nije naveden, metoda čita sve dostupne bajtove sa serijskog uređaja. USB_VCP stream implicitno radi u neblokirajućem načinu rada, pa ako nema dostupnih podataka na čekanju, ova metoda će se odmah vratiti s vrijednošću None.

readinto(buf: bytearray, maxlen: int | None = None) int | None

Čita bajtove sa serijskog uređaja i pohranjuje ih u buf, koji bi trebao biti objekt nalik na međuspremnik. Čita se najviše len(buf) bajtova. Ako je naveden maxlen, čita se najviše min(maxlen, len(buf)) bajtova.

Vraća broj bajtova pročitanih i pohranjenih u buf ili None ako nema dostupnih podataka na čekanju.

readline() bytes | None

Čita cijeli redak sa serijskog uređaja.

Vraća bytes objekt koji sadrži podatke, uključujući završni znak novog retka, ili None ako nema dostupnih podataka na čekanju.

readlines() List[bytes]

Čita što je više moguće podataka sa serijskog uređaja, dijeleći ih na retke.

Vraća listu bytes objekata, pri čemu je svaki objekt jedan od redaka. Svaki redak uključivat će znak novog retka.

write(buf: bytes | bytearray | str) int

Piše bajtove iz buf na serijski uređaj.

Vraća broj zapisanih bajtova.

recv(data: int | bytearray, *, timeout: int = 5000) bytes | int

Prima podatke na sabirnici:

  • data može biti cijeli broj, što je broj bajtova za primanje, ili promjenjivi međuspremnik, koji će se popuniti primljenim bajtovima.

  • timeout je istek vremena u milisekundama za čekanje na primanje.

Povratna vrijednost: ako je data cijeli broj, vraća se novi međuspremnik s primljenim bajtovima, inače se vraća broj bajtova pročitanih u data.

send(data: int | bytes | bytearray, *, timeout: int = 5000) int

Šalje podatke preko USB VCP:

  • data su podaci za slanje (cijeli broj za slanje ili objekt međuspremnika).

  • timeout je istek vremena u milisekundama za čekanje na slanje.

Povratna vrijednost: broj poslanih bajtova.

irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None

Registrira handler koji se poziva kad god se dogodi događaj naveden u trigger. Funkcija handler mora primati točno jedan argument, koji će biti USB VCP objekt. Proslijedite None za onemogućavanje povratnog poziva.

Valjane vrijednosti za trigger su:

  • USB_VCP.IRQ_RX: novi podaci dostupni su za čitanje iz USB VCP objekta.

Konstante

RTS: int

Zastavica kontrole protoka za init(). Omogućavanje RTS čini da uređaj prigušuje odašiljanje hosta kada je međuspremnik za čitanje pun.

CTS: int

Zastavica kontrole protoka za init(). Omogućavanje CTS čini da uređaj poštuje kontrolu protoka hosta tijekom pisanja (blokirajući dok host nije spreman za primanje). Može se OR-ati s RTS.

IRQ_RX: int

irq() okidač: aktivira se kada su novi podaci dostupni za čitanje iz USB VCP objekta.