class USB_VCP – USB-virtuaalisarjaportti

USB_VCP-luokka mahdollistaa stream-tyyppisen objektin luomisen, joka edustaa USB-virtuaalisarjaporttia. Sitä voidaan käyttää datan lukemiseen ja kirjoittamiseen USB:n kautta kytkettyyn isäntäkoneeseen.

Konstruktorit

class pyb.USB_VCP(id: int = 0)

Luo uuden USB_VCP-objektin. id-argumentti valitsee, mitä USB VCP -porttia käytetään, kun useampi kuin yksi on tuotu ulos.

Metodit

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

Määrittää USB VCP -portin. Jos flow-argumentti ei ole -1, se asettaa vuonohjauksen, joka on bittikohtainen OR arvoista USB_VCP.RTS ja USB_VCP.CTS. RTS portittaa lukukäyttäytymistä; CTS portittaa kirjoituskäyttäytymistä.

setinterrupt(chr: int) None

Asettaa merkin, joka keskeyttää suorituksessa olevan Python-koodin. Tämä on oletuksena 3 (CTRL-C), ja kun CTRL-C-merkki vastaanotetaan USB VCP -portin kautta, nostetaan KeyboardInterrupt-poikkeus.

Aseta arvoon -1 poistaaksesi tämän keskeytysominaisuuden käytöstä. Tämä on hyödyllistä, kun haluat lähettää raakatavuja USB VCP -portin kautta.

isconnected() bool

Palauttaa True, jos USB on kytketty sarjalaitteena, muutoin False.

debug_mode_enabled() bool

Palauttaa True, jos OpenMV IDE on kytketty OpenMV Camiin.

any() bool

Palauttaa True, jos merkkejä on odottamassa, muutoin False.

close() None

Tämä metodi ei tee mitään. Se on olemassa, jotta USB_VCP-objekti voi toimia tiedostona.

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

Lukee enintään nbytes tavua sarjalaitteelta ja palauttaa ne bytes-objektina. Jos nbytes ei ole määritetty, metodi lukee kaikki saatavilla olevat tavut sarjalaitteelta. USB_VCP stream toimii implisiittisesti ei-estävässä tilassa, joten jos odottavaa dataa ei ole saatavilla, tämä metodi palaa välittömästi arvolla None.

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

Lukee tavuja sarjalaitteelta ja tallentaa ne puskuriin buf, jonka tulee olla puskurinkaltainen objekti. Luetaan enintään len(buf) tavua. Jos maxlen on annettu, luetaan enintään min(maxlen, len(buf)) tavua.

Palauttaa puskuriin buf luettujen ja tallennettujen tavujen määrän tai None, jos odottavaa dataa ei ole saatavilla.

readline() bytes | None

Lukee kokonaisen rivin sarjalaitteelta.

Palauttaa bytes-objektin, joka sisältää datan, mukaan lukien lopussa olevan rivinvaihtomerkin, tai None, jos odottavaa dataa ei ole saatavilla.

readlines() List[bytes]

Lukee niin paljon dataa kuin mahdollista sarjalaitteelta jakaen sen riveihin.

Palauttaa listan bytes-objekteja, joista kukin objekti on yksi riveistä. Kukin rivi sisältää rivinvaihtomerkin.

write(buf: bytes | bytearray | str) int

Kirjoittaa puskurin buf tavut sarjalaitteelle.

Palauttaa kirjoitettujen tavujen määrän.

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

Vastaanottaa dataa väylältä:

  • data voi olla kokonaisluku, joka on vastaanotettavien tavujen määrä, tai muokattava puskuri, joka täytetään vastaanotetuilla tavuilla.

  • timeout on aikakatkaisu millisekunteina, jonka verran vastaanottoa odotetaan.

Paluuarvo: jos data on kokonaisluku, palautetaan uusi puskuri vastaanotetuista tavuista, muutoin palautetaan kohteeseen data luettujen tavujen määrä.

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

Lähettää dataa USB VCP:n kautta:

  • data on lähetettävä data (lähetettävä kokonaisluku tai puskuriobjekti).

  • timeout on aikakatkaisu millisekunteina, jonka verran lähetystä odotetaan.

Paluuarvo: lähetettyjen tavujen määrä.

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

Rekisteröi handler kutsuttavaksi aina, kun trigger-arvon määrittämä tapahtuma esiintyy. handler-funktion täytyy ottaa täsmälleen yksi argumentti, joka on USB VCP -objekti. Anna arvoksi None poistaaksesi takaisinkutsun käytöstä.

trigger-arvon kelvolliset arvot ovat:

  • USB_VCP.IRQ_RX: uutta dataa on saatavilla luettavaksi USB VCP -objektista.

Vakiot

RTS: int

Vuonohjauslippu metodille init(). RTS:n käyttöön ottaminen saa laitteen rajoittamaan isäntäkoneen lähetystä, kun lukupuskuri on täynnä.

CTS: int

Vuonohjauslippu metodille init(). CTS:n käyttöön ottaminen saa laitteen noudattamaan isäntäkoneen vuonohjausta kirjoitusten aikana (estäen suorituksen, kunnes isäntäkone on valmis vastaanottamaan). Voidaan yhdistää OR-operaatiolla arvoon RTS.

IRQ_RX: int

irq()-laukaisin: laukeaa, kun uutta dataa on saatavilla luettavaksi USB VCP -objektista.