ATLAS Offline Software
Loading...
Searching...
No Matches
Trigger
TrigT1
TrigT1RPChardware
src
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
5
#include "
TrigT1RPChardware/crc8.h
"
6
7
#include <fstream>
// ifstream, ofstream, fstream
8
#include <iostream>
9
10
using namespace
std
;
11
12
crc8::crc8
() {
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
19
crc8::~crc8
() {
20
// cout<<"Fine della sessione crc8\n";
21
}
22
23
int
crc8::current
() {
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::m_pol
int m_pol
Definition
crc8.h:17
crc8::m_ma
int m_ma
Definition
crc8.h:18
crc8::calc
int calc(int dato)
Definition
crc8.cxx:29
crc8::~crc8
~crc8()
Definition
crc8.cxx:19
crc8::crc8
crc8()
Definition
crc8.cxx:12
crc8::m_crci
int m_crci
Definition
crc8.h:16
crc8::current
int current()
Definition
crc8.cxx:23
crc8.h
std
STL namespace.
Generated on
for ATLAS Offline Software by
1.14.0