public string LRC(string data, int iS, int count)
{
int sum = 0;
for (int i = iS; i < iS + count; i += 2)
{
//经测试该方法效率更高
sum += System.Convert.ToInt32("0x" + data[i] + data[i + 1], 16);
//sum += System.Int32.Parse(string.Empty + data[i] + data[i + 1], System.Globalization.NumberStyles.HexNumber);
}
sum = (~sum + 1) & 0xff;
return sum.ToString("X2");
}
//调用示例:
string d = ":10060001abcd71\r\n";
var s1 = LRC(d, 1, d.Length - 5);
MODBUS ASCII校验LRC算法
最新推荐文章于 2023-10-23 17:29:07 发布