块校验字符(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/