シリアル経由で PLC と通信していますが、PLC の仕様には 16 進応答から値を取得するための式が記述されていません。応答を処理する Python スクリプトを作成しています。
最終結果は符号付き整数であり、C++ では「short」であり、仕様では SEND メッセージで LSB/MSB が言及されていると思いますが、これが応答に当てはまるかどうかはわかりません。
ここに私が取り組んでいる値のいくつかがあります:
18 FD = -744
20 FF = -224
07 00 = 7 (parsed OK)
0A 00 = 10 (parsed OK)
64 00 = 100 (parsed OK)
36 01 = 310 (parsed OK)
B0 04 = 1200 (parsed OK)
A4 06 = 1700 (parsed OK)
現時点では、私の計算は まで正しく解析されFF 00
ますが、正しい式がわからないということは、255 を超える値が謎のままであることを意味します。
編集:質問を書いた後、明らかになりました。16 進バイトを反転する必要があります。現在、負の値は不明です。
必要に応じて、仕様をここで見つけることができます。