Index: sources/view/hd/alarm/VAlarmStatus.cpp =================================================================== diff -u -r53134008481fd775533e8988b7436f2f75e47336 -r4d322070769e54c059b020f18215dca88c90acd7 --- sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 53134008481fd775533e8988b7436f2f75e47336) +++ sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 4d322070769e54c059b020f18215dca88c90acd7) @@ -14,57 +14,139 @@ */ #include "VAlarmStatus.h" -using namespace Gui; -using namespace View; +// Project +#include "GuiController.h" -VAlarmStatus::VAlarmStatus(QObject *parent) -{ - Q_UNUSED(parent); +VIEW_DEF_CLASS_ADJUSTMENT(VAlarmStatus, AlarmStatusData) - connect(&_GuiController, SIGNAL(didActionReceive(AlarmStatusData)), - this , SLOT(onActionReceive(AlarmStatusData))); +void VAlarmStatus::initConnections() { + ACTION_VIEW_CONNECTION(AlarmStatusData ); + ADJUST_VIEW_CONNECTION(AlarmSilenceRequestData ); + ADJUST_VIEW_CONNECTION(AlarmUserActionRequestData ); + /* coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. + ADJUST_VIEW_CONNECTION(AlarmClearedConditionRequestData ); + coco end */ +} - connect(this, SIGNAL(requestActionTransmit(GuiActionType,QVariantList)), - &_GuiController, SLOT(doActionTransmit(GuiActionType,QVariantList))); +/*! + * \brief View::VAlarmStatus::doUserActionResume + * \details send the message to notify that user chose the Resume Treatment button + */ +void View::VAlarmStatus::doUserActionResume() { + AlarmUserActionRequestData data; + data.action = Gui::GuiAlarmUserActions::ALARM_USER_ACTION_RESUME; + emit didAdjustment(data); +} - connect(this, SIGNAL(requestAlarmAcknowledge(AlarmAcknowledgeRequestData)), - &_GuiController, SLOT(doAdjustment(AlarmAcknowledgeRequestData))); +/*! + * \brief View::VAlarmStatus::doUserActionRinseback + * \details send the message to notify that user chose the Rinse back button + */ +void View::VAlarmStatus::doUserActionRinseback() { + AlarmUserActionRequestData data; + data.action = Gui::GuiAlarmUserActions::ALARM_USER_ACTION_RINSEBACK; + emit didAdjustment(data); +} - connect(this, SIGNAL(requestAlarmSilence(AlarmSilenceRequestData)), - &_GuiController, SLOT(doAdjustment(AlarmSilenceRequestData))); +/*! + * \brief View::VAlarmStatus::doUserActionEnd + * \details send the message to notify that user chose the End Treatment button + */ +void View::VAlarmStatus::doUserActionEnd() { + AlarmUserActionRequestData data; + data.action = Gui::GuiAlarmUserActions::ALARM_USER_ACTION_END_TREATMENT; + emit didAdjustment(data); } +/*! + * \brief View::VAlarmStatus::doUserActionOk + * \details send the message to notify that user chose the OK button + */ +void View::VAlarmStatus::doUserActionOk() +{ + AlarmUserActionRequestData data; + data.action = Gui::GuiAlarmUserActions::ALARM_USER_ACTION_ACK; + emit didAdjustment(data); +} + +/*! + * \brief VAlarmStatus::doSilence + * Send out a request to silence alarms + */ +void View::VAlarmStatus::doSilence() +{ + AlarmSilenceRequestData data; + if (_alarm_Flag_alarmsSilenced) + data.silence = 0; // de-silence + else + data.silence = 1; // silence + emit didAdjustment(data); +} + +/*! + * \brief VAlarmStatus::doClearCondition + * \details Send out a request to notify alarm condition is cleared + * \note this is an example of how to do the clear condition + * later it may require to have a parameter or it needs to be different slots + * currently there is no use case for this + */ +void View::VAlarmStatus::doClearCondition() +{ + // 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. + AlarmClearedConditionRequestData data; + data.alarmID = GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT; + emit didAdjustment(data); +} +// coco end + +/*! + * \brief VAlarmStatus::onActionReceive + * \details the message received handler + * \param vData - Data of the received message + */ void VAlarmStatus::onActionReceive(const AlarmStatusData &vData) { GuiAlarmID alarmID = static_cast(vData.mTop); - if (gDisableTimeout && alarmID == GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT) { + if (alarmID == GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT && gDisableTimeout) { LOG_EVENT(tr("Suppressing HD communication timeout.")); return; } - if (vData.mTop == GuiAlarmID::ALARM_ID_NO_ALARM) { - emit noAlarm(); - return; - } + // Look for this tag: #First_Time_Message_Sent_With_Silenced + // this has to be first to make sure in the Notification dialog when we decided to show the dialog, + // we should also consider checking the alarms Silenced and if it is already silenced, + // even though there should be a text but should not show the dialog + // otherwise it bounces + alarm_Flag_alarmsSilenced (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_ALARMS_SILENCED )); - alarm_Priority (vData.mState ); - alarm_AlarmID (vData.mTop ); - alarm_EscalateIn (vData.mEscalatesIn ); - alarm_MuteTimeout (vData.mMuteTimeout ); - alarm_Flag_systemFault (vData.mFlags.at(AlarmStatusFlag::eFlag_systemFault )); - alarm_Flag_stop (vData.mFlags.at(AlarmStatusFlag::eFlag_stop )); - alarm_Flag_noClear (vData.mFlags.at(AlarmStatusFlag::eFlag_noClear )); - alarm_Flag_noResume (vData.mFlags.at(AlarmStatusFlag::eFlag_noResume )); - alarm_Flag_noRinseback (vData.mFlags.at(AlarmStatusFlag::eFlag_noRinseback )); - alarm_Flag_noEndTreatment (vData.mFlags.at(AlarmStatusFlag::eFlag_noEndTreatment )); - alarm_Flag_noNewTreatment (vData.mFlags.at(AlarmStatusFlag::eFlag_noNewTreatment )); - alarm_Flag_bypassDialyzer (vData.mFlags.at(AlarmStatusFlag::eFlag_bypassDialyzer )); - alarm_Flag_alarmsToEscalate (vData.mFlags.at(AlarmStatusFlag::eFlag_alarmsToEscalate )); - alarm_Flag_alarmsSilenced (vData.mFlags.at(AlarmStatusFlag::eFlag_alarmsSilenced )); - alarm_Flag_UserAcknowledged (vData.mFlags.at(AlarmStatusFlag::eFlag_userAcknowledged )); + alarm_Priority (vData.mState ); + alarm_AlarmID (vData.mTop ); + alarm_EscalateIn (vData.mEscalatesIn ); + alarm_MuteTimeout (vData.mMuteTimeout ); - emit raiseAlarm(); + alarm_Flag_systemFault (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_SYSTEM_FAULT )); + alarm_Flag_stop (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_STOP )); + alarm_Flag_noClear (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_CLEAR )); + alarm_Flag_noResume (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_RESUME )); + alarm_Flag_noRinseback (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_RINSEBACK )); + alarm_Flag_noEndTreatment (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_END_TREATMENT )); + alarm_Flag_noNewTreatment (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_NO_NEW_TREATMENT )); + alarm_Flag_UserMustAck (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_USER_MUST_ACK )); + alarm_Flag_alarmsToEscalate (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_ALARMS_TO_ESCALATE )); + alarm_Flag_alarmsLampOn (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_LAMP_ON )); + // (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_UNUSED_1 )); + // (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_UNUSED_2 )); + // (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_UNUSED_3 )); + // (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_UNUSED_4 )); + alarm_Flag_alarmsCondition (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_TOP_CONDITION )); + + if (vData.mTop == GuiAlarmID::ALARM_ID_NO_ALARM) { + emit didAlarmEmpty(); + } + else { + emit didAlarmRaise(); + } } /*! @@ -120,36 +202,3 @@ return QString("%0").arg(static_cast(alarm_AlarmID())); // coco end } - -/*! - * \brief VAlarmStatus::requestOkay - * Send out a request to acknowledge this alarmID - */ -void VAlarmStatus::onRequestOkay(GuiAlarmID alarmID) -{ - AlarmAcknowledgeRequestData data; - data.alarmID = (quint32)alarmID; - emit requestAlarmAcknowledge(data); - onSetMinimize(true); // TODO: Remove once FW implements user acknowledge -} - -/*! - * \brief VAlarmStatus::onToggleMinimize - * Toggles the whether the alarm should be minimized - */ -void VAlarmStatus::onSetMinimize(bool minimize) -{ - minimizeAlarm(minimize); -} - -/*! - * \brief VAlarmStatus::requestSilence - * Send out a request to silence alarms - */ -void VAlarmStatus::onRequestSilence() -{ - AlarmSilenceRequestData data; - data.state = 1; - emit requestAlarmSilence(data); - onSetMinimize(true); -}