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.