Bluetooth Low Energy for Smart Plug

Dependencies:   BLE_API mbed nRF51822

Fork of SmartPlugBLE by Pavit Noinongyao

Committer:
Slepnir
Date:
Tue Jul 14 10:10:19 2015 +0000
Revision:
4:721ae30c92f8
Parent:
3:aaa92c61931a
For debugging

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Slepnir 3:aaa92c61931a 1 /**********************************************************************
Slepnir 3:aaa92c61931a 2 *
Slepnir 3:aaa92c61931a 3 * Filename: crc.h
Slepnir 3:aaa92c61931a 4 *
Slepnir 3:aaa92c61931a 5 * Description: A header file describing the various CRC standards.
Slepnir 3:aaa92c61931a 6 *
Slepnir 3:aaa92c61931a 7 * Notes:
Slepnir 3:aaa92c61931a 8 *
Slepnir 3:aaa92c61931a 9 *
Slepnir 3:aaa92c61931a 10 * Copyright (c) 2000 by Michael Barr. This software is placed into
Slepnir 3:aaa92c61931a 11 * the public domain and may be used for any purpose. However, this
Slepnir 3:aaa92c61931a 12 * notice must not be changed or removed and no warranty is either
Slepnir 3:aaa92c61931a 13 * expressed or implied by its publication or distribution.
Slepnir 3:aaa92c61931a 14 **********************************************************************/
Slepnir 3:aaa92c61931a 15
Slepnir 3:aaa92c61931a 16 #ifndef _crc2_h
Slepnir 3:aaa92c61931a 17 #define _crc2_h
Slepnir 3:aaa92c61931a 18
Slepnir 3:aaa92c61931a 19
Slepnir 3:aaa92c61931a 20 #define FALSE 0
Slepnir 3:aaa92c61931a 21 #define TRUE !FALSE
Slepnir 3:aaa92c61931a 22
Slepnir 3:aaa92c61931a 23 /*
Slepnir 3:aaa92c61931a 24 * Select the CRC standard from the list that follows.
Slepnir 3:aaa92c61931a 25 */
Slepnir 3:aaa92c61931a 26 #define CRC_CCITT
Slepnir 3:aaa92c61931a 27
Slepnir 3:aaa92c61931a 28
Slepnir 3:aaa92c61931a 29 #if defined(CRC_CCITT)
Slepnir 3:aaa92c61931a 30
Slepnir 3:aaa92c61931a 31 typedef unsigned short crc;
Slepnir 3:aaa92c61931a 32
Slepnir 3:aaa92c61931a 33 #define CRC_NAME "CRC-CCITT"
Slepnir 3:aaa92c61931a 34 #define POLYNOMIAL 0x1021
Slepnir 3:aaa92c61931a 35 #define INITIAL_REMAINDER 0xFFFF
Slepnir 3:aaa92c61931a 36 #define FINAL_XOR_VALUE 0x0000
Slepnir 3:aaa92c61931a 37 #define REFLECT_DATA FALSE
Slepnir 3:aaa92c61931a 38 #define REFLECT_REMAINDER FALSE
Slepnir 3:aaa92c61931a 39 #define CHECK_VALUE 0x29B1
Slepnir 3:aaa92c61931a 40
Slepnir 3:aaa92c61931a 41 #elif defined(CRC16)
Slepnir 3:aaa92c61931a 42
Slepnir 3:aaa92c61931a 43 typedef unsigned short crc;
Slepnir 3:aaa92c61931a 44
Slepnir 3:aaa92c61931a 45 #define CRC_NAME "CRC-16"
Slepnir 3:aaa92c61931a 46 #define POLYNOMIAL 0x8005
Slepnir 3:aaa92c61931a 47 #define INITIAL_REMAINDER 0x0000
Slepnir 3:aaa92c61931a 48 #define FINAL_XOR_VALUE 0x0000
Slepnir 3:aaa92c61931a 49 #define REFLECT_DATA TRUE
Slepnir 3:aaa92c61931a 50 #define REFLECT_REMAINDER TRUE
Slepnir 3:aaa92c61931a 51 #define CHECK_VALUE 0xBB3D
Slepnir 3:aaa92c61931a 52
Slepnir 3:aaa92c61931a 53 #elif defined(CRC32)
Slepnir 3:aaa92c61931a 54
Slepnir 3:aaa92c61931a 55 typedef unsigned long crc;
Slepnir 3:aaa92c61931a 56
Slepnir 3:aaa92c61931a 57 #define CRC_NAME "CRC-32"
Slepnir 3:aaa92c61931a 58 #define POLYNOMIAL 0x04C11DB7
Slepnir 3:aaa92c61931a 59 #define INITIAL_REMAINDER 0xFFFFFFFF
Slepnir 3:aaa92c61931a 60 #define FINAL_XOR_VALUE 0xFFFFFFFF
Slepnir 3:aaa92c61931a 61 #define REFLECT_DATA TRUE
Slepnir 3:aaa92c61931a 62 #define REFLECT_REMAINDER TRUE
Slepnir 3:aaa92c61931a 63 #define CHECK_VALUE 0xCBF43926
Slepnir 3:aaa92c61931a 64
Slepnir 3:aaa92c61931a 65 #else
Slepnir 3:aaa92c61931a 66
Slepnir 3:aaa92c61931a 67 #error "One of CRC_CCITT, CRC16, or CRC32 must be #define'd."
Slepnir 3:aaa92c61931a 68
Slepnir 3:aaa92c61931a 69 #endif
Slepnir 3:aaa92c61931a 70
Slepnir 3:aaa92c61931a 71
Slepnir 3:aaa92c61931a 72 void crcInit();
Slepnir 3:aaa92c61931a 73 crc crcSlow(unsigned char const message[], int nBytes);
Slepnir 3:aaa92c61931a 74 crc crcFast(unsigned char const message[], int nBytes);
Slepnir 3:aaa92c61931a 75
Slepnir 3:aaa92c61931a 76
Slepnir 3:aaa92c61931a 77 #endif /* _crc_h */
Slepnir 3:aaa92c61931a 78