ATLAS Offline Software
crc8.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include <fstream> // ifstream, ofstream, fstream
8 #include <iostream>
9 
10 using namespace std;
11 
13  // cout<<"Inizio della sessione crc8\n";
14  m_crci = 0x00; // crc iniziale,default="00000000"
15  m_pol = 0x838000; // polinomio divisore="1000000111"
16  m_ma = 0x800000; // maschera
17 }
18 
20  // cout<<"Fine della sessione crc8\n";
21 }
22 
24  return m_crci;
25  // return pol;
26  // return ma;
27 }
28 
29 int crc8::calc(int dato) {
30  int i;
31  int masc;
32  int poli;
33 
34  m_crci = m_crci << 16; // shifta il crc iniziale per metterlo davanti al dato
35  dato = dato ^ m_crci; // mette,tramite xor,il crc davanti al dato
36  masc = m_ma; // carico la maschera
37  poli = m_pol; // carico il polinomio divisore
38 
39  for (i = 0; i < 16; i++) {
40  if (dato & masc) // tramite AND,individua se il MSB e' 1 e divide
41  dato = dato ^ poli; // divisione tra dato e polinomio
42  masc = masc >> 1; // shift per bit successivo
43  poli = poli >> 1; // shift per bit successivo
44  }
45  m_crci = dato; // caricamento del crc ottenuto
46  return 0;
47 }
crc8.h
lumiFormat.i
int i
Definition: lumiFormat.py:92
crc8::calc
int calc(int dato)
Definition: crc8.cxx:29
crc8::crc8
crc8()
Definition: crc8.cxx:12
crc8::current
int current()
Definition: crc8.cxx:23
crc8::~crc8
~crc8()
Definition: crc8.cxx:19