kelas USB_VCP -- port komunikasi virtual USB

Kelas USB_VCP memungkinkan pembuatan objek seperti stream yang merepresentasikan port komunikasi virtual USB. Dapat digunakan untuk membaca dan menulis data melalui USB ke host yang terhubung.

Konstruktor

class pyb.USB_VCP(id: int = 0)

Membuat objek USB_VCP baru. Argumen id memilih port USB VCP mana yang akan digunakan ketika lebih dari satu diekspos.

Metode

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

Mengonfigurasi port USB VCP. Jika argumen flow bukan -1 maka mengatur flow control, yaitu OR bitwise dari USB_VCP.RTS dan USB_VCP.CTS. RTS mengatur perilaku baca; CTS mengatur perilaku tulis.

setinterrupt(chr: int) None

Mengatur karakter yang menginterupsi kode Python yang sedang berjalan. Ini diatur ke 3 (CTRL-C) secara default, dan ketika karakter CTRL-C diterima melalui port USB VCP, pengecualian KeyboardInterrupt akan dilempar.

Atur ke -1 untuk menonaktifkan fitur interupsi ini. Ini berguna ketika Anda ingin mengirim byte mentah melalui port USB VCP.

isconnected() bool

Mengembalikan True jika USB terhubung sebagai perangkat serial, jika tidak False.

debug_mode_enabled() bool

Mengembalikan True jika OpenMV IDE terhubung ke OpenMV Cam.

any() bool

Mengembalikan True jika ada karakter yang menunggu, jika tidak False.

close() None

Metode ini tidak melakukan apa pun. Ada agar objek USB_VCP dapat berfungsi sebagai file.

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

Membaca maksimal nbytes dari perangkat serial dan mengembalikannya sebagai objek bytes. Jika nbytes tidak ditentukan maka metode membaca semua byte yang tersedia dari perangkat serial. USB_VCP stream secara implisit bekerja dalam mode non-blocking, sehingga jika tidak ada data yang tertunda, metode ini akan langsung mengembalikan nilai None.

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

Membaca byte dari perangkat serial dan menyimpannya ke dalam buf, yang harus berupa objek seperti buffer. Maksimal len(buf) byte dibaca. Jika maxlen diberikan maka maksimal min(maxlen, len(buf)) byte dibaca.

Mengembalikan jumlah byte yang dibaca dan disimpan ke dalam buf atau None jika tidak ada data yang tertunda.

readline() bytes | None

Membaca satu baris penuh dari perangkat serial.

Mengembalikan objek bytes yang berisi data, termasuk karakter baris baru di akhir atau None jika tidak ada data yang tertunda.

readlines() List[bytes]

Membaca sebanyak mungkin data dari perangkat serial, memecahnya menjadi baris-baris.

Mengembalikan daftar objek bytes, setiap objek adalah satu baris. Setiap baris akan menyertakan karakter baris baru.

write(buf: bytes | bytearray | str) int

Menulis byte dari buf ke perangkat serial.

Mengembalikan jumlah byte yang ditulis.

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

Menerima data pada bus:

  • data dapat berupa integer, yaitu jumlah byte yang diterima, atau buffer yang dapat diubah, yang akan diisi dengan byte yang diterima.

  • timeout adalah waktu tunggu dalam milidetik untuk menunggu penerimaan.

Nilai kembalian: jika data adalah integer maka buffer baru dari byte yang diterima dikembalikan, jika tidak jumlah byte yang dibaca ke dalam data dikembalikan.

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

Mengirim data melalui USB VCP:

  • data adalah data yang akan dikirim (integer yang akan dikirim, atau objek buffer).

  • timeout adalah waktu tunggu dalam milidetik untuk menunggu pengiriman.

Nilai kembalian: jumlah byte yang dikirim.

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

Mendaftarkan handler untuk dipanggil setiap kali terjadi peristiwa yang ditentukan oleh trigger. Fungsi handler harus menerima tepat satu argumen, yaitu objek USB VCP. Teruskan None untuk menonaktifkan callback.

Nilai valid untuk trigger adalah:

  • USB_VCP.IRQ_RX: data baru tersedia untuk dibaca dari objek USB VCP.

Konstanta

RTS: int

Flag flow-control untuk init(). Mengaktifkan RTS membuat perangkat membatasi transmisi host ketika buffer baca penuh.

CTS: int

Flag flow-control untuk init(). Mengaktifkan CTS membuat perangkat mengikuti flow control host saat penulisan (memblokir sampai host siap menerima). Dapat di-OR dengan RTS.

IRQ_RX: int

Trigger irq(): aktif ketika data baru tersedia untuk dibaca dari objek USB VCP.