您好我在网上搜索并认为唯一的解决办法就是要求熟悉LUA和C#的人...
我有一个CRC 8位代码片段,基本上我需要在Lua ... 我是Lua的新手,但已设法编写一些代码来解决问题,但是有一个新版本需要对每条消息进行8位CRC校验......
我不得不谷歌CRC检查是什么以及它们是如何完成的,我认为我已经掌握了这个概念......我完全不知道如何在Lua中编写脚本......我找到了一段c#代码说这是一个简单的一般8位crc计算,我想如果这是在Lua,我将能够适当地适应它,但似乎没有任何直接转换设施在网络上...
我注意到你们之前已经帮助过类似的问题了,希望你们现在可以帮助我......我必须签署一份保密协议来阅读它,因此不会发布代码并对细节保持谨慎......但如果我发布这个非特定的一般8位CRC计算例程也许有人可以为我转换它或在Lua中写一个类似的脚本?为了我的目的,我只需要"解码"一个十六进制的字节字符串(非常确定我刚刚完成了!)并告诉接收器CRC校验的结果应该是什么......
所以我有一个十六进制的字符串,如: 3F 12 34 22 22 09(完全组成且无意义)例如
我需要添加一个8 bi CRC校验结果(希望这是有意义的!) 以下是我发现的一般8位检查C#代码:
private byte calcCRC8(ref byte[] data, int bytes)
{
byte crc = 0xff;
byte poly = 0x85;
int i, j;
for (i = 0; i < bytes; i++)
{
crc ^= data[i];
for (j = 0; j < 8; j++)
{
if ((crc & 0x80) == 0x80)
{
crc = (byte)((crc << 1) ^ poly);
}
else
{
crc = (byte)(crc << 1);
}
}
}
return crc;
}
非常感谢任何帮助,
萨姆
答案 0 :(得分:1)
无论何时需要8位CRC,都必须要求特定的 8位CRC。在担心语言之前的第一步是确保您知道如何计算正确的CRC。文档是否提供CRC参数,例如多项式,位排序,初始值,最终xor?文档是否提供了示例消息和相应的CRC?