/*! * * Copyright (c) 2020-2024 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.h * \author (last) Behrouz NematiPour * \date (last) 10-Feb-2023 * \author (original) Behrouz NematiPour * \date (original) 26-Aug-2020 * */ #pragma once // Qt #include // Project #include "main.h" // Doxygen : do not remove #include "VView.h" #include "MTreatmentAdjustRequests.h" #include "MAlarmStatusData.h" #include "MSettings.h" #include "GuiGlobals.h" #include "MessageGlobals.h" #include "format.h" // forward declarations class tst_views; // Project #include "main.h" // Doxygen : do not remove #include "VAdjustmentResponseBase.h" namespace View { /*! * \brief The VAlarmStatus class * \details View for Model's Data representation. * * \sa Model::MAlarmStatus * */ class VAlarmStatus : public VAdjustmentResponseBase { Q_OBJECT // friends friend class ::tst_views; QString _location = QString(Storage::Settings_Category_AlarmsImagesLoc).arg(Storage::Settings_Path()); typedef QMap InstructionData; struct AlarmData { QString title = ""; QString message = ""; InstructionData instructions; bool hasInstruction() { return instructions.count(); } }; QMap _alarms; // ********** DYNAMIC PROPERTIES: The properties which need to be updated by each alarm message received. ********** // READONLY( bool , hasAlarm , false) PROPERTY( quint32 , alarm_Priority , 0) PROPERTY( quint32 , alarm_AlarmID , 0) PROPERTY( quint32 , alarm_EscalateIn , 0) PROPERTY( quint32 , alarm_MuteTimeout , 0) PROPERTY( bool , alarm_Flag_systemFault , false) PROPERTY( bool , alarm_Flag_stop , false) PROPERTY( bool , alarm_Flag_noClear , false) PROPERTY( bool , alarm_Flag_noResume , false) PROPERTY( bool , alarm_Flag_noRinseback , false) PROPERTY( bool , alarm_Flag_noEndTreatment , false) PROPERTY( bool , alarm_Flag_noNewTreatment , false) PROPERTY( bool , alarm_Flag_UserMustAck , false) PROPERTY( bool , alarm_Flag_alarmsToEscalate , false) PROPERTY( bool , alarm_Flag_alarmsSilenced , false) PROPERTY( bool , alarm_Flag_alarmsLampOn , false) // 3 reserved flags are here... // PROPERTY( bool , alarm_Flag_noMinimize , false) PROPERTY( bool , alarm_Flag_alarmsCondition , false) // ********** STATIC PROPERTIES: The properties which need to be updated by each alarm message received. ********** // Q_PROPERTY(QString title READ title NOTIFY alarm_AlarmIDChanged ) Q_PROPERTY(QString message READ message NOTIFY alarm_AlarmIDChanged ) Q_PROPERTY(QStringList instructionKeys READ instructionKeys NOTIFY alarm_AlarmIDChanged ) Q_PROPERTY(QStringList instructionValues READ instructionValues NOTIFY alarm_AlarmIDChanged ) Q_PROPERTY(QString text READ text NOTIFY alarm_AlarmIDChanged ) VIEW_DEC_CLASS ( VAlarmStatus ) VIEW_DEC_SLOT ( AlarmStatusData ) VIEW_DEC_SLOT ( SettingsData ) ADJUST_TRANSMT_SIGNAL ( AlarmSilenceRequestData ) ADJUST_TRANSMT_SIGNAL ( AlarmUserActionRequestData ) private: QString title (); QString message (); QStringList instructionKeys (); QStringList instructionValues (); QString text (); QString alarmIDText (GuiAlarmID vEnum); signals: void didAlarmRaise(); void didAlarmEmpty(); public slots: void doUserActionResume (); void doUserActionRinseback (); void doUserActionEnd (); void doUserActionOk (); void doSilence (); }; }