函数来计算C#中的块检查字符(BCC)

时间:2009-09-10 18:38:40

标签: c#

块检查字符(BCC) 我需要一个函数来计算C#中的块检查字符(BCC)。 01 30 02 4D 21 20 20 03 这是字符串,如何为此字符串计算“块检查字符”。

BCC =从SOH到ETX的异或 SOH ID STX CODE ETX BCC 0x01 0x30 0x02 0x40 0x03

我需要添加BCC并将数据发送到COM。 如果可能请给我一个功能,以便我可以发送“01 30 02 4D 21 20 20 03”并获得BCC。

由于

1 个答案:

答案 0 :(得分:4)

据我所知,BCC是给定字节流中除第一个SOH或STX之外的所有字节的XOR,直到第一个ETX或EOT。 ETX包含在BCC中。在每个ETX之后拆分字节流并调用以下函数以获得BCC。

 public static byte GetBCC(this byte[] inputStream)
    {
        byte bcc = 0;

        if (inputStream != null && inputStream.Length > 0)
        {
            // Exclude SOH during BCC calculation
            for (int i = 1; i < inputStream.Length; i++)
            {
                bcc ^= inputStream[i];
            }
        }

        return bcc;
    }