Exemple #1
0
        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;
        }