144 bool thereIsACM =
false;
146 bool thereIsASL =
false;
149 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode; inword= " << std::hex << inword << std::dec << std::endl; }
153 CMROS.decodeFragment(inword, recField);
154 PDROS.decodeFragment(inword, recField);
155 RXROS.decodeFragment(inword, recField);
156 SLROS.decodeFragment(inword, recField);
161 if (
SLROS.isHeader()) {
165 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Header " << std::endl; }
168 SLRO.writeRecord(inword,
false);
176 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic SubHeader " << std::endl; }
178 SLRO.writeRecord(inword,
false);
184 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Footer " << std::endl; }
187 SLRO.writeRecord(inword,
true);
195 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: SectorLogic Body " << std::endl; }
196 SLRO.writeRecord(inword,
false);
199 }
else if (
RXROS.isHeader()) {
203 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode: RX Header " << std::endl; }
205 RXROS.decodeFragment(inword, recField);
214 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and RX Header found" << std::endl;
217 CMRO.writeRecord(inword,
true);
222 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and and RX Header found" << std::endl;
225 CMRO.writeRecord(inword,
true);
230 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and RX Header found" << std::endl;
233 CMRO.writeRecord(inword,
true);
238 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and RX Header found" << std::endl;
242 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
245 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
248 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
251 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
254 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
258 }
else if (
RXROS.isFooter()) {
264 RXROS.decodeFragment(inword, recField);
265 if (recField ==
'F') {}
273 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and RX Footer found" << std::endl;
276 CMRO.writeRecord(inword,
true);
281 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and RX Footer found" << std::endl;
284 CMRO.writeRecord(inword,
true);
289 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and and RX Footer found" << std::endl;
292 CMRO.writeRecord(inword,
true);
297 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and RX Footer found" << std::endl;
301 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
304 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
307 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
310 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
313 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
317 }
else if (
PDROS.isHeader()) {
321 if (
m_enablePrintOut) { std::cout <<
" PAD Header " << std::hex << inword << std::dec << std::endl; }
323 PDROS.decodeFragment(inword, recField);
324 if (recField ==
'H') {
PadID =
PDROS.padid(); }
327 std::cout <<
" PAD " <<
PadID <<
" LVL1 " << std::hex << ((inword & 0x0e00) >> 8) << std::dec << std::endl;
333 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
335 CMRO.writeRecord(inword,
true);
339 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
341 CMRO.writeRecord(inword,
true);
346 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
349 CMRO.writeRecord(inword,
true);
354 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
357 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
360 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
363 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
366 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
370 }
else if (
PDROS.isSubHeader()) {
374 if (
m_enablePrintOut) { std::cout <<
" BCID " << std::hex << (inword & 0x0fff) << std::dec << std::endl; }
378 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
380 CMRO.writeRecord(inword,
true);
384 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
386 CMRO.writeRecord(inword,
true);
391 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
394 CMRO.writeRecord(inword,
true);
398 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad Header expected and not found" << std::endl; }
401 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
404 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
407 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
410 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
413 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
417 }
else if (
PDROS.isPreFooter()) {
421 if (
m_enablePrintOut) { std::cout <<
" STATUS ERROR " << std::hex << (inword & 0x000f) << std::dec << std::endl; }
425 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
427 CMRO.writeRecord(inword,
true);
431 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
433 CMRO.writeRecord(inword,
true);
438 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
441 CMRO.writeRecord(inword,
true);
446 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
449 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
452 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
455 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
458 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
462 }
else if (
PDROS.isFooter()) {
467 std::cout <<
" PAD Footer " << std::hex << inword << std::dec <<
" ERROR FLAG " << std::hex << (inword & 0x0fff) << std::dec
471 PDROS.decodeFragment(inword, recField);
472 if (recField ==
'F') {}
479 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and not found" << std::endl; }
481 CMRO.writeRecord(inword,
true);
485 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and not found" << std::endl; }
487 CMRO.writeRecord(inword,
true);
492 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and not found" << std::endl;
495 CMRO.writeRecord(inword,
true);
500 std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected and not found" << std::endl;
504 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
508 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
511 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
514 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
518 }
else if (
CMROS.isHeader()) {
524 CMRO.writeRecord(inword,
false);
530 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: CM SubHeader expected and CM Header found" << std::endl; }
535 std::cout <<
" RPCRXRODDecode warning: CM Body or CM Footer expected and CM Header found" << std::endl;
540 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
543 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
546 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
549 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
552 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
556 }
else if (
CMROS.isSubHeader()) {
561 CMRO.writeRecord(inword,
false);
566 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: previous record was not a CM Header" << std::endl; }
570 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: CM Body expected and CM SubHeader found" << std::endl; }
574 std::cout <<
" RPCRXRODDecode warning: CM Body or CM Footer expected; CM SubHeader found" << std::endl;
579 std::cout <<
" RPCRXRODDecode warning: CM Header or Pad Footer expected; CM SubHeader found" << std::endl;
583 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
586 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
589 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
592 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
595 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
599 }
else if (
CMROS.isBody()) {
609 std::cout <<
" RPCRXRODDecode (CMBody1) warning: previous record was not a CM subHeader"
610 <<
" or CM Body Record " << std::endl;
615 std::cout <<
" RPCRXRODDecode (CMBody2) warning: previous record was not a CM subHeader"
616 <<
" or CM Body Record " << std::endl;
623 std::cout <<
" RPCRXRODDecode (CMBody3) warning: previous record was not a CM subHeader"
624 <<
" or CM Body Record " << std::endl;
628 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
631 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
634 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
637 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
640 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord=" << std::endl; }
644 }
else if (
CMROS.isFooter()) {
651 CMRO.writeRecord(inword,
true);
657 std::cout <<
" RPCRXRODDecode (CMFooter1) warning: previous record was not a Body record " << std::endl;
662 std::cout <<
" RPCRXRODDecode (CMFooter2) warning: previous record was not a Body record" << std::endl;
666 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode warning: previous record was not a Body record" << std::endl; }
671 std::cout <<
" RPCRXRODDecode (CMFooter3) warning: previous record was not a Body record" << std::endl;
675 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
678 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
681 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
684 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
687 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord" << std::endl; }
705 std::cout <<
" RPCRXRODDecode Fragment problem: CM SubHeader expected and (reserved) found" << std::endl;
708 CMRO.writeRecord(inword,
true);
713 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body expected and (reserved) found" << std::endl;
716 CMRO.writeRecord(inword,
true);
721 std::cout <<
" RPCRXRODDecode Fragment problem: CM Body or Footer expected and (reserved) found" << std::endl;
724 CMRO.writeRecord(inword,
true);
729 std::cout <<
" RPCRXRODDecode Fragment problem: CM Header or Pad Footer expected and (reserved) found" << std::endl;
733 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: PadSubHeader expected" << std::endl; }
736 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA fragment expected" << std::endl; }
739 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: CMA Footer expected" << std::endl; }
742 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode Fragment problem: Pad PreFooter expected" << std::endl; }
745 if (
m_enablePrintOut) { std::cout <<
" RPCRXRODDecode ERROR in previousRecord " << std::endl; }
751 if (thereIsACM) answer = 1;
752 if (thereIsASL) answer = 2;