pyb — funkce související s deskou

Varování

Modul pyb je zastaralý. Pro nový kód použijte přenositelný modul machine – ten poskytuje stejnou funkcionalitu na každé OpenMV Cam bez ohledu na rodinu MCU, zatímco pyb existuje pouze na deskách založených na STM32. pyb je zachován kvůli zpětné kompatibilitě se staršími skripty, žádné nové funkce nebudou přidávány a v budoucí verzi může být odstraněn.

Modul pyb obsahuje funkce specifické pro STM32 související s deskou.

Různé funkce

pyb.have_cdc() bool

Vrací True, pokud je USB připojeno jako sériové zařízení, jinak False.

Poznámka

Tato funkce je zastaralá. Místo ní použijte pyb.USB_VCP().isconnected().

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

Přijme 4prvkovou n-tici (nebo seznam) a odešle ji USB hostiteli (PC) pro signalizaci události pohybu HID myši.

Poznámka

Tato funkce je zastaralá. Místo ní použijte pyb.USB_HID.send().

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

Vypíše spoustu informací o desce.

pyb.main(filename: str) None

Nastaví název souboru hlavního skriptu, který se spustí po dokončení boot.py. Pokud tato funkce není zavolána, spustí se výchozí soubor main.py.

Volat tuto funkci má smysl pouze zevnitř boot.py.

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

Poznámka

Tato funkce je zastaralá. Místo ní použijte vfs.mount() / vfs.umount() a blokové zařízení odvozené od vfs.AbstractBlockDev.

Připojí blokové zařízení pod mountpoint. device musí implementovat starší protokol blokového zařízení pyb (rovněž zastaralý – moderní rozhraní viz vfs.AbstractBlockDev):

Metoda

Účel

readblocks(self, blocknum, buf)

Zkopíruje buf bajtů ze zařízení počínaje blokem blocknum. Délka buf je násobkem 512.

writeblocks(self, blocknum, buf) (volitelné)

Zapíše buf do zařízení počínaje blokem blocknum. Pokud je vynecháno, zařízení je připojeno pouze pro čtení.

count(self)

Vrací počet 512bajtových bloků na zařízení.

sync(self) (volitelné)

Vyprázdní veškeré zapamatované zápisy.

mountpoint je cesta v kořeni souborového systému, kam zařízení připojit; musí začínat lomítkem dopředu. readonly vynutí připojení pouze pro čtení. mkfs vytvoří nový souborový systém, pokud žádný není přítomen.

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

Získá nebo nastaví UART objekt, na kterém je opakován REPL.

pyb.rng() int

Vrací 30bitové hardwarově generované náhodné číslo.

pyb.sync() None

Synchronizuje všechny souborové systémy.

pyb.unique_id() bytes

Vrací řetězec o délce 12 bajtů (96 bitů), což je jedinečné ID daného 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

Pokud je zavolána bez argumentů, vrací aktuální USB režim jako řetězec.

Pokud je zavolána s poskytnutým modestr, pokusí se nakonfigurovat USB režim. Rozumí se následujícím hodnotám modestr:

modestr

Konfiguruje

None

Zakáže USB.

'VCP'

Pouze VCP (Virtual COM Port).

'MSC'

Pouze MSC (USB mass storage class).

'VCP+MSC'

VCP a MSC.

'VCP+HID'

VCP a HID (human interface device).

'VCP+MSC+HID'

VCP, MSC a HID dohromady. Není podporováno na každé OpenMV Cam.

Kvůli zpětné kompatibilitě se 'CDC' rozumí jako 'VCP' (a obdobně pro 'CDC+MSC' a 'CDC+HID').

Parametr port by měl být celé číslo (0, 1, …) a vybírá, který USB port použít, pokud deska podporuje více portů. Hodnota -1 použije výchozí nebo automaticky vybraný port.

Parametry vid a pid vám umožňují specifikovat VID (vendor id) a PID (product id). Hodnota pid rovná -1 vybere PID na základě hodnoty modestr.

Při povolení režimu MSC lze parametr msc použít k zadání seznamu SCSI LUN, které se mají vystavit na rozhraní mass storage. Například msc=(pyb.Flash(), pyb.SDCard()).

Při povolení režimu HID můžete také specifikovat detaily HID předáním klíčového parametru hid. Přijímá n-tici (subclass, protocol, max packet length, polling interval, report descriptor). Ve výchozím nastavení nastaví vhodné hodnoty pro USB myš. Existuje také konstanta pyb.hid_keyboard, což je vhodná n-tice pro USB klávesnici.

Parametr high_speed, nastavený na True, povolí režim USB HS, pokud je podporován hardwarem.

Konstanty

Obě níže uvedené konstanty jsou hotové 5prvkové n-tice ve tvaru

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

vhodné pro předání jako argument hid funkce usb_mode() k tomu, aby se OpenMV Cam zobrazila hostiteli jako USB HID zařízení. subclass = 1 znamená „boot interface“ a protocol vybírá třídu boot zařízení (1 = klávesnice, 2 = myš). Pátý prvek je objekt bytes obsahující deskriptor HID reportu použitý při výčtu zařízení hostitelem.

pyb.hid_mouse: tuple

Předpřipravený HID deskriptor pro 3tlačítkovou boot myš s relativním pohybem X/Y. N-tice je (1, 2, 4, 8, <mouse report descriptor>): boot subclass, protokol myši, 4bajtové vstupní reporty (maska tlačítek + X + Y + kolečko), dotazované každých 8 ms. Vestavěný deskriptor reportu je ten, který používá pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Předpřipravený HID deskriptor pro USB boot klávesnici. N-tice je (1, 1, 8, 8, <keyboard report descriptor>): boot subclass, protokol klávesnice, 8bajtové vstupní reporty (bajt modifikátoru, jeden rezervovaný bajt, šest souběžných kódů kláves), dotazované každých 8 ms. Vestavěný deskriptor reportu odpovídá standardnímu 8bajtovému rozložení HID boot klávesnice, takže report odeslaný přes USB_HID.send() by měl být bytes ve tvaru (modifiers, 0, key1, key2, key3, key4, key5, key6).

Třídy