pyb — karta ilişkin fonksiyonlar

Uyarı

pyb modülü kullanımdan kaldırılmıştır. Yeni kodlar için bağlantı noktasından bağımsız machine modülünü kullanın – bu modül, MCU ailesinden bağımsız olarak her OpenMV Cam üzerinde aynı işlevselliği sağlar; oysa pyb yalnızca STM32 tabanlı kartlarda bulunur. pyb, eski betiklerle geriye dönük uyumluluk için korunmaktadır; yeni özellikler eklenmeyecektir ve gelecek bir sürümde kaldırılabilir.

pyb modülü, karta ilişkin STM32’ye özgü fonksiyonlar içerir.

Çeşitli fonksiyonlar

pyb.have_cdc() bool

USB bir seri aygıt olarak bağlıysa True, aksi takdirde False döndürür.

Not

Bu fonksiyon kullanımdan kaldırılmıştır. Bunun yerine pyb.USB_VCP().isconnected() kullanın.

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

Bir 4’lü demet (veya liste) alır ve bir HID fare-hareketi olayı bildirmek için onu USB ana bilgisayarına (PC’ye) gönderir.

Not

Bu fonksiyon kullanımdan kaldırılmıştır. Bunun yerine pyb.USB_HID.send() kullanın.

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

Kart hakkında çok sayıda bilgi yazdırır.

pyb.main(filename: str) None

boot.py tamamlandıktan sonra çalıştırılacak ana betiğin dosya adını ayarlar. Bu fonksiyon çağrılmazsa varsayılan dosya main.py çalıştırılır.

Bu fonksiyonu çağırmak yalnızca boot.py içinden anlamlıdır.

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

Not

Bu fonksiyon kullanımdan kaldırılmıştır. Bunun yerine vfs.mount() / vfs.umount() ve vfs.AbstractBlockDev türevi bir blok aygıtı kullanın.

Bir blok aygıtını mountpoint altına bağlar. device, eski pyb blok-aygıtı protokolünü uygulamalıdır (bu da kullanımdan kaldırılmıştır – modern arayüz için bkz. vfs.AbstractBlockDev):

Yöntem

Amaç

readblocks(self, blocknum, buf)

blocknum bloğundan başlayarak aygıttan buf boyutu kadar bayt kopyalar. buf uzunluğu 512’nin katıdır.

writeblocks(self, blocknum, buf) (isteğe bağlı)

blocknum bloğundan başlayarak aygıta buf yazar. Belirtilmezse, aygıt salt okunur olarak bağlanır.

count(self)

Aygıttaki 512 baytlık blokların sayısını döndürür.

sync(self) (isteğe bağlı)

Önbelleğe alınmış tüm yazma işlemlerini boşaltır.

mountpoint, aygıtın bağlanacağı dosya sisteminin kökündeki yoldur; bir bölü (forward slash) ile başlamalıdır. readonly salt okunur bir bağlamayı zorlar. mkfs, mevcut değilse yeni bir dosya sistemi oluşturur.

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

REPL’in yinelendiği UART nesnesini alır veya ayarlar.

pyb.rng() int

30-bit donanım tarafından üretilen bir rastgele sayı döndürür.

pyb.sync() None

Tüm dosya sistemlerini eşitler.

pyb.unique_id() bytes

MCU’nun benzersiz kimliği olan 12 baytlık (96 bit) bir dize döndürür.

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

Argümansız çağrılırsa, mevcut USB modunu bir dize olarak döndürür.

modestr sağlanarak çağrılırsa, USB modunu yapılandırmaya çalışır. modestr için aşağıdaki değerler anlaşılır:

modestr

Yapılandırır

None

USB’yi devre dışı bırakır.

'VCP'

Yalnızca VCP (Sanal COM Bağlantı Noktası).

'MSC'

Yalnızca MSC (USB yığın depolama sınıfı).

'VCP+MSC'

VCP ve MSC.

'VCP+HID'

VCP ve HID (insan arayüz aygıtı).

'VCP+MSC+HID'

VCP, MSC ve HID birlikte. Her OpenMV Cam’de desteklenmez.

Geriye dönük uyumluluk için, 'CDC' 'VCP' anlamına gelecek şekilde anlaşılır ('CDC+MSC' ve 'CDC+HID' için de benzer şekilde).

port parametresi bir tamsayı (0, 1, …) olmalıdır ve kart birden fazla bağlantı noktasını destekliyorsa hangi USB bağlantı noktasının kullanılacağını seçer. -1 değeri varsayılan veya otomatik olarak seçilen bağlantı noktasını kullanır.

vid ve pid parametreleri VID (üretici kimliği) ve PID (ürün kimliği) belirtmenize olanak tanır. -1 pid değeri, modestr değerine göre bir PID seçer.

MSC modu etkinleştirilirken, msc parametresi yığın depolama arayüzünde açığa çıkarılacak SCSI LUN’ların bir listesini belirtmek için kullanılabilir. Örneğin msc=(pyb.Flash(), pyb.SDCard()).

HID modu etkinleştirilirken, hid anahtar kelime parametresini geçirerek HID ayrıntılarını da belirtebilirsiniz. Bir (alt sınıf, protokol, maksimum paket uzunluğu, yoklama aralığı, rapor tanımlayıcısı) demeti alır. Varsayılan olarak bir USB fare için uygun değerleri ayarlar. Ayrıca, bir USB klavye için uygun bir demet olan pyb.hid_keyboard sabiti de vardır.

high_speed parametresi True olarak ayarlandığında, donanım tarafından destekleniyorsa USB HS modunu etkinleştirir.

Sabitler

Aşağıdaki sabitlerin her ikisi de şu biçimde hazır 5’li demetlerdir:

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

OpenMV Cam’in ana bilgisayara bir USB HID aygıtı olarak görünmesini sağlamak için usb_mode() fonksiyonunun hid argümanı olarak geçirilmeye uygundur. subclass = 1 “boot interface” anlamına gelir ve protocol boot aygıt sınıfını seçer (1 = klavye, 2 = fare). Beşinci öğe, ana bilgisayar aygıtı numaralandırdığında kullanılan HID rapor tanımlayıcısını tutan bir bytes nesnesidir.

pyb.hid_mouse: tuple

Göreceli X/Y hareketine sahip 3 düğmeli bir boot faresi için önceden oluşturulmuş HID tanımlayıcısı. Demet (1, 2, 4, 8, <mouse report descriptor>) biçimindedir: boot alt sınıfı, fare protokolü, 4 baytlık giriş raporları (düğme maskesi + X + Y + tekerlek), her 8 ms’de bir yoklanır. Yerleşik rapor tanımlayıcısı, pyb.USB_HID().send((buttons, dx, dy, wheel)) tarafından kullanılan tanımlayıcıdır.

pyb.hid_keyboard: tuple

Bir USB boot klavyesi için önceden oluşturulmuş HID tanımlayıcısı. Demet (1, 1, 8, 8, <keyboard report descriptor>) biçimindedir: boot alt sınıfı, klavye protokolü, 8 baytlık giriş raporları (değiştirici bayt, bir ayrılmış bayt, altı eşzamanlı tuş kodu), her 8 ms’de bir yoklanır. Yerleşik rapor tanımlayıcısı standart 8 baytlık HID boot-klavye düzeniyle eşleşir, bu nedenle USB_HID.send() aracılığıyla gönderilen rapor (modifiers, 0, key1, key2, key3, key4, key5, key6) biçiminde bir bytes olmalıdır.

Sınıflar