pyb — a kártyához kapcsolódó függvények

Figyelem

A pyb modul elavult. Új kódhoz használd a portfüggetlen machine modult – az minden OpenMV Cam eszközön ugyanazt a funkcionalitást nyújtja, függetlenül az MCU-családtól, míg a pyb csak az STM32-alapú kártyákon létezik. A pyb a régebbi szkriptekkel való visszafelé kompatibilitás miatt marad meg, új funkciók nem kerülnek bele, és egy jövőbeli kiadásban el is távolíthatják.

A pyb modul a kártyához kapcsolódó STM32-specifikus függvényeket tartalmazza.

Egyéb függvények

pyb.have_cdc() bool

True értéket ad vissza, ha az USB soros eszközként van csatlakoztatva, egyébként False értéket.

Megjegyzés

Ez a függvény elavult. Helyette használd a pyb.USB_VCP().isconnected() hívást.

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

Egy 4-elemű tuple-t (vagy listát) fogad, és elküldi az USB-gazdagépnek (a PC-nek) egy HID egérmozgási esemény jelzéséhez.

Megjegyzés

Ez a függvény elavult. Helyette használd a pyb.USB_HID.send() metódust.

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

Sok információ kiírása a kártyáról.

pyb.main(filename: str) None

Beállítja a boot.py befejezése után futtatandó fő szkript fájlnevét. Ha ezt a függvényt nem hívják meg, akkor az alapértelmezett main.py fájl kerül végrehajtásra.

Ennek a függvénynek a meghívása csak a boot.py-on belülről van értelme.

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

Megjegyzés

Ez a függvény elavult. Helyette használd a vfs.mount() / vfs.umount() függvényeket és egy vfs.AbstractBlockDev-ből származtatott blokkeszközt.

Egy blokkeszköz csatolása a mountpoint alá. A device eszköznek meg kell valósítania a régi pyb blokkeszköz-protokollt (amely szintén elavult – a modern interfészért lásd a vfs.AbstractBlockDev osztályt):

Metódus

Cél

readblocks(self, blocknum, buf)

Átmásol buf méretnyi bájtot az eszközről a blocknum blokktól kezdve. A buf hossza 512 többszöröse.

writeblocks(self, blocknum, buf) (opcionális)

A buf kiírása az eszközre a blocknum blokktól kezdve. Ha elhagyják, az eszköz csak olvashatóan kerül csatolásra.

count(self)

Visszaadja az eszközön lévő 512 bájtos blokkok számát.

sync(self) (opcionális)

Kiüríti a gyorsítótárazott írásokat.

A mountpoint a fájlrendszer gyökerében lévő útvonal, ahova az eszközt csatolni kell; perjellel kell kezdődnie. A readonly csak olvasható csatolást kényszerít ki. Az mkfs új fájlrendszert hoz létre, ha nincs jelen egy sem.

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

Lekérdezi vagy beállítja azt a UART objektumot, amelyen a REPL meg van ismételve.

pyb.rng() int

Visszaad egy 30 bites, hardver által generált véletlenszámot.

pyb.sync() None

Szinkronizálja az összes fájlrendszert.

pyb.unique_id() bytes

Visszaad egy 12 bájtos (96 bites) sztringet, amely az MCU egyedi azonosítója.

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

Ha argumentumok nélkül hívják, visszaadja az aktuális USB-módot sztringként.

Ha a modestr megadásával hívják, megpróbálja beállítani az USB-módot. A modestr alábbi értékei értelmezhetők:

modestr

Beállítja

None

Letiltja az USB-t.

'VCP'

Csak VCP (Virtual COM Port).

'MSC'

Csak MSC (USB tömegtároló osztály).

'VCP+MSC'

VCP és MSC.

'VCP+HID'

VCP és HID (human interface device).

'VCP+MSC+HID'

VCP, MSC és HID együtt. Nem minden OpenMV Cam eszközön támogatott.

A visszafelé kompatibilitás érdekében a 'CDC' a 'VCP' jelentésével értelmeződik (és hasonlóan a 'CDC+MSC' és 'CDC+HID' esetében is).

A port paraméternek egész számnak kell lennie (0, 1, …), és azt választja ki, hogy melyik USB-portot használja, ha a kártya több portot támogat. A -1 érték az alapértelmezett vagy automatikusan kiválasztott portot használja.

A vid és pid paraméterek lehetővé teszik a VID (vendor id) és PID (product id) megadását. A pid -1 értéke a modestr értéke alapján választ ki egy PID-t.

MSC mód engedélyezésekor az msc paraméterrel megadható azoknak a SCSI LUN-oknak a listája, amelyeket a tömegtároló interfészen meg kell jeleníteni. Például msc=(pyb.Flash(), pyb.SDCard()).

HID mód engedélyezésekor a HID részleteit is megadhatod a hid kulcsszavas paraméter átadásával. Ez egy tuple-t fogad (subclass, protocol, max packet length, polling interval, report descriptor). Alapértelmezés szerint egy USB-egérnek megfelelő értékeket állít be. Létezik egy pyb.hid_keyboard konstans is, amely egy USB-billentyűzetnek megfelelő tuple.

A high_speed paraméter, True értékre állítva, engedélyezi az USB HS módot, ha a hardver támogatja.

Konstansok

Az alábbi két konstans mindegyike kész 5-elemű tuple az alábbi formában

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

amely alkalmas az usb_mode() hid argumentumaként való átadásra, hogy az OpenMV Cam USB HID eszközként jelenjen meg a gazdagép számára. A subclass = 1 jelentése „boot interface”, a protocol pedig a boot eszközosztályt választja ki (1 = billentyűzet, 2 = egér). Az ötödik elem egy bytes objektum, amely a HID report descriptort tartalmazza, amelyet a gazdagép az eszköz felsorolásakor használ.

pyb.hid_mouse: tuple

Előre elkészített HID descriptor egy 3 gombos boot egérhez relatív X/Y mozgással. A tuple (1, 2, 4, 8, <mouse report descriptor>): boot subclass, egér protokoll, 4 bájtos bemeneti riportok (gombmaszk + X + Y + görgő), 8 ms-onként lekérdezve. A beépített report descriptor az, amelyet a pyb.USB_HID().send((buttons, dx, dy, wheel)) használ.

pyb.hid_keyboard: tuple

Előre elkészített HID descriptor egy USB boot billentyűzethez. A tuple (1, 1, 8, 8, <keyboard report descriptor>): boot subclass, billentyűzet protokoll, 8 bájtos bemeneti riportok (módosító bájt, egy fenntartott bájt, hat egyidejű billentyűkód), 8 ms-onként lekérdezve. A beépített report descriptor megfelel a szabványos 8 bájtos HID boot-billentyűzet elrendezésnek, így a USB_HID.send() metóduson keresztül küldött riportnak egy bytes objektumnak kell lennie (modifiers, 0, key1, key2, key3, key4, key5, key6) formában.

Osztályok