@@ -248,6 +248,9 @@ class ProgramStatus : public Program
248248 onuStickyStatusInt = 0 ;
249249 }
250250
251+ std::string ponQualityStatusStr;
252+ ponQualityStatusStr = onuStatus.ponQualityStatus ? " good" : " bad" ;
253+
251254 if (mOptions .monitoring ) {
252255 monitoring->send (Metric{ " onu" }
253256 .addValue (onuStickyStatusInt, " onuStickyStatus" )
@@ -260,6 +263,7 @@ class ProgramStatus : public Program
260263 .addValue (onuStatus.mgtRxReady , " mgtRxReady" )
261264 .addValue (onuStatus.mgtTxPllLocked , " mgtTxPllLocked" )
262265 .addValue (onuStatus.mgtRxPllLocked , " mgtRxPllLocked" )
266+ .addValue (onuStatus.ponQualityStatus , " ponQualityStatus" )
263267 .addTag (tags::Key::SerialId, card.serialId .getSerial ())
264268 .addTag (tags::Key::Endpoint, card.serialId .getEndpoint ())
265269 .addTag (tags::Key::ID, card.sequenceId )
@@ -275,6 +279,8 @@ class ProgramStatus : public Program
275279 root.put (" ONU MGT RX ready" , onuStatus.mgtRxReady );
276280 root.put (" ONU MGT TX PLL locked" , onuStatus.mgtTxPllLocked );
277281 root.put (" ONU MGT RX PLL locked" , onuStatus.mgtRxPllLocked );
282+ root.put (" PON quality" , Utilities::toHexString (onuStatus.ponQuality ));
283+ root.put (" PON quality Status" , ponQualityStatusStr);
278284 } else {
279285 std::cout << " =============================" << std::endl;
280286 std::cout << " ONU status: \t\t " << onuStickyStatus << std::endl;
@@ -288,6 +294,8 @@ class ProgramStatus : public Program
288294 std::cout << " ONU MGT RX ready: \t " << std::boolalpha << onuStatus.mgtRxReady << std::endl;
289295 std::cout << " ONU MGT TX PLL locked: \t " << std::boolalpha << onuStatus.mgtTxPllLocked << std::endl;
290296 std::cout << " ONU MGT RX PLL locked: \t " << std::boolalpha << onuStatus.mgtRxPllLocked << std::endl;
297+ std::cout << " PON quality: \t\t 0x" << std::hex << onuStatus.ponQuality << std::endl;
298+ std::cout << " PON quality status: \t " << ponQualityStatusStr << std::endl;
291299 }
292300 }
293301
0 commit comments