シリアルポート経由で電話と通信したい。電話にコマンドを書いた後、ser.read(ser.inWaiting())
その戻り値を取得していましたが、常に1020 bytes
文字の合計を取得していました。実際には、目的の戻り値は50KB
.
を設定しようとしましser.read(50000)
たが、インタープリターがハングアップします。
一度にすべてのリターンを取得するには、入力バッファを拡張するにはどうすればよいですか?
ser.inWaiting() が返すバッファにあるのは 1020 バイトだけなので、1020 バイトを読み取っていると思います。ボーレートによっては、50 KB の転送に時間がかかる場合や、電話機が別のデータを期待している場合があります。握手?
ser.inWaiting の値を調べてから、受け取った内容からヒントを探します。
pySerial は、シリアル受信にネイティブ OS ドライバーを使用します。Windows の場合、入力ドライバのサイズはデバイス ドライバに基づいています。
可能であれば、デバイス マネージャーの設定でサイズを大きくできるかもしれませんが、最終的には十分な速さでデータを読み取る必要があります。