pyb --- fungsi-fungsi terkait papan

Peringatan

Modul pyb sudah usang. Gunakan modul lintas-port machine untuk kode baru -- modul ini menyediakan fungsionalitas yang sama di setiap OpenMV Cam terlepas dari keluarga MCU, sedangkan pyb hanya tersedia di papan berbasis STM32. pyb dipertahankan untuk kompatibilitas mundur dengan skrip lama, tidak ada fitur baru yang akan ditambahkan, dan mungkin akan dihapus di rilis mendatang.

Modul pyb berisi fungsi-fungsi khusus STM32 yang terkait dengan papan.

Fungsi lain-lain

pyb.have_cdc() bool

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

Catatan

Fungsi ini sudah usang. Gunakan pyb.USB_VCP().isconnected() sebagai gantinya.

pyb.hid(data: Tuple[int, int, int, int]) None

Mengambil 4-tuple (atau daftar) dan mengirimkannya ke host USB (PC) untuk memberi sinyal peristiwa gerakan mouse HID.

Catatan

Fungsi ini sudah usang. Gunakan pyb.USB_HID.send() sebagai gantinya.

pyb.info(dump_alloc_table: bool | None = None) None

Mencetak banyak informasi tentang papan.

pyb.main(filename: str) None

Mengatur nama file skrip utama yang akan dijalankan setelah boot.py selesai. Jika fungsi ini tidak dipanggil maka file default main.py akan dieksekusi.

Hanya masuk akal untuk memanggil fungsi ini dari dalam boot.py.

pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None

Catatan

Fungsi ini sudah usang. Gunakan vfs.mount() / vfs.umount() dan perangkat blok turunan vfs.AbstractBlockDev sebagai gantinya.

Memasang perangkat blok di bawah mountpoint. device harus mengimplementasikan protokol perangkat blok pyb lama (juga sudah usang -- lihat vfs.AbstractBlockDev untuk antarmuka modern):

Metode

Tujuan

readblocks(self, blocknum, buf)

Menyalin buf byte dari perangkat mulai dari blok blocknum. Panjang buf adalah kelipatan 512.

writeblocks(self, blocknum, buf) (opsional)

Menulis buf ke perangkat mulai dari blok blocknum. Jika dihilangkan, perangkat dipasang hanya-baca.

count(self)

Mengembalikan jumlah blok 512-byte pada perangkat.

sync(self) (opsional)

Membuang semua tulisan yang di-cache.

mountpoint adalah jalur di root sistem file untuk memasang perangkat; harus dimulai dengan garis miring. readonly memaksa pemasangan hanya-baca. mkfs membuat sistem file baru jika tidak ada.

pyb.repl_uart(uart: UART | None = None) UART | None

Mendapatkan atau mengatur objek UART tempat REPL diulangi.

pyb.rng() int

Mengembalikan bilangan acak 30-bit yang dihasilkan perangkat keras.

pyb.sync() None

Sinkronisasi semua sistem file.

pyb.unique_id() bytes

Mengembalikan string 12 byte (96 bit), yang merupakan ID unik MCU.

pyb.usb_mode(modestr: str | None = None, port: int = -1, vid: int = 0xf055, pid: int = -1, msc: Tuple = (), hid: Tuple = pyb.hid_mouse, high_speed: bool = False) str | None

Jika dipanggil tanpa argumen, mengembalikan mode USB saat ini sebagai string.

Jika dipanggil dengan modestr yang diberikan, mencoba mengonfigurasi mode USB. Nilai-nilai modestr berikut dipahami:

modestr

Mengonfigurasi

None

Menonaktifkan USB.

'VCP'

Hanya VCP (Virtual COM Port).

'MSC'

Hanya MSC (kelas penyimpanan massal USB).

'VCP+MSC'

VCP dan MSC.

'VCP+HID'

VCP dan HID (perangkat antarmuka manusia).

'VCP+MSC+HID'

VCP, MSC dan HID bersama-sama. Tidak didukung di setiap OpenMV Cam.

Untuk kompatibilitas mundur, 'CDC' dipahami berarti 'VCP' (dan juga untuk 'CDC+MSC' dan 'CDC+HID').

Parameter port harus berupa integer (0, 1, ...) dan memilih port USB mana yang akan digunakan jika papan mendukung beberapa port. Nilai -1 menggunakan port default atau yang dipilih secara otomatis.

Parameter vid dan pid memungkinkan Anda menentukan VID (vendor id) dan PID (product id). Nilai pid sebesar -1 akan memilih PID berdasarkan nilai modestr.

Jika mengaktifkan mode MSC, parameter msc dapat digunakan untuk menentukan daftar SCSI LUN yang akan diekspos pada antarmuka penyimpanan massal. Misalnya msc=(pyb.Flash(), pyb.SDCard()).

Jika mengaktifkan mode HID, Anda juga dapat menentukan detail HID dengan meneruskan parameter kata kunci hid. Parameter ini mengambil tuple (subclass, protocol, max packet length, polling interval, report descriptor). Secara default, ini akan mengatur nilai yang sesuai untuk mouse USB. Ada juga konstanta pyb.hid_keyboard, yang merupakan tuple yang sesuai untuk keyboard USB.

Parameter high_speed, ketika diatur ke True, mengaktifkan mode USB HS jika didukung oleh perangkat keras.

Konstanta

Kedua konstanta di bawah ini adalah 5-tuple siap pakai dalam bentuk

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

yang cocok untuk diteruskan sebagai argumen hid dari usb_mode() agar OpenMV Cam terlihat oleh host sebagai perangkat USB HID. subclass = 1 berarti "boot interface" dan protocol memilih kelas perangkat boot (1 = keyboard, 2 = mouse). Elemen kelima adalah objek bytes yang menyimpan deskriptor laporan HID yang digunakan saat host mengenumerasi perangkat.

pyb.hid_mouse: tuple

Deskriptor HID bawaan untuk mouse boot 3-tombol dengan gerakan X/Y relatif. Tuple-nya adalah (1, 2, 4, 8, <mouse report descriptor>): subclass boot, protokol mouse, laporan input 4-byte (mask tombol + X + Y + wheel), di-poll setiap 8 ms. Deskriptor laporan bawaan adalah yang digunakan oleh pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Deskriptor HID bawaan untuk keyboard boot USB. Tuple-nya adalah (1, 1, 8, 8, <keyboard report descriptor>): subclass boot, protokol keyboard, laporan input 8-byte (byte modifier, satu byte cadangan, enam kode tombol serentak), di-poll setiap 8 ms. Deskriptor laporan bawaan cocok dengan tata letak keyboard boot HID 8-byte standar, sehingga laporan yang dikirim melalui USB_HID.send() harus berupa bytes dengan bentuk (modifiers, 0, key1, key2, key3, key4, key5, key6).

Kelas