pyb — korttiin liittyvät funktiot

Varoitus

pyb-moduuli on vanhentunut. Käytä uudessa koodissa porttiriippumatonta machine-moduulia – se tarjoaa saman toiminnallisuuden jokaisessa OpenMV Cam -kortissa MCU-perheestä riippumatta, kun taas pyb on olemassa vain STM32-pohjaisissa korteissa. pyb säilytetään yhteensopivuuden vuoksi vanhempien skriptien kanssa, uusia ominaisuuksia ei lisätä, ja se saatetaan poistaa tulevassa julkaisussa.

pyb-moduuli sisältää STM32-kohtaisia korttiin liittyviä funktioita.

Sekalaisia funktioita

pyb.have_cdc() bool

Palauttaa True, jos USB on kytketty sarjalaitteena, muutoin False.

Muista

Tämä funktio on vanhentunut. Käytä sen sijaan pyb.USB_VCP().isconnected().

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

Ottaa 4-monikon (tai listan) ja lähettää sen USB-isännälle (PC:lle) HID-hiiren liiketapahtuman ilmoittamiseksi.

Muista

Tämä funktio on vanhentunut. Käytä sen sijaan pyb.USB_HID.send().

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

Tulostaa runsaasti tietoa kortista.

pyb.main(filename: str) None

Asettaa pääskriptin tiedostonimen, joka suoritetaan boot.py-tiedoston päätyttyä. Jos tätä funktiota ei kutsuta, suoritetaan oletustiedosto main.py.

Tämän funktion kutsuminen on järkevää vain boot.py-tiedoston sisältä.

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

Muista

Tämä funktio on vanhentunut. Käytä sen sijaan vfs.mount() / vfs.umount() ja vfs.AbstractBlockDev-pohjaista lohkolaitetta.

Liittää lohkolaitteen kohtaan mountpoint. device-laitteen on toteutettava vanha pyb-lohkolaiteprotokolla (myös vanhentunut – katso vfs.AbstractBlockDev nykyaikaista rajapintaa varten):

Metodi

Tarkoitus

readblocks(self, blocknum, buf)

Kopioi buf:n verran tavuja laitteelta alkaen lohkosta blocknum. buf:n pituus on 512:n monikerta.

writeblocks(self, blocknum, buf) (valinnainen)

Kirjoittaa buf:n laitteelle alkaen lohkosta blocknum. Jos jätetään pois, laite liitetään vain luku -tilassa.

count(self)

Palauttaa laitteen 512-tavuisten lohkojen määrän.

sync(self) (valinnainen)

Tyhjentää välimuistissa olevat kirjoitukset.

mountpoint on tiedostojärjestelmän juuressa oleva polku, johon laite liitetään; sen on alettava kauttaviivalla. readonly pakottaa vain luku -liitoksen. mkfs luo uuden tiedostojärjestelmän, jos sellaista ei ole.

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

Hakee tai asettaa UART-objektin, johon REPL toistetaan.

pyb.rng() int

Palauttaa 30-bittisen laitteistolla tuotetun satunnaisluvun.

pyb.sync() None

Synkronoi kaikki tiedostojärjestelmät.

pyb.unique_id() bytes

Palauttaa 12 tavun (96 bitin) merkkijonon, joka on MCU:n yksilöllinen tunniste.

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

Jos kutsutaan ilman argumentteja, palauttaa nykyisen USB-tilan merkkijonona.

Jos kutsutaan modestr-argumentilla, yrittää määrittää USB-tilan. Seuraavat modestr-arvot tunnistetaan:

modestr

Määrittää

None

Poistaa USB:n käytöstä.

'VCP'

Vain VCP (Virtual COM Port).

'MSC'

Vain MSC (USB mass storage class).

'VCP+MSC'

VCP ja MSC.

'VCP+HID'

VCP ja HID (human interface device).

'VCP+MSC+HID'

VCP, MSC ja HID yhdessä. Ei tuettu jokaisessa OpenMV Cam -kortissa.

Yhteensopivuuden vuoksi 'CDC' tulkitaan tarkoittamaan 'VCP' (ja vastaavasti 'CDC+MSC' ja 'CDC+HID').

port-parametrin tulee olla kokonaisluku (0, 1, …), ja se valitsee, mitä USB-porttia käytetään, jos kortti tukee useita portteja. Arvo -1 käyttää oletusporttia tai automaattisesti valittua porttia.

vid- ja pid-parametreilla voit määrittää VID:n (vendor id) ja PID:n (product id). pid-arvo -1 valitsee PID:n modestr-arvon perusteella.

Jos MSC-tila otetaan käyttöön, msc-parametrilla voidaan määrittää lista SCSI-LUN:eista, jotka näytetään massamuistirajapinnassa. Esimerkiksi msc=(pyb.Flash(), pyb.SDCard()).

Jos HID-tila otetaan käyttöön, voit myös määrittää HID-tiedot välittämällä hid-avainsana-argumentin. Se ottaa monikon (subclass, protocol, max packet length, polling interval, report descriptor). Oletuksena se asettaa USB-hiirelle sopivat arvot. On olemassa myös pyb.hid_keyboard-vakio, joka on USB-näppäimistölle sopiva monikko.

high_speed-parametri, kun se asetetaan arvoon True, ottaa käyttöön USB HS -tilan, jos laitteisto tukee sitä.

Vakiot

Molemmat alla olevat vakiot ovat valmiita 5-monikoita muodossa

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

sopivia välitettäviksi usb_mode()-funktion hid-argumenttina, jotta OpenMV Cam näkyy isännälle USB HID -laitteena. subclass = 1 tarkoittaa ”boot interface” -liitäntää, ja protocol valitsee boot-laitteen luokan (1 = näppäimistö, 2 = hiiri). Viides elementti on bytes-objekti, joka sisältää HID-raporttikuvaajan, jota käytetään isännän luetteloidessa laitteen.

pyb.hid_mouse: tuple

Valmis HID-kuvaaja 3-painikkeiselle boot-hiirelle suhteellisella X/Y-liikkeellä. Monikko on (1, 2, 4, 8, <mouse report descriptor>): boot-aliluokka, hiiriprotokolla, 4-tavuiset syöteraportit (painikemaski + X + Y + rulla), kysely 8 ms välein. Sisäänrakennettu raporttikuvaaja on se, jota käyttää pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Valmis HID-kuvaaja USB boot -näppäimistölle. Monikko on (1, 1, 8, 8, <keyboard report descriptor>): boot-aliluokka, näppäimistöprotokolla, 8-tavuiset syöteraportit (muuntonäppäintavu, yksi varattu tavu, kuusi samanaikaista näppäinkoodia), kysely 8 ms välein. Sisäänrakennettu raporttikuvaaja vastaa standardia 8-tavuista HID-boot-näppäimistöasettelua, joten USB_HID.send()-metodilla lähetetyn raportin tulee olla bytes muodossa (modifiers, 0, key1, key2, key3, key4, key5, key6).

Luokat