Novatel WAAS G-III User Manual page 90

Reference receiver
Table of Contents

Advertisement

Chapter 5
5.2.2.4
32-Bit CRC
All logs contain a 32-bit Cyclic Redundancy Check (CRC) for data verification. This allows you to ensure that
the data received (or transmitted) is valid with a high level of certainty. This CRC can be generated using the
following C algorithm:
#define CRC32_POLYNOMIAL
/* --------------------------------------------------------------------------
Calculate a CRC value to be used by CRC calculation functions.
-------------------------------------------------------------------------- */
unsigned long CRC32Value(int i)
{
int j;
unsigned long ulCRC;
ulCRC = i;
for ( j = 8 ; j > 0; j-- )
{
if ( ulCRC & 1 )
ulCRC = ( ulCRC >> 1 ) ^ CRC32_POLYNOMIAL;
else
ulCRC >>= 1;
}
return ulCRC;
}
/* --------------------------------------------------------------------------
Calculates the CRC-32 of a block of data all at once
-------------------------------------------------------------------------- */
unsigned long CalculateBlockCRC32(
unsigned long ulCount,
unsigned char *ucBuffer ) /* Data block */
{
unsigned long ulTemp1;
unsigned long ulTemp2;
unsigned long ulCRC = 0;
while ( ulCount-- != 0 )
{
ulTemp1 = ( ulCRC >> 8 ) & 0x00FFFFFFL;
ulTemp2 = CRC32Value( ((int) ulCRC ^ *ucBuffer++ ) & 0xff );
ulCRC = ulTemp1 ^ ulTemp2;
}
return( ulCRC );
}
90
0xEDB88320L
/* Number of bytes in the data block */
WAAS G-III Reference Receiver User Manual Rev 1
Data Logs

Advertisement

Table of Contents
loading

Table of Contents