Example #1
0
        public static Byte[] UpdateCRCValue(Byte[] dados, Byte[] dadosTemp, int CRCPosition1, int CRCPosition2)
        {
            ushort crc = CRC16CCITT.Calcular(dadosTemp);

            Byte[] dadosCRC = BitConverter.GetBytes(crc);

            dados[CRCPosition1] = dadosCRC[0];
            dados[CRCPosition2] = dadosCRC[1];

            return(dados);
        }
Example #2
0
        // TODO: Verificar problemas nesse CRC
        public static ushort CalcularCRC(byte[] dados, int crcPosition)
        {
            Byte[] dadosCRC = new byte[dados.Length - sizeof(UInt16)];

            Array.Copy(dados, 0, dadosCRC, 0, crcPosition);

            if (crcPosition + sizeof(UInt16) < dados.Length)
            {
                Array.Copy(dados, crcPosition + sizeof(UInt16), dadosCRC, crcPosition, dados.Length - (crcPosition + sizeof(UInt16)));
            }

            return(CRC16CCITT.Calcular(dadosCRC));
        }