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.