
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- pythonのシリアル通信にて受信したい
前提
センサへの測定結果要求コマンド送信後の返信取得が目的です。ラインモニター上では送信にミスは無く
返信のメッセージもセンサ側から発信されているのは確認しております。
その値を読み込むにあたり以下のコードを書きました。
以下のser.read()の部分に書いた通りなのですが、返信のbyte数が送信するリクエストによって変わります。
ラインモニタの返信部数を参考に要素数を入れれば取得可能ですがナンセンスな方法です。
送られるbyte数を調べて、その数だけ ser.read()を繰り返してデータを取り出したいのですが
どのようにコードを入力すれば良いのか分かりませんでした。
python 3.9.13
ser = serial.Serial('COM9', 38400, 8)
cmdData = bytearray([1, 2, 128, 6, 162, 0, 162])
ser.write(cmdData)
line = ser.read() <-----こうやると1byte分しか受け取れない
line = ser.read(14) <------いつも14byteとは限らない
textbox4.delete(0, tk.END)
textbox4.insert(tk.END, line)
Mater controller Slave controller Read Request Packet -------------------------------------------------> ACK(0x06) <------------------------------------------------ Response Data Packet <------------------------------------------------ ACK(0x06) ----------------------------------------------->
ここにより詳細な情報を記載してください。


回答5件
あなたの回答
tips
プレビュー