pyb — funktioner relaterade till kortet

Varning

Modulen pyb är föråldrad. Använd den portöverskridande modulen machine för ny kod – den erbjuder samma funktionalitet på alla OpenMV Cam oavsett MCU-familj, medan pyb endast finns på de STM32-baserade korten. pyb behålls för bakåtkompatibilitet med äldre skript, inga nya funktioner kommer att läggas till, och den kan komma att tas bort i en framtida version.

Modulen pyb innehåller STM32-specifika funktioner relaterade till kortet.

Diverse funktioner

pyb.have_cdc() bool

Returnerar True om USB är ansluten som en seriell enhet, annars False.

Anteckning

Denna funktion är föråldrad. Använd pyb.USB_VCP().isconnected() i stället.

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

Tar en 4-tupel (eller lista) och skickar den till USB-värden (datorn) för att signalera en HID-musrörelsehändelse.

Anteckning

Denna funktion är föråldrad. Använd pyb.USB_HID.send() i stället.

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

Skriver ut mängder av information om kortet.

pyb.main(filename: str) None

Ange filnamnet för huvudskriptet som ska köras efter att boot.py är klar. Om denna funktion inte anropas körs standardfilen main.py.

Det är endast meningsfullt att anropa denna funktion inifrån boot.py.

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

Anteckning

Denna funktion är föråldrad. Använd vfs.mount() / vfs.umount() och en blockenhet härledd från vfs.AbstractBlockDev i stället.

Montera en blockenhet under mountpoint. device måste implementera det äldre pyb-blockenhetsprotokollet (även det föråldrat – se vfs.AbstractBlockDev för det moderna gränssnittet):

Metod

Syfte

readblocks(self, blocknum, buf)

Kopiera buf bytes från enheten med start vid block blocknum. Längden på buf är en multipel av 512.

writeblocks(self, blocknum, buf) (valfri)

Skriv buf till enheten med start vid block blocknum. Om den utelämnas monteras enheten skrivskyddad.

count(self)

Returnera antalet 512-byteblock på enheten.

sync(self) (valfri)

Spola alla cachade skrivningar.

mountpoint är sökvägen i filsystemets rot där enheten ska monteras; den måste börja med ett snedstreck framåt. readonly tvingar en skrivskyddad montering. mkfs skapar ett nytt filsystem om inget finns.

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

Hämta eller ange UART-objektet där REPL:en upprepas.

pyb.rng() int

Returnera ett 30-bitars hårdvarugenererat slumptal.

pyb.sync() None

Synkronisera alla filsystem.

pyb.unique_id() bytes

Returnerar en sträng på 12 byte (96 bitar), vilket är MCU:ns unika ID.

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

Om den anropas utan argument returneras det aktuella USB-läget som en sträng.

Om den anropas med modestr angivet försöker den konfigurera USB-läget. Följande värden på modestr förstås:

modestr

Konfigurerar

None

Inaktiverar USB.

'VCP'

Endast VCP (Virtual COM Port).

'MSC'

Endast MSC (USB mass storage class).

'VCP+MSC'

VCP och MSC.

'VCP+HID'

VCP och HID (human interface device).

'VCP+MSC+HID'

VCP, MSC och HID tillsammans. Stöds inte på alla OpenMV Cam.

För bakåtkompatibilitet förstås 'CDC' som 'VCP' (och på liknande sätt för 'CDC+MSC' och 'CDC+HID').

Parametern port ska vara ett heltal (0, 1, …) och väljer vilken USB-port som ska användas om kortet stöder flera portar. Ett värde på -1 använder standardporten eller den automatiskt valda porten.

Parametrarna vid och pid gör att du kan ange VID (vendor id) och PID (product id). Ett pid-värde på -1 väljer ett PID baserat på värdet av modestr.

Om MSC-läge aktiveras kan parametern msc användas för att ange en lista över SCSI-LUN:er som ska exponeras på masslagringsgränssnittet. Till exempel msc=(pyb.Flash(), pyb.SDCard()).

Om HID-läge aktiveras kan du även ange HID-detaljerna genom att skicka nyckelordsparametern hid. Den tar en tupel av (subclass, protocol, max packet length, polling interval, report descriptor). Som standard ställer den in lämpliga värden för en USB-mus. Det finns också en konstant pyb.hid_keyboard, som är en lämplig tupel för ett USB-tangentbord.

Parametern high_speed, när den sätts till True, aktiverar USB HS-läge om det stöds av hårdvaran.

Konstanter

Båda konstanterna nedan är färdiga 5-tupler i formen

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

lämpliga att skicka som argumentet hid till usb_mode() för att få OpenMV Cam att framstå för värden som en USB HID-enhet. subclass = 1 betyder ”boot interface” och protocol väljer boot-enhetsklassen (1 = tangentbord, 2 = mus). Det femte elementet är ett bytes-objekt som innehåller HID-rapportdeskriptorn som används när värden räknar upp enheten.

pyb.hid_mouse: tuple

Förbyggd HID-deskriptor för en boot-mus med 3 knappar och relativ X/Y-rörelse. Tupeln är (1, 2, 4, 8, <mouse report descriptor>): boot-subclass, musprotokoll, 4-byte ingångsrapporter (knappmask + X + Y + hjul), avläst var 8:e ms. Den inbyggda rapportdeskriptorn är den som används av pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Förbyggd HID-deskriptor för ett USB boot-tangentbord. Tupeln är (1, 1, 8, 8, <keyboard report descriptor>): boot-subclass, tangentbordsprotokoll, 8-byte ingångsrapporter (modifierarbyte, en reserverad byte, sex samtidiga tangentkoder), avläst var 8:e ms. Den inbyggda rapportdeskriptorn matchar standardlayouten på 8 byte för HID boot-tangentbord, så rapporten som skickas via USB_HID.send() ska vara ett bytes av formen (modifiers, 0, key1, key2, key3, key4, key5, key6).

Klasser