diff --git a/src/libraries/icubmod/embObjLib/diagnosticInfoParsers.cpp b/src/libraries/icubmod/embObjLib/diagnosticInfoParsers.cpp index 993c421f65..8b92bee9a0 100644 --- a/src/libraries/icubmod/embObjLib/diagnosticInfoParsers.cpp +++ b/src/libraries/icubmod/embObjLib/diagnosticInfoParsers.cpp @@ -48,7 +48,23 @@ void DefaultParser::printBaseInfo() m_dnginfo.baseInfo.finalMessage.append(str); } +void DefaultParser::getCanBoardsFromMaps(char *canboards1, char* canboards2, uint16_t canmask1, uint16_t canmask2) +{ + for(int i=1; i<15; i++) + { + if ( (canmask1 & (1<> 16; @@ -1124,21 +1139,7 @@ void SysParser::parseInfo() char lostCanBoards1[64] = {0}; char lostCanBoards2[64] = {0}; - for(int i=1; i<15; i++) - { - if ( (lostMaskcan1 & (1<> 16; + uint16_t retrievedMaskcan2 = (m_dnginfo.param64 & 0x000000000000ffff); + char retrievedCanBoards1[64] = {0}; + char retrievedCanBoards2[64] = {0}; + + getCanBoardsFromMaps(retrievedCanBoards1, retrievedCanBoards2, retrievedMaskcan1, retrievedMaskcan2); + + snprintf(str, sizeof(str), "%s Type of service category is %s. Retrieved can boards on (can1map, can2map) = ([ %s ], [ %s ] ).", + m_dnginfo.baseMessage.c_str(), + eomn_servicecategory2string(serv_category), + retrievedCanBoards1, retrievedCanBoards2 + ); + + m_dnginfo.baseInfo.finalMessage.append(str); + + } break; + case eoerror_value_SYS_canservices_monitor_regularcontact: { eOmn_serv_category_t serv_category = (eOmn_serv_category_t)m_dnginfo.param16; @@ -1159,20 +1180,7 @@ void SysParser::parseInfo() char foundCanBoards1[64] = {0}; char foundCanBoards2[64] = {0}; - for(int i=1; i<15; i++) - { - if ( (foundMaskcan1 & (1<