Пример #1
0
        /// <summary>
        /// Расчет контрольной суммы
        /// </summary>
        /// <param name="arr">Блок данных</param>
        /// <param name="index">Индекс начала расчета</param>
        /// <param name="size">Размер блока для расчетов</param>
        /// <param name="fill">true - дополнять блок данных, расчитанной суммой</param>
        /// <returns>Результирующая сумма</returns>
        public static Boolean Check(Byte[] arr, int index, int size, Boolean fill)
        {
            UInt16 crc16 = Get(arr, index, size);

            if (fill)
            {
                Mem.PutByte16(arr, index + size, crc16, Endianess.Little);
            }
            else
            {
                UInt16 temp = arr.GetByte16Ex(index + size, Endianess.Little);

                return (temp == crc16);
            }

            return false;
        }