10

シリアルポート経由で電話と通信したい。電話にコマンドを書いた後、ser.read(ser.inWaiting())その戻り値を取得していましたが、常に1020 bytes文字の合計を取得していました。実際には、目的の戻り値は50KB.

を設定しようとしましser.read(50000)たが、インタープリターがハングアップします。

一度にすべてのリターンを取得するには、入力バッファを拡張するにはどうすればよいですか?

4

4 に答える 4

1

ser.inWaiting() が返すバッファにあるのは 1020 バイトだけなので、1020 バイトを読み取っていると思います。ボーレートによっては、50 KB の転送に時間がかかる場合や、電話機が別のデータを期待している場合があります。握手?

ser.inWaiting の値を調べてから、受け取った内容からヒント探します。

于 2012-10-16T17:23:16.307 に答える
0

pySerial は、シリアル受信にネイティブ OS ドライバーを使用します。Windows の場合、入力ドライバのサイズはデバイス ドライバに基づいています。

可能であれば、デバイス マネージャーの設定でサイズを大きくできるかもしれませんが、最終的には十分な速さでデータを読み取る必要があります。

于 2017-08-04T18:30:55.770 に答える