class USB_VCP – USB sanal iletişim portu#

USB_VCP sınıfı, USB sanal iletişim portunu temsil eden stream benzeri bir nesnenin oluşturulmasını sağlar. Bağlı ana makineye USB üzerinden veri okumak ve yazmak için kullanılabilir.

Yapıcılar#

class pyb.USB_VCP(id: int = 0)#

Yeni bir USB_VCP nesnesi oluşturur. id argümanı, birden fazla port açığa çıkarıldığında hangi USB VCP portunun kullanılacağını seçer.

Yöntemler#

init(*, flow: int = -1) None#

USB VCP portunu yapılandırır. flow argümanı -1 değilse, akış kontrolünü ayarlar; USB_VCP.RTS ve USB_VCP.CTS değerlerinin bit düzeyinde OR işlemidir. RTS okuma davranışını kontrol eder; CTS yazma davranışını kontrol eder.

setinterrupt(chr: int) None#

Çalışan Python kodunu kesen karakteri ayarlar. Bu varsayılan olarak 3 (CTRL-C) olarak ayarlanmıştır ve USB VCP portu üzerinden bir CTRL-C karakteri alındığında bir KeyboardInterrupt istisnası fırlatılır.

Bu kesme özelliğini devre dışı bırakmak için -1 olarak ayarlayın. Bu, USB VCP portu üzerinden ham bayt göndermek istediğinizde kullanışlıdır.

isconnected() bool#

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

debug_mode_enabled() bool#

OpenMV IDE, OpenMV Cam’e bağlıysa True döndürür.

any() bool#

Bekleyen herhangi bir karakter varsa True, aksi takdirde False döndürür.

close() None#

Bu yöntem hiçbir şey yapmaz. USB_VCP nesnesinin bir dosya gibi davranabilmesi için vardır.

read(nbytes: int | None = None) bytes | None#

Seri cihazdan en fazla nbytes okur ve bunları bir bytes nesnesi olarak döndürür. nbytes belirtilmezse, yöntem seri cihazdan mevcut tüm baytları okur. USB_VCP stream, dolaylı olarak bloklamasız (non-blocking) modda çalışır, dolayısıyla bekleyen veri yoksa bu yöntem hemen None değeriyle döner.

readinto(buf: bytearray, maxlen: int | None = None) int | None#

Seri cihazdan baytları okur ve bunları arabellek benzeri bir nesne olması gereken buf içine depolar. En fazla len(buf) bayt okunur. maxlen verilirse en fazla min(maxlen, len(buf)) bayt okunur.

Okunan ve buf içine depolanan bayt sayısını veya bekleyen veri yoksa None döndürür.

readline() bytes | None#

Seri cihazdan bütün bir satır okur.

Sondaki yeni satır karakteri de dahil olmak üzere veriyi içeren bir bytes nesnesi veya bekleyen veri yoksa None döndürür.

readlines() List[bytes]#

Seri cihazdan mümkün olduğunca çok veri okur ve bunu satırlara böler.

Her biri satırlardan biri olan bytes nesnelerinin bir listesini döndürür. Her satır yeni satır karakterini içerir.

write(buf: bytes | bytearray | str) int#

buf içindeki baytları seri cihaza yazar.

Yazılan bayt sayısını döndürür.

recv(data: int | bytearray, *, timeout: int = 5000) bytes | int#

Veri yolundan veri alır:

  • data bir tamsayı olabilir (alınacak bayt sayısı) veya alınan baytlarla doldurulacak değiştirilebilir bir arabellek olabilir.

  • timeout alma işlemi için beklenecek milisaniye cinsinden zaman aşımıdır.

Dönüş değeri: data bir tamsayıysa alınan baytları içeren yeni bir arabellek, aksi takdirde data içine okunan bayt sayısı döndürülür.

send(data: int | bytes | bytearray, *, timeout: int = 5000) int#

USB VCP üzerinden veri gönderir:

  • data gönderilecek veridir (gönderilecek bir tamsayı veya bir arabellek nesnesi).

  • timeout gönderme işlemi için beklenecek milisaniye cinsinden zaman aşımıdır.

Dönüş değeri: gönderilen bayt sayısı.

irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None#

trigger tarafından belirtilen bir olay her gerçekleştiğinde çağrılacak handler fonksiyonunu kaydeder. handler fonksiyonu tam olarak bir argüman almalıdır; bu, USB VCP nesnesi olacaktır. Geri çağırmayı (callback) devre dışı bırakmak için None geçirin.

trigger için geçerli değerler şunlardır:

  • USB_VCP.IRQ_RX: USB VCP nesnesinden okunmak üzere yeni veri mevcuttur.

Sabitler#

RTS: int#

init() için akış kontrolü bayrağı. RTS etkinleştirildiğinde, okuma arabelleği dolduğunda cihaz ana makinenin iletimini kısıtlar.

CTS: int#

init() için akış kontrolü bayrağı. CTS etkinleştirildiğinde, cihaz yazma işlemleri sırasında ana makinenin akış kontrolüne uyar (ana makine almaya hazır olana kadar bloklar). RTS ile OR’lanabilir.

IRQ_RX: int#

irq() tetikleyicisi: USB VCP nesnesinden okunmak üzere yeni veri mevcut olduğunda tetiklenir.