public static bool CheckCRCCode(byte[] CRCContext, byte[] CRCCode) { bool bRet = true; CrcITU crcUtil = new CrcITU(); byte[] bOut; string strOut; crcUtil.crcInputFrame(CRCContext, out bOut, out strOut); byte[] crcReverseCode = new byte[CRCCode.Length]; crcReverseCode = LocalByteToNetByteOrder(CRCCode); if (bOut.Length == crcReverseCode.Length) { for (int i = 0; i < bOut.Length; i++) { if (bOut[i] != crcReverseCode[i]) { bRet = false; break; } } } else { bRet = false; } return bRet; }
private byte[] CRCEncode(byte[] data) { byte[] crcData = new byte[data.Length - 6]; Array.Copy(data, 2, crcData, 0, crcData.Length); CrcITU crc = new CrcITU(); byte[] bOut; string strOut; crc.crcInputFrame(crcData, out bOut, out strOut); Array.Reverse(bOut); return bOut; }