Я искал реализацию CRC32, которую можно было бы использовать в среде .Net Micro. Я нашел эту реализацию, но микрофреймворк еще не реализовал HashAlgorithm. Что было бы лучшим способом заставить это работать?
Реализация CRC32 на .NET Micro
Ответы (3)
.net microframework имеет метод Utility.ComputeCRC, хотя я не уверен, какой алгоритм на самом деле использует. Он, конечно, не использует один из OP. Utility.ComputeCRC
Попробуйте реализацию CRC из http://vbcity.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.47.04.55/CRC_5F00_Lib.zip . Эта реализация обсуждается на странице http://vbcity.com/forums/t/111345.aspx а>.
Вы можете проверить правильность вычислений CRC по адресу http://www.lammertbies.nl/comm/info/crc-calculation.html.
Вышеупомянутая ссылка из обсуждения vbcity фактически реализует преобразование библиотеки С++, предоставленной http://www.lammertbies.nl/comm/info/crc-calculation.html.
Я обнаружил, что это правильно работает для моей реализации CRC 16.
Фрагмент короткого кода
ushort crcno = CRC.CRC16(stryourdata);
Byte[] crcbytes = BitConverter.GetBytes(crcno);
Вы можете использовать код, на который вы ссылаетесь. HashAlgorithm просто используется как интерфейс, и вы можете отказаться от него, не нанося вреда функциональности самой реализации CRC.
Измените «защищенное переопределение пустоты HashCore (byte [] буфер, int start, int length)» на «public void CalcCrc32 (byte [] буфер, int start, int length)».
public uint CrcValue должен возвращать crcValue без изменений.
Отбросьте все остальные методы и свойства.