3 c#
块校验字符(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;
}
Run Code Online (Sandbox Code Playgroud)