/*! * * 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. * * \file VAlarmStatus.cpp * \author (last) Behrouz NematiPour * \date (last) 31-Aug-2020 * \author (original) Behrouz NematiPour * \date (original) 26-Aug-2020 * */ #include "VAlarmStatus.h" using namespace Gui; using namespace View; VAlarmStatus::VAlarmStatus(QObject *parent) { Q_UNUSED(parent); connect(&_GuiController, SIGNAL(didActionReceive(AlarmStatusData)), this , SLOT(onActionReceive(AlarmStatusData))); connect(this, SIGNAL(requestActionTransmit(GuiActionType,QVariantList)), &_GuiController, SLOT(doActionTransmit(GuiActionType,QVariantList))); connect(this, SIGNAL(requestAlarmAcknowledge(AlarmAcknowledgeRequestData)), &_GuiController, SLOT(doAdjustment(AlarmAcknowledgeRequestData))); connect(this, SIGNAL(requestAlarmSilence(AlarmSilenceRequestData)), &_GuiController, SLOT(doAdjustment(AlarmSilenceRequestData))); } 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.mEscalatesIn ); alarm_MuteTimeout (vData.mMuteTimeout ); 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_alarmsSilenced (vData.mFlags.at(GuiAlarmFlags::ALARM_STATE_FLAG_BIT_POS_ALARMS_SILENCED )); 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 )); emit raiseAlarm(); } /*! * \brief VAlarmStatus::alarmPriorityText * \details this code is the place holder for the alarms description mapping * since it is another feature * it returns the enum name for now * \param vEnum - The Alarm priority * \return String representation of the Alarm priority Enum name */ QString VAlarmStatus::alarmPriorityText(GuiAlarmPriority vEnum) { // 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)); 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 Looks up the alarm text from the alarm ID * \param vEnum - The Alarm ID * \return The alarm text (QString) */ QString VAlarmStatus::alarmIDText(GuiAlarmID vEnum) { return Model::MAlarmStatus::toText(vEnum); } /*! * \brief VAlarmStatus::text * \return Gets the alarm text from the alarm ID and returns it as a QString */ QString VAlarmStatus::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 this alarmID */ void VAlarmStatus::onRequestOkay(GuiAlarmID alarmID) { AlarmAcknowledgeRequestData data; data.alarmID = (quint32)alarmID; emit requestAlarmAcknowledge(data); } /*! * \brief VAlarmStatus::requestSilence * Send out a request to silence alarms */ void VAlarmStatus::onRequestSilence() { AlarmSilenceRequestData data; data.state = 1; emit requestAlarmSilence(data); }