特定の 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 メソッドを複製するツールに挑戦しましたが、得られた結果とは一致しません (ため息)。