Index: scripts/run.sh =================================================================== diff -u -r5abbbc0d8019925283cc4b38c782afde9802aa35 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- scripts/run.sh (.../run.sh) (revision 5abbbc0d8019925283cc4b38c782afde9802aa35) +++ scripts/run.sh (.../run.sh) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -70,5 +70,5 @@ #fi #launching denali application, disable keep-alive -$HOME/denali -0 & +$HOME/denali & Index: sources/canbus/messageglobals.h =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/canbus/messageglobals.h (.../messageglobals.h) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/canbus/messageglobals.h (.../messageglobals.h) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -51,6 +51,7 @@ {Gui::GuiActionType::DialysateOutletFlow , 7 * 4 }, // 7 parameters each 4bytes {Gui::GuiActionType::TreatmentTime , 3 * 4 }, // 3 parameters each 4bytes {Gui::GuiActionType::PressureOcclusion , 5 * 4 }, // 5 parameters each 4bytes + {Gui::GuiActionType::AlarmSilence , 5 * 4 }, // 5 parameters each 4bytes // ---- {Gui::GuiActionType::AlarmStatus , 4 * 4 + 2 }, // 4 parameters each 4bytes + 1 parameter 2bytes Index: sources/canbus/messageinterpreter.cpp =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/canbus/messageinterpreter.cpp (.../messageinterpreter.cpp) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -100,17 +100,17 @@ break; case Gui::GuiActionType::AdjustBloodDialysateReq: + case Gui::GuiActionType::AdjustDurationReq: if (count) { vPayload = Format::fromVariant(vData); } break; - - case Gui::GuiActionType::AdjustDurationReq: + case Gui::GuiActionType::AlarmSilence: if (count) { vPayload = Format::fromVariant(vData); } - break; + break; default: QString mActionIdHexString = Format::toHexString(vActionId); LOG_ERROR(tr("Unknown Message ID (UI) '%1'").arg(mActionIdHexString)); Index: sources/gui/guiglobals.h =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/gui/guiglobals.h (.../guiglobals.h) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/gui/guiglobals.h (.../guiglobals.h) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -52,6 +52,7 @@ AlarmStatus = 0x0200, AlarmTriggered = 0x0300, AlarmCleared = 0x0400, + AlarmSilence = 0x0500, PressureOcclusion = 0x0900, Index: sources/gui/qml/components/NotificationBar.qml =================================================================== diff -u -rd4b88173e0d4a683a315d2fc57b8e1ec356b1232 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/gui/qml/components/NotificationBar.qml (.../NotificationBar.qml) (revision d4b88173e0d4a683a315d2fc57b8e1ec356b1232) +++ sources/gui/qml/components/NotificationBar.qml (.../NotificationBar.qml) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -48,4 +48,5 @@ onLevelChanged: { [_root.color, _text.color] = getRootTextFromAlarmLevel(level); } + } Index: sources/gui/qml/dialogs/NotificationDialog.qml =================================================================== diff -u -r2b4a6140359e88481ab2c516f3af29aabc652cd1 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision 2b4a6140359e88481ab2c516f3af29aabc652cd1) +++ sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -27,14 +27,15 @@ ModalDialog { id : _root property alias titleText : _title.text; property alias description : _desc.text; + property alias titleBarForeground : _title.color property alias titleBarBackground : _titleBar.color; property alias okayBtn : _okay; property alias dismissBtn : _dismiss; radius: 0; Rectangle { id: _titleBar; - color: Colors.backgroundAlarmTopBar; + color: Colors.alarmTopBarHighBg; height: _root.height / 4; width: _root.width; radius: _root.radius; @@ -50,6 +51,7 @@ } ColorOverlay { + id: _icon_overlay anchors.fill: _icon; source: _icon; color: _root.backgroundColor; @@ -88,7 +90,7 @@ text.text: qsTr("OKAY") borderColor: _root.textColor; property var callback: (function() { - console.debug("Pressed OKAY..."); + console.debug("Default OKAY Button callback...Override needed..."); }); button.onPressed: { _root.visible = false; @@ -100,7 +102,7 @@ text.text: qsTr("DISMISS") borderColor: _root.textColor; property var callback: (function() { - console.debug("Pressed DISMISS..."); + console.debug("Default DISMISS Button callback...Override needed..."); }); button.onPressed: { _root.visible = false; Index: sources/gui/qml/globals/Colors.qml =================================================================== diff -u -rd4b88173e0d4a683a315d2fc57b8e1ec356b1232 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision d4b88173e0d4a683a315d2fc57b8e1ec356b1232) +++ sources/gui/qml/globals/Colors.qml (.../Colors.qml) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -66,7 +66,7 @@ readonly property color fluidValue : "white" readonly property color fluidUnit : "#708795" - readonly property color textNotificationNoneBg : "white" + readonly property color textNotificationNoneBg : "transparent" readonly property color textNotificationNoneFg : "#1b2b3e" readonly property color textNotificationLowBg : "green" // ? @@ -78,6 +78,13 @@ readonly property color textNotificationHighBg : "#c53b33" // red readonly property color textNotificationHighFg : "white" - readonly property color backgroundAlarmTopBar : "#831913" + readonly property color alarmTopBarHighBg : "#831913" + readonly property color alarmTopBarHighFg : "white" + readonly property color alarmTopBarMedBg : "#db8f00" + readonly property color alarmTopBarMedFg : "white" + + readonly property color alarmTopBarLowBg : "#004700" + readonly property color alarmTopBarLowFg : "white" + } Index: sources/gui/qml/main.qml =================================================================== diff -u -r96b209c45bca6ad9a3e26a3762c936f28b0cf7b4 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/gui/qml/main.qml (.../main.qml) (revision 96b209c45bca6ad9a3e26a3762c936f28b0cf7b4) +++ sources/gui/qml/main.qml (.../main.qml) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -108,7 +108,25 @@ VTreatmentDialysateFlow { id: vTreatmentDialysateFlow } VTreatmentUltrafiltration { id: vTreatmentUltrafiltration } VTreatmentTime { id: vTreatmentTime } - VAlarmStatus { id: vAlarmStatus } + VAlarmStatus { id: vAlarmStatus + onRaiseAlarm: { + updateAlarm(); + + if (vAlarmStatus.alarm_Priority === GuiActions.ALARM_PRIORITY_HIGH) { + _notification.visible = true; + _alarm.visible = false; + } else { + if (!_notification.visible) { + _alarm.visible = true; + } + } + } + + onHideAlarm: { + _alarm.visible = false; + _notification.visible = false; + } + } VPowerOff { id: vPowerOff onPoweroffTriggered: { switch (vpoweroff) { @@ -175,18 +193,25 @@ id: _TouchArea anchors.fill: parent; onClicked: { - notification.visible = true; - notification.titleText = "Alarm"; - notification.description = vAlarmStatus.text; - [notification.backgroundColor, notification.textColor] = getRootTextFromAlarmLevel(vAlarmStatus.alarm_Priority); + updateAlarm(); + _notification.visible = true; _alarm.visible = false; - notification.dismissBtn.callback = (function() {vAlarmStatus.dismissAlarm();}); - notification.okayBtn.callback = (function() {vAlarmStatus.okayAlarm();}); + } } } - NotificationDialog { id: notification + function updateAlarm() { + _notification.titleText = "Alarm"; + _notification.description = vAlarmStatus.text; + [_notification.backgroundColor, _notification.textColor] = getRootTextFromAlarmLevel(vAlarmStatus.alarm_Priority); + [_notification.titleBarBackground, _notification.titleBarForeground] = getAlarmTopBarColors(vAlarmStatus.alarm_Priority); + _notification.dismissBtn.callback = (function() {_GuiView.doActionTransmit(GuiActions.AlarmSilence, + [GuiActions.Request, 1, 2, 3, 4, 5])}); + + } + + NotificationDialog { id: _notification onClosed: { _alarm.visible = true; } @@ -232,4 +257,29 @@ return [root_color, text_color]; } + + function getAlarmTopBarColors(level) { + let background = ""; + let foreground = ""; + switch (level) { + case GuiActions.ALARM_PRIORITY_HIGH: + background = Colors.alarmTopBarHighBg; + foreground = Colors.alarmTopBarHighFg; + break; + case GuiActions.ALARM_PRIORITY_MEDIUM: + background = Colors.alarmTopBarMedBg; + foreground = Colors.alarmTopBarMedFg; + break; + case GuiActions.ALARM_PRIORITY_LOW: + background = Colors.alarmTopBarLowBg; + foreground = Colors.alarmTopBarLowFg; + break; + default : // GuiActions.ALARM_PRIORITY_NONE + background = Colors.alarmTopBarLowBg; + foreground = Colors.alarmTopBarLowFg; + + } + return [background, foreground]; + + } } Index: sources/model/malarmstatus.cpp =================================================================== diff -u -rfa1f16359855b827d0e63e48df4f448ab11f54b9 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/model/malarmstatus.cpp (.../malarmstatus.cpp) (revision fa1f16359855b827d0e63e48df4f448ab11f54b9) +++ sources/model/malarmstatus.cpp (.../malarmstatus.cpp) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -65,58 +65,58 @@ QString result; switch (id) { - case GuiAlarmID::ALARM_ID_NO_ALARM: { result = ""; break; } - case GuiAlarmID::ALARM_ID_SOFTWARE_FAULT: { result = "Software Error"; break; } - case GuiAlarmID::ALARM_ID_STUCK_BUTTON_TEST_FAILED: { result = "Indication for when no alarms is a possible situation."; break; } - case GuiAlarmID::ALARM_ID_FPGA_POST_TEST_FAILED: { result = "FPGA POST failure."; break; } - case GuiAlarmID::ALARM_ID_WATCHDOG_POST_TEST_FAILED: { result = "Watchdog POST failure."; break; } - case GuiAlarmID::ALARM_ID_UI_COMM_POST_FAILED: { result = "UI communication POST failure."; break; } - case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK: { result = "Blood pump failed motor controller current check."; break; } - case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_SPEED_CHECK: { result = "Blood pump failed motor controller speed check."; break; } - case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK: { result = "Blood pump failed motor controller direction check."; break; } - case GuiAlarmID::ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK: { result = "Blood pump failed rotor speed check."; break; } - case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK: { result = "Dialysis inlet pump failed motor controller current check."; break; } - case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_SPEED_CHECK: { result = "Dialysis inlet pump failed motor controller speed check."; break; } - case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK: { result = "Dialysis inlet pump failed motor controller direction check."; break; } - case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK: { result = "Dialysis inlet pump failed rotor speed check. "; break; } - case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK: { result = "Dialysis outlet pump failed motor controller current check. "; break; } - case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_SPEED_CHECK: { result = "Dialysis outlet pump failed motor controller speed check. "; break; } - case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK: { result = "Dialysis outlet pump failed motor controller direction check. "; break; } - case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK: { result = "Dialysis outlet pump failed rotor speed check. "; break; } - case GuiAlarmID::ALARM_ID_WATCHDOG_EXPIRED: { result = "Watchdog expired error. "; break; } - case GuiAlarmID::ALARM_ID_RTC_COMM_ERROR: { result = "Real-time clock communication error. "; break; } - case GuiAlarmID::ALARM_ID_RTC_CONFIG_ERROR: { result = "Real-time clock configuration error. "; break; } - case GuiAlarmID::ALARM_ID_DG_COMM_TIMEOUT: { result = "Dialysate generator communication timeout. "; break; } - case GuiAlarmID::ALARM_ID_UI_COMM_TIMEOUT: { result = "User interface communication timeout. "; break; } - case GuiAlarmID::ALARM_ID_COMM_TOO_MANY_BAD_CRCS: { result = "Too many bad CRCs detected on received system messages. "; break; } - case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_BY_USER: { result = "Treatment stopped by user action - pressed stop button. "; break; } - case GuiAlarmID::ALARM_ID_BLOOD_SITTING_WARNING: { result = "Blood sitting too long warning (>4 min). "; break; } - case GuiAlarmID::ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RESUME: { result = "Blood sitting too long alarm (>5 min). "; break; } - case GuiAlarmID::ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RINSEBACK: { result = "Blood sitting too long alarm (>10 min). "; break; } - case GuiAlarmID::ALARM_ID_CAN_MESSAGE_NOT_ACKED: { result = "System message needing acknowledgment was not acknowledged. "; break; } - case GuiAlarmID::ALARM_ID_OCCLUSION_BLOOD_PUMP: { result = "Blood pump occlusion detected. "; break; } - case GuiAlarmID::ALARM_ID_OCCLUSION_DIAL_IN_PUMP: { result = "Dialysate inlet pump occlusion detected. "; break; } - case GuiAlarmID::ALARM_ID_OCCLUSION_DIAL_OUT_PUMP: { result = "Dialysate outlet pump occlusion detected. "; break; } - case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_LOW: { result = "Arterial pressure too low during treatment. "; break; } - case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_HIGH: { result = "Arterial pressure too high during treatment. "; break; } - case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_LOW: { result = "Venous pressure too low during treatment. "; break; } - case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_HIGH: { result = "Venous pressure too high during treatment."; break; } - case GuiAlarmID::ALARM_ID_UF_RATE_TOO_HIGH_ERROR: { result = "Ultrafiltration rate is too high error during treatment. "; break; } - case GuiAlarmID::ALARM_ID_UF_VOLUME_ACCURACY_ERROR: { result = "Ultrafiltration volume accuracy error during treatment. "; break; } - case GuiAlarmID::ALARM_ID_RTC_BATTERY_LOW: { result = "RTC battery low. "; break; } - case GuiAlarmID::ALARM_ID_RTC_OR_TIMER_ACCURACY_FAILURE: { result = "RTC or MCU timer inaccurate. "; break; } - case GuiAlarmID::ALARM_ID_RTC_RAM_OPS_ERROR: { result = "RTC or RAM operations failure (read or write). "; break; } - case GuiAlarmID::ALARM_ID_NVDATA_EEPROM_OPS_FAILURE: { result = "EEPRON operations (read, write, erase) failure. "; break; } - case GuiAlarmID::ALARM_ID_NVDATA_MFG_RECORD_CRC_ERROR: { result = "Manufacturing record CRC failure. "; break; } - case GuiAlarmID::ALARM_ID_NVDATA_SRVC_RECORD_CRC_ERROR: { result = "Service record CRC failure. "; break; } - case GuiAlarmID::ALARM_ID_NVDATA_CAL_RECORD_CRC_ERROR: { result = "Calibration record CRC failure. "; break; } - case GuiAlarmID::ALARM_ID_NVDATA_HW_USAGE_DATA_CRC_ERROR: { result = "HW usage data failure. "; break; } - case GuiAlarmID::AlARM_ID_NVDATA_DISINFECTION_DATE_CRC_ERROR: { result = "Last disinfection date CRC error "; break; } - case GuiAlarmID::ALARM_ID_RO_PUMP_OUT_PRESSURE_OUT_OF_RANGE: { result = "Pressure at outlet of RO pump is out of range. "; break; } - case GuiAlarmID::ALARM_ID_TEMPERATURE_SENSORS_OUT_OF_RANGE: { result = "DG temperature sensors ADC read out of range. "; break; } - case GuiAlarmID::ALARM_ID_TEMPERATURE_SENSORS_INCONSISTENT: { result = "DG temperature sensors values are inconsistent "; break; } - case GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT: { result = "HD communication timeout. "; break; } - default: { result = "Alarm Not Recognized"; break; } + case GuiAlarmID::ALARM_ID_NO_ALARM: { result = QObject::tr(""); break; } + case GuiAlarmID::ALARM_ID_SOFTWARE_FAULT: { result = QObject::tr("Software Error"); break; } + case GuiAlarmID::ALARM_ID_STUCK_BUTTON_TEST_FAILED: { result = QObject::tr("Indication for when no alarms is a possible situation."); break; } + case GuiAlarmID::ALARM_ID_FPGA_POST_TEST_FAILED: { result = QObject::tr("FPGA POST failure."); break; } + case GuiAlarmID::ALARM_ID_WATCHDOG_POST_TEST_FAILED: { result = QObject::tr("Watchdog POST failure."); break; } + case GuiAlarmID::ALARM_ID_UI_COMM_POST_FAILED: { result = QObject::tr("UI communication POST failure."); break; } + case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK: { result = QObject::tr("Blood pump failed motor controller current check."); break; } + case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_SPEED_CHECK: { result = QObject::tr("Blood pump failed motor controller speed check."); break; } + case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK: { result = QObject::tr("Blood pump failed motor controller direction check."); break; } + case GuiAlarmID::ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK: { result = QObject::tr("Blood pump failed rotor speed check."); break; } + case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK: { result = QObject::tr("Dialysis inlet pump failed motor controller current check."); break; } + case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_SPEED_CHECK: { result = QObject::tr("Dialysis inlet pump failed motor controller speed check."); break; } + case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK: { result = QObject::tr("Dialysis inlet pump failed motor controller direction check."); break; } + case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK: { result = QObject::tr("Dialysis inlet pump failed rotor speed check. "); break; } + case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK: { result = QObject::tr("Dialysis outlet pump failed motor controller current check. "); break; } + case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_SPEED_CHECK: { result = QObject::tr("Dialysis outlet pump failed motor controller speed check. "); break; } + case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK: { result = QObject::tr("Dialysis outlet pump failed motor controller direction check. "); break; } + case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK: { result = QObject::tr("Dialysis outlet pump failed rotor speed check. "); break; } + case GuiAlarmID::ALARM_ID_WATCHDOG_EXPIRED: { result = QObject::tr("Watchdog expired error. "); break; } + case GuiAlarmID::ALARM_ID_RTC_COMM_ERROR: { result = QObject::tr("Real-time clock communication error. "); break; } + case GuiAlarmID::ALARM_ID_RTC_CONFIG_ERROR: { result = QObject::tr("Real-time clock configuration error. "); break; } + case GuiAlarmID::ALARM_ID_DG_COMM_TIMEOUT: { result = QObject::tr("Dialysate generator communication timeout. "); break; } + case GuiAlarmID::ALARM_ID_UI_COMM_TIMEOUT: { result = QObject::tr("User interface communication timeout. "); break; } + case GuiAlarmID::ALARM_ID_COMM_TOO_MANY_BAD_CRCS: { result = QObject::tr("Too many bad CRCs detected on received system messages. "); break; } + case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_BY_USER: { result = QObject::tr("Treatment stopped by user action - pressed stop button. "); break; } + case GuiAlarmID::ALARM_ID_BLOOD_SITTING_WARNING: { result = QObject::tr("Blood sitting too long warning (>4 min). "); break; } + case GuiAlarmID::ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RESUME: { result = QObject::tr("Blood sitting too long alarm (>5 min). "); break; } + case GuiAlarmID::ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RINSEBACK: { result = QObject::tr("Blood sitting too long alarm (>10 min). "); break; } + case GuiAlarmID::ALARM_ID_CAN_MESSAGE_NOT_ACKED: { result = QObject::tr("System message needing acknowledgment was not acknowledged. "); break; } + case GuiAlarmID::ALARM_ID_OCCLUSION_BLOOD_PUMP: { result = QObject::tr("Blood pump occlusion detected. "); break; } + case GuiAlarmID::ALARM_ID_OCCLUSION_DIAL_IN_PUMP: { result = QObject::tr("Dialysate inlet pump occlusion detected. "); break; } + case GuiAlarmID::ALARM_ID_OCCLUSION_DIAL_OUT_PUMP: { result = QObject::tr("Dialysate outlet pump occlusion detected. "); break; } + case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_LOW: { result = QObject::tr("Arterial pressure too low during treatment. "); break; } + case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_HIGH: { result = QObject::tr("Arterial pressure too high during treatment. "); break; } + case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_LOW: { result = QObject::tr("Venous pressure too low during treatment. "); break; } + case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_HIGH: { result = QObject::tr("Venous pressure too high during treatment."); break; } + case GuiAlarmID::ALARM_ID_UF_RATE_TOO_HIGH_ERROR: { result = QObject::tr("Ultrafiltration rate is too high error during treatment. "); break; } + case GuiAlarmID::ALARM_ID_UF_VOLUME_ACCURACY_ERROR: { result = QObject::tr("Ultrafiltration volume accuracy error during treatment. "); break; } + case GuiAlarmID::ALARM_ID_RTC_BATTERY_LOW: { result = QObject::tr("RTC battery low. "); break; } + case GuiAlarmID::ALARM_ID_RTC_OR_TIMER_ACCURACY_FAILURE: { result = QObject::tr("RTC or MCU timer inaccurate. "); break; } + case GuiAlarmID::ALARM_ID_RTC_RAM_OPS_ERROR: { result = QObject::tr("RTC or RAM operations failure (read or write). "); break; } + case GuiAlarmID::ALARM_ID_NVDATA_EEPROM_OPS_FAILURE: { result = QObject::tr("EEPRON operations (read, write, erase) failure. "); break; } + case GuiAlarmID::ALARM_ID_NVDATA_MFG_RECORD_CRC_ERROR: { result = QObject::tr("Manufacturing record CRC failure. "); break; } + case GuiAlarmID::ALARM_ID_NVDATA_SRVC_RECORD_CRC_ERROR: { result = QObject::tr("Service record CRC failure. "); break; } + case GuiAlarmID::ALARM_ID_NVDATA_CAL_RECORD_CRC_ERROR: { result = QObject::tr("Calibration record CRC failure. "); break; } + case GuiAlarmID::ALARM_ID_NVDATA_HW_USAGE_DATA_CRC_ERROR: { result = QObject::tr("HW usage data failure. "); break; } + case GuiAlarmID::AlARM_ID_NVDATA_DISINFECTION_DATE_CRC_ERROR: { result = QObject::tr("Last disinfection date CRC error "); break; } + case GuiAlarmID::ALARM_ID_RO_PUMP_OUT_PRESSURE_OUT_OF_RANGE: { result = QObject::tr("Pressure at outlet of RO pump is out of range. "); break; } + case GuiAlarmID::ALARM_ID_TEMPERATURE_SENSORS_OUT_OF_RANGE: { result = QObject::tr("DG temperature sensors ADC read out of range. "); break; } + case GuiAlarmID::ALARM_ID_TEMPERATURE_SENSORS_INCONSISTENT: { result = QObject::tr("DG temperature sensors values are inconsistent "); break; } + case GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT: { result = QObject::tr("HD communication timeout. "); break; } + default: { result = QObject::tr("Alarm Not Recognized"); break; } } return result; Index: sources/view/valarmstatus.cpp =================================================================== diff -u -rd4b88173e0d4a683a315d2fc57b8e1ec356b1232 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/view/valarmstatus.cpp (.../valarmstatus.cpp) (revision d4b88173e0d4a683a315d2fc57b8e1ec356b1232) +++ sources/view/valarmstatus.cpp (.../valarmstatus.cpp) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -39,6 +39,11 @@ 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 )); + if (vData.mTop > GuiAlarmID::ALARM_ID_NO_ALARM) { + emit raiseAlarm(); + } else { + emit hideAlarm(); + } } /*! @@ -98,20 +103,3 @@ { return QString("%0").arg(static_cast(alarm_AlarmID())); } - -/*! - * \brief VAlarmStatus::dismissAlarm - * Callback from qml - alarm dismissed by user - */ -void VAlarmStatus::dismissAlarm() { - qDebug() << "Alarm dismissed"; - -} - -/*! - * \brief VAlarmStatus::okayAlarm - * Callback from qml - alarm acknowledged by user. - */ -void VAlarmStatus::okayAlarm() { - qDebug() << "Alarm acknowledged."; -} Index: sources/view/valarmstatus.h =================================================================== diff -u -rd4b88173e0d4a683a315d2fc57b8e1ec356b1232 -r6d62bbaca6363f7ff83715f78607cb60a4736771 --- sources/view/valarmstatus.h (.../valarmstatus.h) (revision d4b88173e0d4a683a315d2fc57b8e1ec356b1232) +++ sources/view/valarmstatus.h (.../valarmstatus.h) (revision 6d62bbaca6363f7ff83715f78607cb60a4736771) @@ -50,6 +50,9 @@ Q_PROPERTY(QString id READ id NOTIFY alarm_AlarmIDChanged) VIEW_DEC(VAlarmStatus, AlarmStatusData) +signals: + void raiseAlarm(); + void hideAlarm(); private: QString alarmPriorityText (GuiAlarmPriority vEnum); @@ -58,8 +61,6 @@ public slots: QString text(); QString id(); - void dismissAlarm(); - void okayAlarm(); };