Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -rb3eb8bc9696c4db9867ad1cf13b47c455a94e0fe -ra89b5249df072be403141463d7d88728b66a848e --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision b3eb8bc9696c4db9867ad1cf13b47c455a94e0fe) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision a89b5249df072be403141463d7d88728b66a848e) @@ -277,6 +277,7 @@ // alarms case Gui::GuiActionType::ID_AlarmSilenceReq : INTERPRET_TRANSMIT_MESSAGE(AlarmSilenceRequestData ); break; case Gui::GuiActionType::ID_AlarmUserActionReq : INTERPRET_TRANSMIT_MESSAGE(AlarmUserActionRequestData ); break; + case Gui::GuiActionType::ID_AlarmVolumeSetReq : INTERPRET_TRANSMIT_MESSAGE(AdjustHDAlarmVolumeRequestData ); break; // coco begin validated: Manually tested. This model class is a placeholder for the message 63(0x3F00) and there is no use case for this now. case Gui::GuiActionType::ID_AlarmClearedConditionReq : INTERPRET_TRANSMIT_MESSAGE(AlarmClearedConditionRequestData ); break; case Gui::GuiActionType::ID_AlarmActiveListReq : INTERPRET_TRSMT_MT_MESSAGE(AlarmActiveListRequestData ); break; @@ -291,6 +292,32 @@ } /*! + * \brief MessageInterpreter::identifySource + * \details Identifies the source of the message regarding the channgel id + * \return the source of the message in enum + * \sa can::Can_Source + */ +Can_Source MessageInterpreter::identifySource(Can_Id vCanId) +{ + switch (vCanId) { + case eChlid_HD_DG : // 0x008, ///< HD => DG + case eChlid_HD_UI : // 0x020, ///< HD => UI + case eChlid_HD_Alarm: // 0x001, ///< HD alarm broadcast + case eChlid_HD_Sync : // 0x040, ///< HD sync broadcast + return Can_Source::eCan_HD; + + case eChlid_DG_HD : // 0x010, ///< DG => HD + case eChlid_DG_UI : // 0x070, ///< DG => UI + case eChlid_DG_Alarm: // 0x002, ///< DG alarm broadcast + case eChlid_DG_Sync : // 0x080, ///< DG sync broadcast + return Can_Source::eCan_DG; + + default: + return Can_Source::eCan_Unknown; + } +} + +/*! * \brief MessageInterpreter::interpretMessage * \details This method will call appropriate message interpreter * for received messages from HD or DG regarding the Can_Id. @@ -306,19 +333,11 @@ bool MessageInterpreter::interpretMessage(const Message &vMessage, QVariantList &vData) { bool ok = false; - switch (vMessage.can_id) { - case eChlid_HD_DG : // break; // 0x008 : to remove the channel from listen list remove the break comment - case eChlid_HD_UI : // break; // 0x020 : to remove the channel from listen list remove the break comment - case eChlid_HD_Alarm: // break; // 0x001 : to remove the channel from listen list remove the break comment - case eChlid_HD_Sync : /* 0x040 */ ok = interpretMessage_HD(vMessage, vData); break; - case eChlid_DG_HD : // break; // 0x010 : to remove the channel from listen list remove the break comment - case eChlid_DG_UI : // break; // 0x070 : to remove the channel from listen list remove the break comment - case eChlid_DG_Alarm: // break; // 0x002 : to remove the channel from listen list remove the break comment - case eChlid_DG_Sync : /* 0x080 */ ok = interpretMessage_DG(vMessage, vData); break; - - default: - break; + switch (identifySource(vMessage.can_id)) { + case Can_Source::eCan_HD: ok = interpretMessage_HD(vMessage, vData); break; + case Can_Source::eCan_DG: ok = interpretMessage_DG(vMessage, vData); break; + default : break; } return ok; } @@ -422,6 +441,7 @@ case Gui::GuiActionType::ID_AlarmStatus : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmStatus ); break; case Gui::GuiActionType::ID_AlarmTriggered : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmTriggered ); break; case Gui::GuiActionType::ID_AlarmCleared : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmCleared ); break; + case Gui::GuiActionType::ID_AlarmVolumeSetRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmVolumeSetRsp ); break; // coco begin validated: Manually tested. This model class is a placeholder for the message 63(0x3F00) and there is no use case for this now. case Gui::GuiActionType::ID_AlarmClearedConditionRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmClearedConditionRsp ); break; case Gui::GuiActionType::ID_AlarmActiveListRsp : ok = notify(vMessage, vData, Gui::GuiActionType::ID_AlarmActiveListRsp ); break;