@@ -178,10 +178,15 @@ class ProgramStatus : public Program
178178 }
179179 }
180180 } else if (cardType == CardType::type::Cru) {
181- formatHeader = " %-6s %-10s %-10s %-14s %-10s %-10s %-8s %-8s %-8s %-11s %-8s %-8s\n " ;
182- formatRow = " %-6s %-10s %-10s %-14s %-10s %-10s %-8.2f %-8.2f %-8s %-11.1f %-8s %-8s\n " ;
183- header1 = (boost::format (formatHeader) % " Link" % " GBT Mode" % " Loopback" % " GBT MUX" % " Datapath" % " Datapath" % " RX freq" % " TX freq" % " Status" % " Optical" % " System" % " FEE" ).str ();
184- header2 = (boost::format (formatHeader) % " ID" % " Tx/Rx" % " " % " " % " mode" % " status" % " (MHz)" % " (MHz)" % " " % " power (uW)" % " ID" % " ID" ).str ();
181+ if (mOptions .fec ) {
182+ formatHeader = " %-6s %-10s %-10s %-14s %-10s %-10s %-8s %-8s %-7s %-7s %-11s %-7s %-7s\n " ;
183+ formatRow = " %-6s %-10s %-10s %-14s %-10s %-10s %-8.2f %-8.2f %-7s %-7s %-11.1f %-7s %-7s\n " ;
184+ } else {
185+ formatHeader = " %-6s %-10s %-10s %-14s %-10s %-10s %-8s %-8s %-7s%-0s %-11s %-7s %-7s\n " ;
186+ formatRow = " %-6s %-10s %-10s %-14s %-10s %-10s %-8.2f %-8.2f %-7s%-0s %-11.1f %-7s %-7s\n " ;
187+ }
188+ header1 = (boost::format (formatHeader) % " Link" % " GBT Mode" % " Loopback" % " GBT MUX" % " Datapath" % " Datapath" % " RX freq" % " TX freq" % " Status" % (mOptions .fec ? " FEC" : " " ) % " Optical" % " System" % " FEE" ).str ();
189+ header2 = (boost::format (formatHeader) % " ID" % " Tx/Rx" % " " % " " % " mode" % " status" % " (MHz)" % " (MHz)" % " " % " " % " power (uW)" % " ID" % " ID" ).str ();
185190 lineFat = std::string (header1.length (), ' =' ) + ' \n ' ;
186191 lineThin = std::string (header2.length (), ' -' ) + ' \n ' ;
187192
@@ -387,6 +392,10 @@ class ProgramStatus : public Program
387392 float rxFreq = link.rxFreq ;
388393 float txFreq = link.txFreq ;
389394 uint32_t glitchCounter = link.glitchCounter ;
395+ std::string fecCounter;
396+ if (mOptions .fec ) {
397+ fecCounter = Utilities::toHexString (link.fecCounter );
398+ }
390399
391400 std::string linkStatus;
392401 if (link.stickyBit == Cru::LinkStatus::Up) {
@@ -437,11 +446,14 @@ class ProgramStatus : public Program
437446 linkNode.put (" systemId" , systemId);
438447 linkNode.put (" feeId" , feeId);
439448 linkNode.put (" glitchCounter" , glitchCounter);
449+ if (mOptions .fec ) {
450+ linkNode.put (" fecCounter" , fecCounter);
451+ }
440452
441453 // add the link node to the tree
442454 root.add_child (std::to_string (globalId), linkNode);
443455 } else {
444- auto format = boost::format (formatRow) % globalId % gbtTxRxMode % loopback % gbtMux % datapathMode % enabled % rxFreq % txFreq % linkStatus % opticalPower % systemId % feeId;
456+ auto format = boost::format (formatRow) % globalId % gbtTxRxMode % loopback % gbtMux % datapathMode % enabled % rxFreq % txFreq % linkStatus % fecCounter % opticalPower % systemId % feeId;
445457 table << format;
446458 }
447459 }
0 commit comments