0

特定の BCC (ブロック チェック キャラクタ) の結果 (=0) を持つバイト配列を作成しようとしています。

配列には、次のプリアンブルがあります。

32 02 31 1F 31 1E 32 1F T  E  S  T  :  
32 02 31 1F 31 1E 32 1F 54 45 53 54 3A 20

中間に可変テキスト メッセージ (msg) がある場合:

T  e  s  t  2
54 65 73 74 32

次のポストアンブルが続きます。

1E 37 1F 33 03

この文字列の BCC は次のとおりです: 0x11

この値を返すアルゴリズムは次のとおりです (C++):

unsigned char bcc=0;
int index = block.Find(0x03); //ETX
for (int i=0; i<= index;i++)
    bcc ^= block[i];
return bcc;

BCCが0になる中間メッセージセクションを見つける方法を考え出そうとしています.

私は現在試行錯誤を行っていますが、これを行うためのより良い方法があると確信しています. 上記 (C#) で使用されている BCC メソッドを複製するツールに挑戦しましたが、得られた結果とは一致しません (ため息)。

4

1 に答える 1