1

私はフォーマットのonrプロトコルを持っています

\003LLCCDDDD..DDXX
  • LL: アテンションバイトを含まない総パケット長。
  • CC: コマンドコード。
  • DD: データ バイト (HEX ASCII)。
  • XX: LLCCDDDD..DD のチェックサム (アテンション バイトおよびチェックサム自体は含まれません)。チェックサムは、コマンド パケット内の ASCII 文字の単純な 8 ビットの合計です。

以下に例を示します。

Command:    “\0030611C8”    (Length=6, command=0x11, checksum=0xC8)

チェックサムが0xC8 thnxになる方法を知りたいだけです:)

4

2 に答える 2

5

プロトコルの説明にあるように、チェックサムは、アテンション バイトでもチェックサムでもないバイトの合計です。合計で 7 バイトの転送があります。

'\003', '0', '6', '1', '1', 'C', '8'

そのうち\003アテンションバイトなのでチェックサムには入れません。同様に、最後の 2 文字チェックサムであり、含まれていません。それはあなたの例のためにたった4文字を残します:

'0', '6', '1', '1'

これらの文字を 16 進表現 ( ASCII テーブルを確認) に変換して追加しやすくすると、次の結果が得られます。

0x30, 0x36, 0x31, 0x31

次に、これらの値を合計すると、次のようになります。

0xC8

あなたが探している答えはどれですか!

于 2012-09-06T05:18:52.443 に答える
1

それは私の推測です:

チェックサム ターゲット コードは 0611 です

これをしましょう:

アスキー (0) = 48、アスキー (6) = 54、アスキー (1) = 49;

4 つの ASCII の合計を取得すると、200 = 0xC8 になります。

于 2012-09-06T05:27:35.500 に答える