1

私は現在 modbus tcp に苦労しており、モジュールの応答を解釈する際に問題が発生しました。応答には、3 つの値の配列のビットにエンコードされた 2 つの値が含まれますUInt16。r[0] の最初の 8 ビットは無視する必要があります。

UInt16 配列が呼び出されr、取得したい「最終」値がval1val2であるとしましょう。次に、次の操作を行う必要があります。

6

上記の例では、必要な出力値は、入力値=768、=1536、および=0 に対してval1(=3) およびval2(=6) であり、すべての値は UInt16 です。r[0]r[1]r[2]

すでに (論理的に) r[0]8 ビット右シフトしようとしましたが、上位ビットは の最初の 8 ビットに格納されているため、失われますr[1]。最初にすべてのr値を連結し、その後ビットシフトする必要がありますか? どうやってやるの?前もって感謝します!

4

1 に答える 1