pyb — funkcije povezane s pločom

Upozorenje

Modul pyb je zastario. Za novi kod koristite međuportabilni modul machine – on pruža istu funkcionalnost na svakoj OpenMV Cam neovisno o porodici MCU-a, dok pyb postoji samo na pločama temeljenim na STM32. pyb se zadržava radi povratne kompatibilnosti sa starijim skriptama, nove značajke se neće dodavati i mogao bi biti uklonjen u budućem izdanju.

Modul pyb sadrži funkcije specifične za STM32 povezane s pločom.

Razne funkcije

pyb.have_cdc() bool

Vraća True ako je USB spojen kao serijski uređaj, inače False.

Napomena

Ova funkcija je zastarjela. Umjesto nje koristite pyb.USB_VCP().isconnected().

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

Uzima 4-torku (ili listu) i šalje je USB domaćinu (računalu) kako bi signalizirao događaj pokreta HID miša.

Napomena

Ova funkcija je zastarjela. Umjesto nje koristite pyb.USB_HID.send().

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

Ispisuje mnoštvo informacija o ploči.

pyb.main(filename: str) None

Postavlja naziv datoteke glavne skripte koja se izvodi nakon što boot.py završi. Ako se ova funkcija ne pozove, izvršit će se zadana datoteka main.py.

Pozivanje ove funkcije ima smisla samo iz boot.py.

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

Napomena

Ova funkcija je zastarjela. Umjesto nje koristite vfs.mount() / vfs.umount() i blok uređaj izveden iz vfs.AbstractBlockDev.

Montira blok uređaj pod mountpoint. device mora implementirati zastarjeli pyb protokol blok uređaja (također zastario – za moderno sučelje pogledajte vfs.AbstractBlockDev):

Metoda

Svrha

readblocks(self, blocknum, buf)

Kopira buf bajtova s uređaja počevši od bloka blocknum. Duljina buf je višekratnik broja 512.

writeblocks(self, blocknum, buf) (neobavezno)

Zapisuje buf na uređaj počevši od bloka blocknum. Ako se izostavi, uređaj se montira samo za čitanje.

count(self)

Vraća broj blokova od 512 bajtova na uređaju.

sync(self) (neobavezno)

Isprazni sve predmemorirane zapise.

mountpoint je putanja u korijenu datotečnog sustava na koju se montira uređaj; mora počinjati kosom crtom. readonly prisiljava montiranje samo za čitanje. mkfs stvara novi datotečni sustav ako nijedan ne postoji.

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

Dohvati ili postavi UART objekt na kojem se ponavlja REPL.

pyb.rng() int

Vraća 30-bitni hardverski generirani slučajni broj.

pyb.sync() None

Sinkronizira sve datotečne sustave.

pyb.unique_id() bytes

Vraća niz od 12 bajtova (96 bitova), što je jedinstveni ID MCU-a.

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

Ako se pozove bez argumenata, vraća trenutni USB način rada kao niz.

Ako se pozove s navedenim modestr, pokušava konfigurirati USB način rada. Razumiju se sljedeće vrijednosti modestr:

modestr

Konfigurira

None

Onemogućuje USB.

'VCP'

Samo VCP (Virtual COM Port).

'MSC'

Samo MSC (USB klasa masovne pohrane).

'VCP+MSC'

VCP i MSC.

'VCP+HID'

VCP i HID (uređaj za interakciju s čovjekom).

'VCP+MSC+HID'

VCP, MSC i HID zajedno. Nije podržano na svakoj OpenMV Cam.

Radi povratne kompatibilnosti, 'CDC' se tumači kao 'VCP' (i slično za 'CDC+MSC' i 'CDC+HID').

Parametar port trebao bi biti cijeli broj (0, 1, …) i odabire koji se USB priključak koristi ako ploča podržava više priključaka. Vrijednost -1 koristi zadani ili automatski odabrani priključak.

Parametri vid i pid omogućuju navođenje VID-a (ID dobavljača) i PID-a (ID proizvoda). Vrijednost pid od -1 odabrat će PID na temelju vrijednosti modestr.

Ako omogućujete MSC način rada, parametar msc može se koristiti za navođenje liste SCSI LUN-ova koji se izlažu na sučelju masovne pohrane. Na primjer msc=(pyb.Flash(), pyb.SDCard()).

Ako omogućujete HID način rada, možete također navesti HID pojedinosti prosljeđivanjem ključnog parametra hid. Uzima n-torku (podklasa, protokol, najveća duljina paketa, interval ispitivanja, deskriptor izvješća). Prema zadanim postavkama postavit će odgovarajuće vrijednosti za USB miš. Postoji i konstanta pyb.hid_keyboard, koja je odgovarajuća n-torka za USB tipkovnicu.

Parametar high_speed, kada je postavljen na True, omogućuje USB HS način rada ako ga hardver podržava.

Konstante

Obje konstante u nastavku gotove su 5-torke u obliku

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

prikladne za prosljeđivanje kao argument hid funkcije usb_mode() kako bi se OpenMV Cam domaćinu prikazala kao USB HID uređaj. subclass = 1 znači „boot sučelje”, a protocol odabire klasu boot uređaja (1 = tipkovnica, 2 = miš). Peti element je bytes objekt koji sadrži HID deskriptor izvješća koji se koristi kada domaćin nabraja uređaj.

pyb.hid_mouse: tuple

Unaprijed izgrađen HID deskriptor za 3-tipkovni boot miš s relativnim X/Y pomakom. N-torka je (1, 2, 4, 8, <mouse report descriptor>): boot podklasa, protokol miša, 4-bajtna ulazna izvješća (maska tipki + X + Y + kotačić), ispitivana svakih 8 ms. Ugrađeni deskriptor izvješća je onaj koji koristi pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Unaprijed izgrađen HID deskriptor za USB boot tipkovnicu. N-torka je (1, 1, 8, 8, <keyboard report descriptor>): boot podklasa, protokol tipkovnice, 8-bajtna ulazna izvješća (bajt modifikatora, jedan rezervirani bajt, šest istovremenih kodova tipki), ispitivana svakih 8 ms. Ugrađeni deskriptor izvješća odgovara standardnom 8-bajtnom rasporedu HID boot tipkovnice, pa bi izvješće poslano putem USB_HID.send() trebalo biti bytes u obliku (modifiers, 0, key1, key2, key3, key4, key5, key6).

Klase