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

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

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

谢谢

最佳答案

据我所知,BCC 是给定字节流中所有字节的异或,不包括第一个 SOH 或 STX,直到第一个 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;
    }

关于c# - 在 C# 中计算块校验字符(BCC)的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1406974/

10-10 22:03