Cyclic Redundancy Check

This library is intended to calculate the crc for a data string. This library was developed by Lammert Bies and readapt to LAR purposes. This lib contains source code for functions to calculate five commonly used CRC values: CRC-16, CRC-32, CRC-DNP, CRC-SICK, CRC-Kermit and CRC-CCITT. To calculate a CRC, the following three steps must be followed: 1. Initialize the CRC value. For CRC-16, CRC-SICK CRC-Kermit and CRC-DNP the initial value of the CRC is 0. For CRC-CCITT and CRC-MODBUS, the value 0xffff is used. CRC-32 starts with an initial value of 0xffffffffL. 2. For each byte of the data starting with the first byte, call the function update_crc_16(), update_crc_32(), update_crc_dnp(), update_crc_sick(), update_crc_kermit() or update_crc_ccitt() to recalculate the value of the CRC. 3. Only for CRC-32: When all bytes have been processed, take the one's complement of the obtained CRC value. 4. Only for CRC-DNP: After all input processing, the one's complement of the CRC is calcluated and the two bytes of the CRC are swapped. 5. Only for CRC-Kermit and CRC-SICK: After all input processing, the one's complement of the CRC is calcluated and the two bytes of the CRC are swapped. More...

Files

file  crc.h
 

header for this library. Defines public funtions prototypes this library makes available to other modules.


Defines

#define CRC_VERSION   "1.16"
#define FALSE   0
#define TRUE   1

Functions

unsigned short update_crc_16 (unsigned short crc, char c)
unsigned long update_crc_32 (unsigned long crc, char c)
unsigned short update_crc_ccitt (unsigned short crc, unsigned char c)
unsigned short update_crc_dnp (unsigned short crc, char c)
unsigned short update_crc_kermit (unsigned short crc, char c)
unsigned short update_crc_sick (unsigned short crc, char c, char prev_byte)

Detailed Description

This library is intended to calculate the crc for a data string. This library was developed by Lammert Bies and readapt to LAR purposes. This lib contains source code for functions to calculate five commonly used CRC values: CRC-16, CRC-32, CRC-DNP, CRC-SICK, CRC-Kermit and CRC-CCITT. To calculate a CRC, the following three steps must be followed: 1. Initialize the CRC value. For CRC-16, CRC-SICK CRC-Kermit and CRC-DNP the initial value of the CRC is 0. For CRC-CCITT and CRC-MODBUS, the value 0xffff is used. CRC-32 starts with an initial value of 0xffffffffL. 2. For each byte of the data starting with the first byte, call the function update_crc_16(), update_crc_32(), update_crc_dnp(), update_crc_sick(), update_crc_kermit() or update_crc_ccitt() to recalculate the value of the CRC. 3. Only for CRC-32: When all bytes have been processed, take the one's complement of the obtained CRC value. 4. Only for CRC-DNP: After all input processing, the one's complement of the CRC is calcluated and the two bytes of the CRC are swapped. 5. Only for CRC-Kermit and CRC-SICK: After all input processing, the one's complement of the CRC is calcluated and the two bytes of the CRC are swapped.

Author:
dgameiro
Version:
1.0
Date:
27 April 2010

Define Documentation

#define CRC_VERSION   "1.16"

Definition at line 72 of file crc.h.

#define FALSE   0

Definition at line 73 of file crc.h.

#define TRUE   1

Definition at line 74 of file crc.h.


Function Documentation

unsigned short update_crc_16 ( unsigned short  crc,
char  c 
)

Definition at line 219 of file crc.cpp.

unsigned long update_crc_32 ( unsigned long  crc,
char  c 
)

Definition at line 300 of file crc.cpp.

unsigned short update_crc_ccitt ( unsigned short  crc,
unsigned char  c 
)

Definition at line 162 of file crc.cpp.

unsigned short update_crc_dnp ( unsigned short  crc,
char  c 
)

Definition at line 273 of file crc.cpp.

unsigned short update_crc_kermit ( unsigned short  crc,
char  c 
)

Definition at line 246 of file crc.cpp.

unsigned short update_crc_sick ( unsigned short  crc,
char  c,
char  prev_byte 
)

Definition at line 190 of file crc.cpp.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


atlasmv_base
Author(s): David Gameiro, Jorge Almeida
autogenerated on Wed Jul 23 04:34:43 2014