計測器ドライバを開発していますが、フレームのチェックサムを計算する方法を知りたいです。
説明:
文字[0-9]および[A-F]で表されます。
[STX]の後から[ETB]または[ETX]までの文字([ETB]または[ETX]を含む)は、バイナリで追加されます。
16進数コードの最下位8ビットを表す2桁の数値は、ASCII文字[0-9]および[A-F]に変換されます。
最上位の桁はCHK1に、最下位の桁はCHK2に格納されます。
3番目と4番目のポイントを超えていません。
誰でもc#のサンプルコードを提供できます。
私を助けてください。
最後に私は答えを得ました、これはチェックサムを計算するためのコードです:
private string CalculateChecksum(string dataToCalculate)
{
byte[] byteToCalculate = Encoding.ASCII.GetBytes(dataToCalculate);
int checksum = 0;
foreach (byte chData in byteToCalculate)
{
checksum += chData;
}
checksum &= 0xff;
return checksum.ToString("X2");
}
これは1行で行うことができます。
return Encoding.ASCII.GetBytes(dataToCalculate).Aggregate((r, n) => r += n).ToString("X2");