#include <CrcCheck.hh>
Collaboration diagram for CrcCheck:
Public Member Functions | |
CrcCheck () | |
~CrcCheck () | |
void | compute (ui16 value) |
void | reset () |
ui16 | getCrc () |
Private Member Functions | |
void | init () |
Private Attributes | |
std::vector< ui16 > | keys |
ui16 | crc |
Definition at line 16 of file CrcCheck.hh.
CrcCheck::CrcCheck | ( | ) |
CrcCheck::~CrcCheck | ( | ) |
void CrcCheck::init | ( | ) | [private] |
Definition at line 49 of file CrcCheck.cpp.
Referenced by CrcCheck().
00050 { 00051 keys.push_back(0x0000); 00052 keys.push_back(0x1021); 00053 keys.push_back(0x2042); 00054 keys.push_back(0x3063); 00055 keys.push_back(0x4084); 00056 keys.push_back(0x50A5); 00057 keys.push_back(0x60C6); 00058 keys.push_back(0x70E7); 00059 keys.push_back(0x8108); 00060 keys.push_back(0x9129); 00061 keys.push_back(0xA14A); 00062 keys.push_back(0xB16B); 00063 keys.push_back(0xC18C); 00064 keys.push_back(0xD1AD); 00065 keys.push_back(0xE1CE); 00066 keys.push_back(0xF1EF); 00067 keys.push_back(0x1231); 00068 keys.push_back(0x0210); 00069 keys.push_back(0x3273); 00070 keys.push_back(0x2252); 00071 keys.push_back(0x52B5); 00072 keys.push_back(0x4294); 00073 keys.push_back(0x72F7); 00074 keys.push_back(0x62D6); 00075 keys.push_back(0x9339); 00076 keys.push_back(0x8318); 00077 keys.push_back(0xB37B); 00078 keys.push_back(0xA35A); 00079 keys.push_back(0xD3BD); 00080 keys.push_back(0xC39C); 00081 keys.push_back(0xF3FF); 00082 keys.push_back(0xE3DE); 00083 keys.push_back(0x2462); 00084 keys.push_back(0x3443); 00085 keys.push_back(0x0420); 00086 keys.push_back(0x1401); 00087 keys.push_back(0x64E6); 00088 keys.push_back(0x74C7); 00089 keys.push_back(0x44A4); 00090 keys.push_back(0x5485); 00091 keys.push_back(0xA56A); 00092 keys.push_back(0xB54B); 00093 keys.push_back(0x8528); 00094 keys.push_back(0x9509); 00095 keys.push_back(0xE5EE); 00096 keys.push_back(0xF5CF); 00097 keys.push_back(0xC5AC); 00098 keys.push_back(0xD58D); 00099 keys.push_back(0x3653); 00100 keys.push_back(0x2672); 00101 keys.push_back(0x1611); 00102 keys.push_back(0x0630); 00103 keys.push_back(0x76D7); 00104 keys.push_back(0x66F6); 00105 keys.push_back(0x5695); 00106 keys.push_back(0x46B4); 00107 keys.push_back(0xB75B); 00108 keys.push_back(0xA77A); 00109 keys.push_back(0x9719); 00110 keys.push_back(0x8738); 00111 keys.push_back(0xF7DF); 00112 keys.push_back(0xE7FE); 00113 keys.push_back(0xD79D); 00114 keys.push_back(0xC7BC); 00115 keys.push_back(0x48C4); 00116 keys.push_back(0x58E5); 00117 keys.push_back(0x6886); 00118 keys.push_back(0x78A7); 00119 keys.push_back(0x0840); 00120 keys.push_back(0x1861); 00121 keys.push_back(0x2802); 00122 keys.push_back(0x3823); 00123 keys.push_back(0xC9CC); 00124 keys.push_back(0xD9ED); 00125 keys.push_back(0xE98E); 00126 keys.push_back(0xF9AF); 00127 keys.push_back(0x8948); 00128 keys.push_back(0x9969); 00129 keys.push_back(0xA90A); 00130 keys.push_back(0xB92B); 00131 keys.push_back(0x5AF5); 00132 keys.push_back(0x4AD4); 00133 keys.push_back(0x7AB7); 00134 keys.push_back(0x6A96); 00135 keys.push_back(0x1A71); 00136 keys.push_back(0x0A50); 00137 keys.push_back(0x3A33); 00138 keys.push_back(0x2A12); 00139 keys.push_back(0xDBFD); 00140 keys.push_back(0xCBDC); 00141 keys.push_back(0xFBBF); 00142 keys.push_back(0xEB9E); 00143 keys.push_back(0x9B79); 00144 keys.push_back(0x8B58); 00145 keys.push_back(0xBB3B); 00146 keys.push_back(0xAB1A); 00147 keys.push_back(0x6CA6); 00148 keys.push_back(0x7C87); 00149 keys.push_back(0x4CE4); 00150 keys.push_back(0x5CC5); 00151 keys.push_back(0x2C22); 00152 keys.push_back(0x3C03); 00153 keys.push_back(0x0C60); 00154 keys.push_back(0x1C41); 00155 keys.push_back(0xEDAE); 00156 keys.push_back(0xFD8F); 00157 keys.push_back(0xCDEC); 00158 keys.push_back(0xDDCD); 00159 keys.push_back(0xAD2A); 00160 keys.push_back(0xBD0B); 00161 keys.push_back(0x8D68); 00162 keys.push_back(0x9D49); 00163 keys.push_back(0x7E97); 00164 keys.push_back(0x6EB6); 00165 keys.push_back(0x5ED5); 00166 keys.push_back(0x4EF4); 00167 keys.push_back(0x3E13); 00168 keys.push_back(0x2E32); 00169 keys.push_back(0x1E51); 00170 keys.push_back(0x0E70); 00171 keys.push_back(0xFF9F); 00172 keys.push_back(0xEFBE); 00173 keys.push_back(0xDFDD); 00174 keys.push_back(0xCFFC); 00175 keys.push_back(0xBF1B); 00176 keys.push_back(0xAF3A); 00177 keys.push_back(0x9F59); 00178 keys.push_back(0x8F78); 00179 keys.push_back(0x9188); 00180 keys.push_back(0x81A9); 00181 keys.push_back(0xB1CA); 00182 keys.push_back(0xA1EB); 00183 keys.push_back(0xD10C); 00184 keys.push_back(0xC12D); 00185 keys.push_back(0xF14E); 00186 keys.push_back(0xE16F); 00187 keys.push_back(0x1080); 00188 keys.push_back(0x00A1); 00189 keys.push_back(0x30C2); 00190 keys.push_back(0x20E3); 00191 keys.push_back(0x5004); 00192 keys.push_back(0x4025); 00193 keys.push_back(0x7046); 00194 keys.push_back(0x6067); 00195 keys.push_back(0x83B9); 00196 keys.push_back(0x9398); 00197 keys.push_back(0xA3FB); 00198 keys.push_back(0xB3DA); 00199 keys.push_back(0xC33D); 00200 keys.push_back(0xD31C); 00201 keys.push_back(0xE37F); 00202 keys.push_back(0xF35E); 00203 keys.push_back(0x02B1); 00204 keys.push_back(0x1290); 00205 keys.push_back(0x22F3); 00206 keys.push_back(0x32D2); 00207 keys.push_back(0x4235); 00208 keys.push_back(0x5214); 00209 keys.push_back(0x6277); 00210 keys.push_back(0x7256); 00211 keys.push_back(0xB5EA); 00212 keys.push_back(0xA5CB); 00213 keys.push_back(0x95A8); 00214 keys.push_back(0x8589); 00215 keys.push_back(0xF56E); 00216 keys.push_back(0xE54F); 00217 keys.push_back(0xD52C); 00218 keys.push_back(0xC50D); 00219 keys.push_back(0x34E2); 00220 keys.push_back(0x24C3); 00221 keys.push_back(0x14A0); 00222 keys.push_back(0x0481); 00223 keys.push_back(0x7466); 00224 keys.push_back(0x6447); 00225 keys.push_back(0x5424); 00226 keys.push_back(0x4405); 00227 keys.push_back(0xA7DB); 00228 keys.push_back(0xB7FA); 00229 keys.push_back(0x8799); 00230 keys.push_back(0x97B8); 00231 keys.push_back(0xE75F); 00232 keys.push_back(0xF77E); 00233 keys.push_back(0xC71D); 00234 keys.push_back(0xD73C); 00235 keys.push_back(0x26D3); 00236 keys.push_back(0x36F2); 00237 keys.push_back(0x0691); 00238 keys.push_back(0x16B0); 00239 keys.push_back(0x6657); 00240 keys.push_back(0x7676); 00241 keys.push_back(0x4615); 00242 keys.push_back(0x5634); 00243 keys.push_back(0xD94C); 00244 keys.push_back(0xC96D); 00245 keys.push_back(0xF90E); 00246 keys.push_back(0xE92F); 00247 keys.push_back(0x99C8); 00248 keys.push_back(0x89E9); 00249 keys.push_back(0xB98A); 00250 keys.push_back(0xA9AB); 00251 keys.push_back(0x5844); 00252 keys.push_back(0x4865); 00253 keys.push_back(0x7806); 00254 keys.push_back(0x6827); 00255 keys.push_back(0x18C0); 00256 keys.push_back(0x08E1); 00257 keys.push_back(0x3882); 00258 keys.push_back(0x28A3); 00259 keys.push_back(0xCB7D); 00260 keys.push_back(0xDB5C); 00261 keys.push_back(0xEB3F); 00262 keys.push_back(0xFB1E); 00263 keys.push_back(0x8BF9); 00264 keys.push_back(0x9BD8); 00265 keys.push_back(0xABBB); 00266 keys.push_back(0xBB9A); 00267 keys.push_back(0x4A75); 00268 keys.push_back(0x5A54); 00269 keys.push_back(0x6A37); 00270 keys.push_back(0x7A16); 00271 keys.push_back(0x0AF1); 00272 keys.push_back(0x1AD0); 00273 keys.push_back(0x2AB3); 00274 keys.push_back(0x3A92); 00275 keys.push_back(0xFD2E); 00276 keys.push_back(0xED0F); 00277 keys.push_back(0xDD6C); 00278 keys.push_back(0xCD4D); 00279 keys.push_back(0xBDAA); 00280 keys.push_back(0xAD8B); 00281 keys.push_back(0x9DE8); 00282 keys.push_back(0x8DC9); 00283 keys.push_back(0x7C26); 00284 keys.push_back(0x6C07); 00285 keys.push_back(0x5C64); 00286 keys.push_back(0x4C45); 00287 keys.push_back(0x3CA2); 00288 keys.push_back(0x2C83); 00289 keys.push_back(0x1CE0); 00290 keys.push_back(0x0CC1); 00291 keys.push_back(0xEF1F); 00292 keys.push_back(0xFF3E); 00293 keys.push_back(0xCF5D); 00294 keys.push_back(0xDF7C); 00295 keys.push_back(0xAF9B); 00296 keys.push_back(0xBFBA); 00297 keys.push_back(0x8FD9); 00298 keys.push_back(0x9FF8); 00299 keys.push_back(0x6E17); 00300 keys.push_back(0x7E36); 00301 keys.push_back(0x4E55); 00302 keys.push_back(0x5E74); 00303 keys.push_back(0x2E93); 00304 keys.push_back(0x3EB2); 00305 keys.push_back(0x0ED1); 00306 keys.push_back(0x1EF0); 00307 // FILE_LOG(logDEBUG1 ) << dec << "keys.size()[" << keys.size() << "]" << endl; 00308 }
void CrcCheck::compute | ( | ui16 | value | ) |
Definition at line 27 of file CrcCheck.cpp.
Referenced by MicrorocXDaqReader::getAcqData(), MicrorocLabviewReader::getAcqData(), Hardroc2LabviewReader::getAcqData(), MicrorocLabviewReader::getAnalogData(), MicrorocXDaqReader::getData(), DifReader::getData(), CalibMicrorocParser::getData(), and CalibMicrorocParser::getNextEvent().
00028 { 00029 00030 // FILE_LOG(logDEBUG1 ) << hex << "----- BEGIN CRC[0x" << crc << "]" ; 00031 //FILE_LOG(logDEBUG1 ) << hex << " CRC receive value[0x" << value << "]" << endl; 00032 00033 ui16 first = ( crc & 0x00FF ) << 8; 00034 00035 ui16 index = ( crc & 0xFF00 ) >> 8; 00036 00037 index = index ^ value; // XOR 00038 00039 if ( index > keys.size() ) { crc = 0; return ; } 00040 00041 ui16 second = keys[index]; 00042 00043 crc = first ^ second ; 00044 // FILE_LOG(logDEBUG1 ) << hex << "---- END CRC[0x" << crc << "]" << dec << endl; 00045 }
void CrcCheck::reset | ( | ) | [inline] |
Definition at line 27 of file CrcCheck.hh.
Referenced by AcquisitionParser::setComputeCrcFlag().
00027 { crc = 0xffff; };
ui16 CrcCheck::getCrc | ( | ) | [inline] |
Definition at line 29 of file CrcCheck.hh.
Referenced by MicrorocXDaqReader::getAcqData(), MicrorocLabviewReader::getAcqData(), Hardroc2LabviewReader::getAcqData(), MicrorocLabviewReader::getAnalogData(), and CalibMicrorocParser::getNextEvent().
00029 { return crc; };
std::vector<ui16> CrcCheck::keys [private] |
ui16 CrcCheck::crc [private] |