0

ディスペンサーに送信されるメッセージの crc を計算したいと思います。メッセージフォーマットはSTX + DATA + ETX + CRCであり、「crcは、7fhとSTXを除くETXを含むすべての文字の合計の間でAND演算子を使用するか、40hとすべての文字の合計の間でOR演算子を使用して計算できます。 ETXを含み、STXを除く。」
この情報から CRC の形式を取得できませんでした。任意のアイデアやサンプルを歓迎します。
ご心配ありがとうございます

4

1 に答える 1

2

ETX 値を持つバイトは 03 になります。データ内のバイトの値の合計にそれを追加し、7F (16 進数) に対してビットごとの AND を実行する必要があることを意味していると思います。例えば:

STX + "BYE" + ETX 

結果の値(16進数)は次のようになります

(0x41 + 0x59 + 0x45 + 0x03) & 7f

0x62 (10 進数で 98) の答えが得られます。AND は最下位 7 ビットを除くすべてをマスクするので、オーバーフローを安全に無視できると思います。したがって、送信することになります

STX + "BYE" + ETX + 0x62
于 2015-01-28T01:09:01.917 に答える