同じシリアルポートから読み書きしています。問題は次のとおりです。
以下のコードのように、シリアルポートに次々と書き込むと:
import serial
import array
rec = serial.Serial()
trans = serial.Serial()
rec.port = "/dev/ttyUSB0"
rec.baudrate = 9600
rec.timeout = 0.5
rec.open()
trans.port = "/dev/ttyUSB0"
trans.baudrate = 9600
trans.timeout = 0.5
trans.open()
if trans.isOpen():
trans.write("\xFE\x1D\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE2")
trans.write("\xFE\x1D\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE3")
while rec.isOpen():
response = rec.readline()
etc. etc. etc
while ループが回っている限り、最初に送信された文字列だけを読み続けます。また、while ループの直後にデータを送信しようとしました: (if ステートメントは削除しませんでした)
while rec.isOpen():
trans.write("\x00\x00")
response = rec.readline()
シリアルポートから読み取ったのは、まだ
「\xFE\x1D\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\」です。 xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xE2"
最初のデータ以外は送信できません。なぜそれが起こっているのですか?私は何をすべきか?
注: また、while ループで 2 回読み取ろうとしました: response = rec.readline() response = rec.readline()
今回、読み取った配列を出力すると [] が出力され、何も読み取れないことを意味します。よろしく
編集: 2 つの異なる USB ポート ttyUSB0 と ttyUSB1 を使用して、問題がその状況に関連しているかどうかを確認しました。しかし、同じポートからの書き込みと読み取りに問題はないようです。