class USB_VCP -- USB 仮想通信ポート¶
USB_VCP クラスは、USB 仮想通信ポートを表す stream ライクなオブジェクトの作成を可能にします。接続されたホストとの間で USB 経由でデータを読み書きするために使用できます。
コンストラクタ¶
- class pyb.USB_VCP(id: int = 0)¶
新しい
USB_VCPオブジェクトを作成します。id 引数は、複数の USB VCP ポートが公開されている場合に使用するポートを選択します。メソッド¶
- init(*, flow: int = -1) None¶
USB VCP ポートを構成します。flow 引数が
-1でない場合、フロー制御を設定します。これはUSB_VCP.RTSとUSB_VCP.CTSのビット単位 OR です。RTSは読み取り動作を制御し、CTSは書き込み動作を制御します。
- setinterrupt(chr: int) None¶
実行中の Python コードを中断する文字を設定します。これはデフォルトで 3(CTRL-C)に設定されており、USB VCP ポート経由で CTRL-C 文字を受信すると KeyboardInterrupt 例外が発生します。
この割り込み機能を無効にするには -1 に設定します。これは USB VCP ポート経由で生のバイトを送信したい場合に便利です。
- read(nbytes: int | None = None) bytes | None¶
シリアルデバイスから最大
nbytesを読み取り、bytes オブジェクトとして返します。nbytesを指定しない場合、このメソッドはシリアルデバイスから利用可能なすべてのバイトを読み取ります。USB_VCP の stream は暗黙的に非ブロッキングモードで動作するため、保留中のデータが利用できない場合、このメソッドは即座にNone値で返します。
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
シリアルデバイスからバイトを読み取り、バッファライクなオブジェクトである
bufに格納します。最大len(buf)バイトが読み取られます。maxlenを指定した場合は最大min(maxlen, len(buf))バイトが読み取られます。読み取って
bufに格納したバイト数、または保留中のデータが利用できない場合はNoneを返します。
- readline() bytes | None¶
シリアルデバイスから 1 行全体を読み取ります。
末尾の改行文字を含むデータを格納した bytes オブジェクト、または保留中のデータが利用できない場合は
Noneを返します。
- readlines() List[bytes]¶
シリアルデバイスから可能な限り多くのデータを読み取り、行に分割します。
bytes オブジェクトのリストを返します。各オブジェクトは 1 行です。各行には改行文字が含まれます。
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
バス上でデータを受信します:
dataは整数(受信するバイト数)または可変バッファ(受信したバイトで満たされます)のいずれかです。timeoutは受信を待つタイムアウト(ミリ秒)です。
戻り値:
dataが整数の場合は受信したバイトの新しいバッファ、そうでない場合はdataに読み込まれたバイト数が返されます。
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
USB VCP 経由でデータを送信します:
dataは送信するデータ(送信する整数、またはバッファオブジェクト)です。timeoutは送信を待つタイムアウト(ミリ秒)です。
戻り値: 送信したバイト数。
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
trigger で指定したイベントが発生するたびに呼び出される handler を登録します。handler 関数は引数を正確に 1 つ取る必要があり、それは USB VCP オブジェクトになります。コールバックを無効にするには
Noneを渡します。trigger の有効な値は次のとおりです:
USB_VCP.IRQ_RX: USB VCP オブジェクトから読み取り可能な新しいデータがあります。
定数¶