class USB_VCP – porta di comunicazione virtuale USB¶
La classe USB_VCP permette la creazione di un oggetto di tipo stream che rappresenta la porta di comunicazione virtuale USB. Può essere usata per leggere e scrivere dati tramite USB verso l’host connesso.
Costruttori¶
- class pyb.USB_VCP(id: int = 0)¶
Crea un nuovo oggetto
USB_VCP. L’argomento id seleziona quale porta USB VCP usare quando ne è esposta più di una.Metodi¶
- init(*, flow: int = -1) None¶
Configura la porta USB VCP. Se l’argomento flow non è
-1imposta il controllo di flusso, un OR bit a bit diUSB_VCP.RTSeUSB_VCP.CTS.RTSregola il comportamento in lettura;CTSregola il comportamento in scrittura.
- setinterrupt(chr: int) None¶
Imposta il carattere che interrompe l’esecuzione del codice Python. È impostato a 3 (CTRL-C) per impostazione predefinita, e quando un carattere CTRL-C viene ricevuto sulla porta USB VCP, viene sollevata un’eccezione KeyboardInterrupt.
Imposta a -1 per disabilitare questa funzionalità di interrupt. Questo è utile quando vuoi inviare byte grezzi sulla porta USB VCP.
- isconnected() bool¶
Restituisce
Truese l’USB è connesso come dispositivo seriale, altrimentiFalse.
- close() None¶
Questo metodo non fa nulla. Esiste affinché l’oggetto USB_VCP possa comportarsi come un file.
- read(nbytes: int | None = None) bytes | None¶
Legge al massimo
nbytesdal dispositivo seriale e li restituisce come oggetto bytes. Senbytesnon è specificato, il metodo legge tutti i byte disponibili dal dispositivo seriale. Lo stream USB_VCP funziona implicitamente in modalità non bloccante, quindi se non ci sono dati in attesa disponibili, questo metodo restituirà immediatamente con valoreNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Legge byte dal dispositivo seriale e li memorizza in
buf, che dovrebbe essere un oggetto di tipo buffer. Vengono letti al massimolen(buf)byte. Semaxlenè fornito, vengono letti al massimomin(maxlen, len(buf))byte.Restituisce il numero di byte letti e memorizzati in
bufoppureNonese non ci sono dati in attesa disponibili.
- readline() bytes | None¶
Legge un’intera riga dal dispositivo seriale.
Restituisce un oggetto bytes contenente i dati, incluso il carattere di nuova linea finale, oppure
Nonese non ci sono dati in attesa disponibili.
- readlines() List[bytes]¶
Legge la maggior quantità di dati possibile dal dispositivo seriale, suddividendoli in righe.
Restituisce una lista di oggetti bytes, ognuno dei quali è una delle righe. Ogni riga includerà il carattere di nuova linea.
- write(buf: bytes | bytearray | str) int¶
Scrive i byte da
bufal dispositivo seriale.Restituisce il numero di byte scritti.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Riceve dati sul bus:
datapuò essere un intero, che è il numero di byte da ricevere, oppure un buffer mutabile, che verrà riempito con i byte ricevuti.timeoutè il timeout in millisecondi per attendere la ricezione.
Valore restituito: se
dataè un intero allora un nuovo buffer dei byte ricevuti, altrimenti viene restituito il numero di byte letti indata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Invia dati tramite l’USB VCP:
datasono i dati da inviare (un intero da inviare, oppure un oggetto buffer).timeoutè il timeout in millisecondi per attendere l’invio.
Valore restituito: numero di byte inviati.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Registra handler affinché venga chiamato ogni volta che si verifica un evento specificato da trigger. La funzione handler deve accettare esattamente un argomento, che sarà l’oggetto USB VCP. Passa
Noneper disabilitare la callback.I valori validi per trigger sono:
USB_VCP.IRQ_RX: nuovi dati sono disponibili per la lettura dall’oggetto USB VCP.
Costanti¶
- RTS: int¶
Flag di controllo di flusso per
init(). AbilitareRTSfa sì che il dispositivo limiti la trasmissione dell’host quando il buffer di lettura è pieno.