CMS 3D CMS Logo

ESCrcKchipFast.h
Go to the documentation of this file.
1 #ifndef ESCrcKchipFast_H
2 #define ESCrcKchipFast_H
3 
4 #include <cstdint>
5 
7 
8  private :
9 
10  uint32_t crc;
11 
12  public:
13 
15  init();
16  reset() ;
17  };
18 
19  void init() {
20  crc = 0x0ffff ;
21  }
22 
23  void reset() {
24  crc = 0x0ffff ;
25  } ;
26 
27  void add(unsigned int data) {
28  for (int i=0;i<16;i++)
29  {
30  if ((crc&0x0001) == (data&0x0001))
31  crc=crc>>1;
32  else
33  crc=(crc>>1)^0x8408; // flipped 0x1021;
34  data=(data>>1);
35  }
36  };
37 
38  uint32_t get_crc() {
39  return crc ;
40  };
41 
42  bool isCrcOk(unsigned int crcin=0x0000) {
43  return ((get_crc()==crcin) ? true : false );
44  };
45 
47 
48 };
49 
50 #endif
bool isCrcOk(unsigned int crcin=0x0000)
void add(unsigned int data)
uint32_t get_crc()
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82