エンコードされたASCII文字をハミングすると予想されるRS232デバイスと通信しようとしています。C#ハム符号化シリアル出力
次の表は、メーカーによって提供される
Byte Encoded
0 15
1 02
2 49
3 5E
4 64
5 73
6 38
7 2F
8 D0
9 C7
A 8C
B 9B
C A1
D B6
E FD
F EA
Iは各バイト(アスキー文字)を符号化するために、このC#関数を書いたが、デバイスは、その画面上の専門用語をデコードします。
/// <summary>Takes ASCII char as byte and returns hamming encoded version.</summary>
/// <param name="input">Byte to encode.</param>
/// <returns>Hamming encoded byte.</returns>
private byte ByteHamming(byte input)
{
switch (input)
{
case 0x00:
return 0x15;
case 0x01:
return 0x02;
case 0x02:
return 0x49;
case 0x03:
return 0x5E;
case 0x04:
return 0x64;
case 0x05:
return 0x73;
case 0x06:
return 0x38;
case 0x07:
return 0x2F;
case 0x08:
return 0xD0;
case 0x09:
return 0xC7;
case 0x0A:
return 0x8C;
case 0x0B:
return 0x9B;
case 0x0C:
return 0xA1;
case 0x0D:
return 0xB6;
case 0x0E:
return 0xFD;
case 0x0F:
return 0xEA;
default:
return input;
}
}
私はハミングの仕組みを誤解していますか? 私はコンピュータ科学者ではありません:)
掘り出した後、私はこれが8分の4のハムであると信じています。だから、テーブルが何を言おうとしているのかを理解するためには、もう少し研究をする必要があります。 –
表はニブルごとのエンコード(4ビット)を参照している可能性があります。データを高低ニブルに分割し、それらを別々にエンコードします。 – Mitch