26 lines
900 B
C
26 lines
900 B
C
#ifndef FCS_H
|
|
#define FCS_H
|
|
|
|
#ifdef CRC32
|
|
#define FCS_INIT_VALUE 0xFFFFFFFF /* FCS initialization value. */
|
|
#define FCS_GOOD_VALUE 0xDEBB20E3 /* FCS value for valid frames. */
|
|
#define FCS_INVERT_MASK 0xFFFFFFFF /* Invert the FCS value accordingly to the specification */
|
|
#define FCS_SIZE unsigned int
|
|
#else
|
|
#define FCS_INIT_VALUE 0xFFFF /* FCS initialization value. */
|
|
#define FCS_GOOD_VALUE 0xF0B8 /* FCS value for valid frames. */
|
|
#define FCS_INVERT_MASK 0xFFFF /* Invert the FCS value accordingly to the specification */
|
|
#define FCS_SIZE unsigned short
|
|
#endif
|
|
|
|
/**
|
|
* Вычисляет новый Frame Check Sequence на основе текущего значения и ценности данных.
|
|
*
|
|
* @param fcs Current FCS value
|
|
* @param value The value to be added
|
|
* @returns Calculated FCS value
|
|
*/
|
|
FCS_SIZE calc_fcs(FCS_SIZE fcs, unsigned char value);
|
|
|
|
#endif //FCS_H
|