Index: sources/view/valarmstatus.cpp =================================================================== diff -u -r31b9ae63410e7ca23f0f849e38368880e4c402b4 -r11a0a0a9bb67cc3afbf75426cc6b3ca97365a7ea --- sources/view/valarmstatus.cpp (.../valarmstatus.cpp) (revision 31b9ae63410e7ca23f0f849e38368880e4c402b4) +++ sources/view/valarmstatus.cpp (.../valarmstatus.cpp) (revision 11a0a0a9bb67cc3afbf75426cc6b3ca97365a7ea) @@ -1,27 +1,47 @@ /*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. - * copyright - * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, - * IN PART OR IN WHOLE, - * WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. + * \copyright + * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN + * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * - * file valarmstatus.cpp - * date 3/6/2020 - * author Behrouz NematiPour + * \file valarmstatus.cpp + * \author (last) Peter Lucia + * \date (last) 29-Jun-2020 + * \author (original) Behrouz NematiPour + * \date (original) 10-Mar-2020 * */ #include "valarmstatus.h" -// Project -#include "guicontroller.h" +using namespace Gui; +using namespace View; -VIEW_DEF(VAlarmStatus, AlarmStatusData) +VAlarmStatus::VAlarmStatus(QObject *parent) +{ + Q_UNUSED(parent); -using namespace Gui; + connect(&_GuiController, SIGNAL(didActionReceive(AlarmStatusData)), + this , SLOT(onActionReceive(AlarmStatusData))); + connect(this, SIGNAL(requestActionTransmit(GuiActionType,QVariantList)), + &_GuiController, SLOT(doActionTransmit(GuiActionType,QVariantList))); +} + void VAlarmStatus::onActionReceive(const AlarmStatusData &vData) { + GuiAlarmID alarmID = static_cast(vData.mTop); + + if (gDisableTimeout && alarmID == GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT) { + LOG_EVENT(tr("Suppressing HD communication timeout.")); + return; + } + + if (vData.mTop == GuiAlarmID::ALARM_ID_NO_ALARM) { + emit noAlarm(); + return; + } + alarm_Priority (vData.mState ); alarm_AlarmID (vData.mTop ); alarm_EscalateIn (vData.mMuteTimeout ); @@ -36,6 +56,10 @@ 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 )); + + emit raiseAlarm(); + + } /*! @@ -48,48 +72,67 @@ */ QString VAlarmStatus::alarmPriorityText(GuiAlarmPriority vEnum) { - // TEST : this code is the place holder for the alarms description mapping + // coco begin validated: this code is the place holder for the alarms description mapping // since it is another feature // it returns the enum name for now const QMetaObject *mo = qt_getEnumMetaObject(vEnum); int enumIdx = mo->indexOfEnumerator(qt_getEnumName(vEnum)); - return mo->enumerator(enumIdx).valueToKey(vEnum); + const char *key = mo->enumerator(enumIdx).valueToKey(vEnum); + if (key) + return qPrintable(key); + else + return QString("ALARM_PRIORITY_UNDEFINED [%1]").arg(vEnum); } +// coco end /*! * \brief VAlarmStatus::alarmIDText - * \details this code is the place holder for the alarms description mapping - * since it is another feature - * it returns the enum name for now + * \details Looks up the alarm text from the alarm ID * \param vEnum - The Alarm ID - * \return String representation of the Alarm Id Enum name + * \return The alarm text (QString) */ QString VAlarmStatus::alarmIDText(GuiAlarmID vEnum) { - // TEST : this code is the place holder for the alarms description mapping - // since it is another feature - // it returns the enum name for now - const QMetaObject *mo = qt_getEnumMetaObject(vEnum); - int enumIdx = mo->indexOfEnumerator(qt_getEnumName(vEnum)); - return mo->enumerator(enumIdx).valueToKey(vEnum); + return Model::MAlarmStatus::toText(vEnum); } -QString View::VAlarmStatus::text() +/*! + * \brief VAlarmStatus::text + * \return Gets the alarm text from the alarm ID and returns it as a QString + */ +QString VAlarmStatus::text() { - QString text; - if (_alarm_AlarmID != GuiAlarmID::ALARM_ID_NO_ALARM) - text = alarmIDText (static_cast(_alarm_AlarmID)) + " , " + - _alarm_EscalateIn + " , " + - _alarm_MuteTimeout + " [" + - (_alarm_Flag_systemFault ? "1" : "0" ) + " " + - (_alarm_Flag_stop ? "1" : "0" ) + " " + - (_alarm_Flag_noClear ? "1" : "0" ) + " " + - (_alarm_Flag_noResume ? "1" : "0" ) + " " + - (_alarm_Flag_noRinseback ? "1" : "0" ) + " " + - (_alarm_Flag_noEndTreatment ? "1" : "0" ) + " " + - (_alarm_Flag_noNewTreatment ? "1" : "0" ) + " " + - (_alarm_Flag_bypassDialyzer ? "1" : "0" ) + " " + - (_alarm_Flag_alarmsToEscalate ? "1" : "0" ) + " " + - (_alarm_Flag_alarmsSilenced ? "1" : "0" ) + "]" ; - return text; + return alarmIDText(static_cast(alarm_AlarmID())); } + +/*! + * \brief VAlarmStatus::id + * \return Gets the id of the alarm and returns the ID number as a QString + */ +QString VAlarmStatus::id() +{ + // coco begin validated: Has been validated manually + return QString("%0").arg(static_cast(alarm_AlarmID())); + // coco end +} + +/*! + * \brief VAlarmStatus::requestOkay + * Send out a request to acknowledge alarms. + */ +void VAlarmStatus::requestOkay(GuiAlarmID alarmID) +{ + // This will need to go to the HD + qDebug() << __FUNCTION__ << "alarmID: " << alarmID; +} + +/*! + * \brief VAlarmStatus::requestSilence + * Send out a request to silence alarms. + */ +void VAlarmStatus::requestSilence() +{ + QVariantList messageData = {1}; + GuiActionType messageAction = GuiActions::ID_AlarmSilenceReq; + emit requestActionTransmit(messageAction, messageData); +}