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_VCPbaru. 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
-1maka mengatur flow control, yaitu OR bitwise dariUSB_VCP.RTSdanUSB_VCP.CTS.RTSmengatur perilaku baca;CTSmengatur 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
Truejika USB terhubung sebagai perangkat serial, jika tidakFalse.
- 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
nbytesdari perangkat serial dan mengembalikannya sebagai objek bytes. Jikanbytestidak 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 nilaiNone.
- 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. Maksimallen(buf)byte dibaca. Jikamaxlendiberikan maka maksimalmin(maxlen, len(buf))byte dibaca.Mengembalikan jumlah byte yang dibaca dan disimpan ke dalam
bufatauNonejika 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
Nonejika 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
bufke perangkat serial.Mengembalikan jumlah byte yang ditulis.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Menerima data pada bus:
datadapat berupa integer, yaitu jumlah byte yang diterima, atau buffer yang dapat diubah, yang akan diisi dengan byte yang diterima.timeoutadalah waktu tunggu dalam milidetik untuk menunggu penerimaan.
Nilai kembalian: jika
dataadalah integer maka buffer baru dari byte yang diterima dikembalikan, jika tidak jumlah byte yang dibaca ke dalamdatadikembalikan.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Mengirim data melalui USB VCP:
dataadalah data yang akan dikirim (integer yang akan dikirim, atau objek buffer).timeoutadalah 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
Noneuntuk 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(). MengaktifkanRTSmembuat perangkat membatasi transmisi host ketika buffer baca penuh.