私は現在 modbus tcp に苦労しており、モジュールの応答を解釈する際に問題が発生しました。応答には、3 つの値の配列のビットにエンコードされた 2 つの値が含まれますUInt16
。r[0] の最初の 8 ビットは無視する必要があります。
UInt16 配列が呼び出されr
、取得したい「最終」値がval1
とval2
であるとしましょう。次に、次の操作を行う必要があります。
上記の例では、必要な出力値は、入力値=768、=1536、および=0 に対してval1
(=3) およびval2
(=6) であり、すべての値は UInt16 です。r[0]
r[1]
r[2]
すでに (論理的に) r[0]
8 ビット右シフトしようとしましたが、上位ビットは の最初の 8 ビットに格納されているため、失われますr[1]
。最初にすべてのr値を連結し、その後ビットシフトする必要がありますか? どうやってやるの?前もって感謝します!