Index: AlarmMapping.csv =================================================================== diff -u -ra5fe0c9504558ddafc2af2ccd852b8f311a00616 -r6f2622be80fcaee8d71baf78404627381157970c --- AlarmMapping.csv (.../AlarmMapping.csv) (revision a5fe0c9504558ddafc2af2ccd852b8f311a00616) +++ AlarmMapping.csv (.../AlarmMapping.csv) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -196,8 +196,8 @@ 195,"DG RO pump pressure out of range." 196,"DG temperature sensor error bit fault." 197,"DG temperature sensors FPGA fault." - 198,"Alarm ID available for use." - 199,"Alarm ID available for use." + 198,"RO flow too low while primary heater is on." + 199,"Dialysate flow too low while trimmer heater is on." 200,"DG thermistors/sensors temperature out of range." 201,"HD pre-treatment mode wet self-test lc vs FMD failure." 202,"HD pre-treatment mode dry pressure normal self-test failure." @@ -206,7 +206,7 @@ 205,"Conductivity sensor fault." 206,"DG dialysate fill runs out of time." 207,"DG flow meter check failure alarm." - 208,"Alarm ID available for use." + 208,"HD venous pressure occlusion alarm." 209,"DG drain circulation line timeout." 210,"HD battery pack detected an error." 211,"Blood sitting too long warning (>4 min)." Index: denali.pro.user =================================================================== diff -u -r627b97843f87f5ca8fbd731c6c4a6d9fae4352ce -r6f2622be80fcaee8d71baf78404627381157970c --- denali.pro.user (.../denali.pro.user) (revision 627b97843f87f5ca8fbd731c6c4a6d9fae4352ce) +++ denali.pro.user (.../denali.pro.user) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -1,6 +1,6 @@ - + EnvironmentId Index: sources/canbus/MessageInterpreter.cpp =================================================================== diff -u -r627b97843f87f5ca8fbd731c6c4a6d9fae4352ce -r6f2622be80fcaee8d71baf78404627381157970c --- sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 627b97843f87f5ca8fbd731c6c4a6d9fae4352ce) +++ sources/canbus/MessageInterpreter.cpp (.../MessageInterpreter.cpp) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -678,15 +678,15 @@ /*! * \brief MessageInterpreter::updateUnhandledMessages - * \return this method is converting the general settings messages/unhandled group of settings to the message interpreter specific map structure. + * \return this method is converting the general settings messages/unhandled (Storage::Settings_Category_MessagesUnhandled) group of settings to the message interpreter specific map structure. * it is done for performance to keep the lookup table shorter and faster. * This method is called by the chain of events when Application controller is done reading the settings and emits it didSettingsDone, * which Message dispatcher is listening to will call this function in its signal handler slot. */ void MessageInterpreter::updateUnhandledMessages() { - // DEBUG: qDebug() << _Settings.groups("messages/unhandled"); - for(const auto group: _Settings.groups("Messages/Unhandled")) { + // DEBUG: qDebug() << _Settings.groups(Storage::Settings_Category_MessagesUnhandled); + for(const auto group: _Settings.groups(Storage::Settings_Category_MessagesUnhandled)) { // DEBUG: qDebug() << _Settings.keys(group); bool ok; quint16 id = QString(group).toUInt(&ok,16); Index: sources/cloudsync/CloudSyncController.cpp =================================================================== diff -u -r86e9dfbff50cb7e16fd94c16c1c818cef3b47eac -r6f2622be80fcaee8d71baf78404627381157970c --- sources/cloudsync/CloudSyncController.cpp (.../CloudSyncController.cpp) (revision 86e9dfbff50cb7e16fd94c16c1c818cef3b47eac) +++ sources/cloudsync/CloudSyncController.cpp (.../CloudSyncController.cpp) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -522,7 +522,7 @@ data = Format::fromVariantList(vData); - if ( isDuplicate(messageID, data) ) { error = eError_Duplicate; args = { messageID }; ok = false; return ok; } // goto lErr; } don't log it just ignore and return false. + if ( isDuplicate(messageID, data) ) { error = eError_Duplicate; args = { messageID }; ok = false; return ok; } // TODO: goto lErr; } don't log it just ignore and return false. // store the last message data _uiHistory[messageID] = data; Index: sources/gui/qml/AlarmItem.qml =================================================================== diff -u -r79a6cfcb10472261f3ec26eaf0baf6f1245cd311 -r6f2622be80fcaee8d71baf78404627381157970c --- sources/gui/qml/AlarmItem.qml (.../AlarmItem.qml) (revision 79a6cfcb10472261f3ec26eaf0baf6f1245cd311) +++ sources/gui/qml/AlarmItem.qml (.../AlarmItem.qml) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -39,12 +39,13 @@ VAlarmStatus { id: vAlarmStatus } VAlarmActiveList { id: vAlarmActiveList } - readonly property alias backgroundColor: _alarmDialog.backgroundColor - readonly property alias textColor : _alarmDialog.textColor - readonly property alias text : vAlarmStatus.text - readonly property alias isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced - readonly property alias timeout : vAlarmStatus.alarm_MuteTimeout - readonly property alias alarm_AlarmID : vAlarmStatus.alarm_AlarmID + readonly property alias backgroundColor: _alarmDialog.backgroundColor + readonly property alias textColor : _alarmDialog.textColor + readonly property string title : vAlarmStatus.title + readonly property string message : vAlarmStatus.message + readonly property alias isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced + readonly property alias timeout : vAlarmStatus.alarm_MuteTimeout + readonly property alias alarm_AlarmID : vAlarmStatus.alarm_AlarmID function clearAlarm() { vAlarmStatus.doClearCondition() @@ -111,8 +112,8 @@ NotificationDialog { id : _alarmDialog // this will change later to the actual message text // and the instruction would be in the dialog content - titleText : qsTr("Alarm") + " " + "[" + vAlarmStatus.alarm_AlarmID + "]" - description : vAlarmStatus.text + titleText : vAlarmStatus.title + description : vAlarmStatus.message alarmID : vAlarmStatus.alarm_AlarmID isSilenced : vAlarmStatus.alarm_Flag_alarmsSilenced timeout : vAlarmStatus.alarm_MuteTimeout Index: sources/gui/qml/components/NotificationBar.qml =================================================================== diff -u -r27cc308ff5113a9386899d3c8f8b29962a8498e1 -r6f2622be80fcaee8d71baf78404627381157970c --- sources/gui/qml/components/NotificationBar.qml (.../NotificationBar.qml) (revision 27cc308ff5113a9386899d3c8f8b29962a8498e1) +++ sources/gui/qml/components/NotificationBar.qml (.../NotificationBar.qml) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -28,7 +28,7 @@ property alias isSilenced : _muteButton.isSilenced property alias timeout : _muteButton.timeout property alias backgroundColor : _root.color - property alias iconVisible : _muteImage.visible + property bool iconVisible : true property bool enableMute : true clip : true // the mute button expands so we need to clip the outside unwanted area. @@ -55,14 +55,14 @@ fadingProperyValue : backgroundColor } - Image { id: _muteImage - source: "qrc:/images/iAlarm" - anchors.right: _text.left - anchors.rightMargin: Variables.notificationBarIconMargin; - anchors.verticalCenter: parent.verticalCenter; - sourceSize.height: Variables.notificationBarIconHeight; - sourceSize.width: Variables.notificationBarIconWidth; - } + // Image { id: _muteImage + // source: "qrc:/images/iAlarm" + // anchors.right: _text.left + // anchors.rightMargin: Variables.notificationBarIconMargin; + // anchors.verticalCenter: parent.verticalCenter; + // sourceSize.height: Variables.notificationBarIconHeight; + // sourceSize.width: Variables.notificationBarIconWidth; + // } Text { id: _text color : Colors.textNotificationNoneFg Index: sources/gui/qml/dialogs/NotificationDialog.qml =================================================================== diff -u -r86e9dfbff50cb7e16fd94c16c1c818cef3b47eac -r6f2622be80fcaee8d71baf78404627381157970c --- sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision 86e9dfbff50cb7e16fd94c16c1c818cef3b47eac) +++ sources/gui/qml/dialogs/NotificationDialog.qml (.../NotificationDialog.qml) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -74,14 +74,14 @@ radius : _root.radius clip : true // the mute button expands so we need to clip the outside unwanted area. - Image { id: _icon - source: "qrc:/images/iAlarm" - anchors.horizontalCenter: _title.horizontalCenter - anchors.verticalCenter: _title.verticalCenter - anchors.horizontalCenterOffset: -_title.width + Variables.dialogIconHorizontalOffset; - height : Variables.alarmListIconDiameter - width : Variables.alarmListIconDiameter - } + // Image { id: _icon + // source: "qrc:/images/iAlarm" + // anchors.horizontalCenter: _title.horizontalCenter + // anchors.verticalCenter: _title.verticalCenter + // anchors.horizontalCenterOffset: -_title.width + Variables.dialogIconHorizontalOffset; + // height : Variables.alarmListIconDiameter + // width : Variables.alarmListIconDiameter + // } Text { id: _title color: Colors.textMain @@ -91,9 +91,12 @@ } MouseArea { id: _minimizeArea - enabled : _root.minVisible - anchors.fill: parent - onClicked : _root.minimizeClicked() + // this object is not exposed so cannot be missused by the child component, so here it can be enabled and being handled by the minVisible property + // enabled : _root.minVisible + anchors.fill : parent + onClicked : { if ( _root.minVisible ) _root.minimizeClicked() } // if can be minimized (minVisible = true ), call the minimizeClinked signal (norma behavior) + onDoubleClicked : { if ( ! _root.minVisible ) _sdcProgressItem.doubleClicked() } // if can NOT be minimized (minVisible = false), call the sdcard.double click to pop the DiagnosticsDialog + // TODO: disable doubleClicked later. this is only for diagnostic purpose when alarm dialog covers the entire screen. } UpDownButton { id: _minimizeButton @@ -134,17 +137,11 @@ hourZero : false minuteZero : true } - - // TODO: disable this later. this is only for diagnostic purpose when alarm dialog covers the entire screen. - MouseArea { - anchors.fill: _icon - onClicked : if ( _minimizeArea.enabled ) _root.minimizeClicked() - onDoubleClicked : _sdcProgressItem.doubleClicked() - } } Rectangle { id: _descReect color: Colors.transparent + clip : true anchors { fill : parent topMargin : 5 + _titleBar .height @@ -216,4 +213,16 @@ selectColor : Qt.darker(_root.backgroundColor, 1.15) } } + + Text { id: _alarmID + text : qsTr("ID") + ":" + _root.alarmID + anchors { + left : parent.left + bottom : parent.bottom + leftMargin : 5 + bottomMargin: 5 + } + color : Colors.textMain + font.pixelSize : Fonts.fontPixelDialogText + } } Index: sources/gui/qml/main.qml =================================================================== diff -u -ra04fd119778f0483cba5139a11e3c6bad7f2324a -r6f2622be80fcaee8d71baf78404627381157970c --- sources/gui/qml/main.qml (.../main.qml) (revision a04fd119778f0483cba5139a11e3c6bad7f2324a) +++ sources/gui/qml/main.qml (.../main.qml) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -336,7 +336,6 @@ font.pixelSize: 14 } - SDCProgressItem { id: _sdcProgressItem // TODO: disable this later. this is only for diagnostic purpose. onDoubleClicked : { @@ -356,13 +355,13 @@ // this dialog as an exception can cover the Alarm for debugging and testing. DiagnosticsDialog { id: _diagnosticsDialog; z: 999 } - // NotificationBar has to be anchored to the main menu and if it is moved into the AlarmItem - // then cannot be anchored. + // Note: NotificationBar has to be anchored to the main menu and if it is moved into the AlarmItem + // then cannot be anchored. NotificationBar { id: _alarmBar anchors.bottom : _mainMenu.top backgroundColor : _alarmItem.backgroundColor textColor : _alarmItem.textColor - text : _alarmItem.text + text : _alarmItem.message isSilenced : _alarmItem.isSilenced timeout : _alarmItem.timeout backgroundFading : vHDOperationMode.fault Index: sources/gui/qml/pages/TreatmentFlowBase.qml =================================================================== diff -u -r86e9dfbff50cb7e16fd94c16c1c818cef3b47eac -r6f2622be80fcaee8d71baf78404627381157970c --- sources/gui/qml/pages/TreatmentFlowBase.qml (.../TreatmentFlowBase.qml) (revision 86e9dfbff50cb7e16fd94c16c1c818cef3b47eac) +++ sources/gui/qml/pages/TreatmentFlowBase.qml (.../TreatmentFlowBase.qml) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -169,20 +169,18 @@ } Connections { target: vSettings - onSettingsChanged : { + onInstructionsChanged : { if ( instructionBased ) { let stepName = header.stepNames[stackStepIndex] if ( stepName === undefined ) stepName = "" let group = vSettings.groupFormat.arg(stepName).arg(title.text) - let settingsGroup = vSettings.settings[group] - // DEBUG : - // var settingsCategory = vSettings.category["Instructions/Instructions"] - if ( settingsGroup !== undefined ) { + let instructionsGroup = vSettings.instructions[group] + if ( instructionsGroup !== undefined ) { // DEBUG : // console.debug(" 00000 ", group, settingsGroup, settingsCategory.groups) - _root.instructionlocation = settingsGroup.location - _root.instructionStepNames = settingsGroup.keys - _root.instructionStepImages = settingsGroup.values + _root.instructionlocation = instructionsGroup.location + _root.instructionStepNames = instructionsGroup.keys + _root.instructionStepImages = instructionsGroup.values } } } Index: sources/gui/qml/pages/settings/SettingsDG.qml =================================================================== diff -u -r7e503c5459ec77a2816d6c7789da9b206cedbe8a -r6f2622be80fcaee8d71baf78404627381157970c --- sources/gui/qml/pages/settings/SettingsDG.qml (.../SettingsDG.qml) (revision 7e503c5459ec77a2816d6c7789da9b206cedbe8a) +++ sources/gui/qml/pages/settings/SettingsDG.qml (.../SettingsDG.qml) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -34,7 +34,7 @@ * on daily cycle at certain time of the day */ SettingsBase { id: _root - QtObject { id: vSettingsDG + QtObject { id: _settingsDG property string status: "" function doConfirm(vWaterFlushScheduleTimeHour , vWaterFlushScheduleTimeMinute , @@ -65,9 +65,9 @@ confirmVisible : false // TODO : phase 1 doesn't have this feature (disinfection schedule) confirmEnabled : _root.isValid firstFocusInput : _waterFlushScheduleTime - notificationText: vSettingsDG.status + notificationText: _settingsDG.status onConfirmClicked: { - vSettingsDG.doConfirm( + _settingsDG.doConfirm( _waterFlushScheduleTime .hour , _waterFlushScheduleTime .minute , _waterFlushScheduleCycle .text , Index: sources/model/hd/alarm/MAlarmMapping.cpp =================================================================== diff -u -r7d3e62c5b13f555eee253ba81d62dd62da6a3097 -r6f2622be80fcaee8d71baf78404627381157970c --- sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision 7d3e62c5b13f555eee253ba81d62dd62da6a3097) +++ sources/model/hd/alarm/MAlarmMapping.cpp (.../MAlarmMapping.cpp) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -7,7 +7,7 @@ * * \file MAlarmMapping.cpp * \author (last) Behrouz NematiPour - * \date (last) 27-Jul-2022 + * \date (last) 03-Aug-2022 * \author (original) Behrouz NematiPour * \date (original) 03-May-2021 * @@ -33,298 +33,298 @@ QString result; if ( vAlarmID == 0 ) return result; switch (vAlarmID) { -/*0000*/case GuiAlarmID::ALARM_ID_NO_ALARM : { result = QObject::tr("Indication for when no alarms is a possible situation." ); break; } /* 0*/ -/*0001*/case GuiAlarmID::ALARM_ID_STUCK_BUTTON_TEST_FAILED : { result = QObject::tr("Stuck button POST failure.\nStop or Off button detected to be pressed for at least 1 second during test shortly after power up." ); break; } /* 1*/ -/*0002*/case GuiAlarmID::ALARM_ID_HD_FPGA_POST_TEST_FAILED : { result = QObject::tr("HD FPGA POST failure." ); break; } /* 2*/ -/*0003*/case GuiAlarmID::ALARM_ID_DG_FPGA_POST_TEST_FAILED : { result = QObject::tr("DG FPGA POST failure." ); break; } /* 3*/ -/*0004*/case GuiAlarmID::ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED : { result = QObject::tr("HD Watchdog POST failure." ); break; } /* 4*/ -/*0005*/case GuiAlarmID::ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED : { result = QObject::tr("DG Watchdog POST failure." ); break; } /* 5*/ -/*0006*/case GuiAlarmID::ALARM_ID_UI_COMM_POST_FAILED : { result = QObject::tr("UI communication POST failure.\nUI failed to communicate within a reasonable time after power up." ); break; } /* 6*/ -/*0007*/case GuiAlarmID::ALARM_ID_HD_RTC_BATTERY_LOW : { result = QObject::tr("HD RTC battery low." ); break; } /* 7*/ -/*0008*/case GuiAlarmID::ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE : { result = QObject::tr("HD accelerometer failed POST." ); break; } /* 8*/ -/*0009*/case GuiAlarmID::ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE : { result = QObject::tr("DG accelerometer failed POST." ); break; } /* 9*/ -/*0010*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_FAULT : { result = QObject::tr("Alarm ID available for use." ); break; } /* 10*/ -/*0011*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_FAILURE : { result = QObject::tr("Alarm ID available for use." ); break; } /* 11*/ -/*0012*/case GuiAlarmID::ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED : { result = QObject::tr("HD firmware image integrity POST test failed." ); break; } /* 12*/ -/*0013*/case GuiAlarmID::ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED : { result = QObject::tr("DG firmware image integrity POST test failed." ); break; } /* 13*/ -/*0014*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_INVALID_CALIBRATION : { result = QObject::tr("HD blood flow invalid calibration." ); break; } /* 14*/ -/*0015*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_INVALID_CALIBRATION : { result = QObject::tr("HD dialysate flow invalid calibration." ); break; } /* 15*/ -/*0016*/case GuiAlarmID::ALARM_ID_HD_ALARM_AUDIO_SELF_TEST_FAILURE : { result = QObject::tr("HD alarm audio failed POST." ); break; } /* 16*/ -/*0017*/case GuiAlarmID::ALARM_ID_HD_UI_POST_FAILED : { result = QObject::tr("HD UI POST failed." ); break; } /* 17*/ -/*0018*/case GuiAlarmID::ALARM_ID_DG_PRESSURE_SENSORS_INVALID_CAL_RECORD : { result = QObject::tr("DG load cells invalid calibration record." ); break; } /* 18*/ -/*0019*/case GuiAlarmID::ALARM_ID_DG_FLOW_SENSORS_INVALID_CAL_RECORD : { result = QObject::tr("DG flow sensors invalid calibration record." ); break; } /* 19*/ -/*0020*/case GuiAlarmID::ALARM_ID_DG_COND_SENSORS_INVALID_CAL_RECORD : { result = QObject::tr("DG conductivity sensors invalid calibration record." ); break; } /* 20*/ -/*0021*/case GuiAlarmID::ALARM_ID_DG_DRAIN_LINE_VOLUME_INVALID_CAL_RECORD : { result = QObject::tr("DG drain line volume invalid calibration record." ); break; } /* 21*/ -/*0022*/case GuiAlarmID::ALARM_ID_DG_RESERVOIRS_INVALID_CAL_RECORD : { result = QObject::tr("DG reservoirs invalid calibration record." ); break; } /* 22*/ -/*0023*/case GuiAlarmID::ALARM_ID_DG_ACID_CONCENTRATE_INVALID_CAL_RECORD : { result = QObject::tr("DG acid concentrate calibration record." ); break; } /* 23*/ -/*0024*/case GuiAlarmID::ALARM_ID_DG_BICARB_CONCENTRATE_INVALID_CAL_RECORD : { result = QObject::tr("DG bicarb concentrate calibration record." ); break; } /* 24*/ -/*0025*/case GuiAlarmID::ALARM_ID_DG_ACCELEROMETERS_INVALID_CAL_RECORD : { result = QObject::tr("DG accelerometer invalid calibration record." ); break; } /* 25*/ -/*0026*/case GuiAlarmID::ALARM_ID_HD_ACCELEROMETERS_INVALID_CAL_RECORD : { result = QObject::tr("HD accelerometer invalid calibration record." ); break; } /* 26*/ -/*0027*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_INVALID_CAL_RECORD : { result = QObject::tr("HD blood flow invalid calibration record." ); break; } /* 27*/ -/*0028*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_INVALID_CAL_RECORD : { result = QObject::tr("HD dialyzer flow invalid calibration record." ); break; } /* 28*/ -/*0029*/case GuiAlarmID::ALARM_ID_HD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("HD heparin force sensor invalid calibration record." ); break; } /* 29*/ -/*0030*/case GuiAlarmID::ALARM_ID_HD_SOFTWARE_FAULT : { result = QObject::tr("HD Software fault.\nSoftware found itself in an unexpected state." ); break; } /* 30*/ -/*0031*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK : { result = QObject::tr("Blood pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running." ); break; } /* 31*/ -/*0032*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_OFF_CHECK : { result = QObject::tr("Blood pump failed motor off check.\nMeasured speed while commanded off." ); break; } /* 32*/ -/*0033*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK : { result = QObject::tr("Blood pump failed motor direction check.\nMeasured vs commanded." ); break; } /* 33*/ -/*0034*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK : { result = QObject::tr("Blood pump failed rotor speed check.\nMismatch with rotor and motor speeds." ); break; } /* 34*/ -/*0035*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK : { result = QObject::tr("Dialysis inlet pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running." ); break; } /* 35*/ -/*0036*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_OFF_CHECK : { result = QObject::tr("Dialysis inlet pump failed motor off check.\nMeasured speed while commanded off." ); break; } /* 36*/ -/*0037*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK : { result = QObject::tr("Dialysis inlet pump failed motor direction check.\nMeasured vs commanded." ); break; } /* 37*/ -/*0038*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK : { result = QObject::tr("Dialysis inlet pump failed rotor speed check.\nMismatch with rotor and motor speeds." ); break; } /* 38*/ -/*0039*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK : { result = QObject::tr("Dialysis outlet pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running." ); break; } /* 39*/ -/*0040*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_OFF_CHECK : { result = QObject::tr("Dialysis outlet pump failed motor off check.\nMeasured speed while commanded off." ); break; } /* 40*/ -/*0041*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK : { result = QObject::tr("Dialysis outlet pump failed motor direction check.\nMeasured vs commanded." ); break; } /* 41*/ -/*0042*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK : { result = QObject::tr("Dialysis outlet pump failed rotor speed check.\nMismatch with rotor and motor speeds." ); break; } /* 42*/ -/*0043*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_FAULT : { result = QObject::tr("HD blood leak self test fault." ); break; } /* 43*/ -/*0044*/case GuiAlarmID::ALARM_ID_UI_COMM_TIMEOUT : { result = QObject::tr("User interface communication timeout." ); break; } /* 44*/ -/*0045*/case GuiAlarmID::ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS : { result = QObject::tr("HD too many bad communications CRC." ); break; } /* 45*/ -/*0046*/case GuiAlarmID::ALARM_ID_CAN_MESSAGE_NOT_ACKED : { result = QObject::tr("System message that required acknowledgment was not acknowledged." ); break; } /* 46*/ -/*0047*/case GuiAlarmID::ALARM_ID_UF_RATE_TOO_HIGH_ERROR : { result = QObject::tr("Ultrafiltration rate is too high error during treatment." ); break; } /* 47*/ -/*0048*/case GuiAlarmID::ALARM_ID_UF_VOLUME_ACCURACY_ERROR : { result = QObject::tr("Ultrafiltration volume accuracy error during treatment." ); break; } /* 48*/ -/*0049*/case GuiAlarmID::ALARM_ID_HD_FPGA_COMM_TIMEOUT : { result = QObject::tr("HD FPGA communication down for too long." ); break; } /* 49*/ -/*0050*/case GuiAlarmID::ALARM_ID_VALVE_CONTROL_FAILURE : { result = QObject::tr("FPGA not accepting commanded valve states." ); break; } /* 50*/ -/*0051*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MOTOR_SPEED_CHECK : { result = QObject::tr("Blood pump failed motor speed check.\nMeasured vs commanded." ); break; } /* 51*/ -/*0052*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MOTOR_SPEED_CHECK : { result = QObject::tr("Dialysate inlet pump failed motor speed check.\nMeasured vs commanded." ); break; } /* 52*/ -/*0053*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK : { result = QObject::tr("Dialysate outlet pump failed motor speed check.\nMeasured vs commanded." ); break; } /* 53*/ -/*0054*/case GuiAlarmID::ALARM_ID_HD_CRITICAL_DATA_ERROR : { result = QObject::tr("HD critical data integrity check failed." ); break; } /* 54*/ -/*0055*/case GuiAlarmID::ALARM_ID_DG_CRITICAL_DATA_ERROR : { result = QObject::tr("DG critical data integrity check failed." ); break; } /* 55*/ -/*0056*/case GuiAlarmID::ALARM_ID_HD_ACCELEROMETER_FAILURE : { result = QObject::tr("HD accelerometer error (no readings or FPGA reports error)." ); break; } /* 56*/ -/*0057*/case GuiAlarmID::ALARM_ID_DG_ACCELEROMETER_FAILURE : { result = QObject::tr("DG accelerometer error (no readings or FPGA reports error)." ); break; } /* 57*/ -/*0058*/case GuiAlarmID::ALARM_ID_HD_VALVE_HOMING_FAILED : { result = QObject::tr("HD valve homing failed." ); break; } /* 58*/ -/*0059*/case GuiAlarmID::ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT : { result = QObject::tr("HD valve transition time out." ); break; } /* 59*/ -/*0060*/case GuiAlarmID::ALARM_ID_HD_VALVE_NOT_FUNCTIONAL : { result = QObject::tr("HD valve not functional." ); break; } /* 60*/ -/*0061*/case GuiAlarmID::ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE : { result = QObject::tr("HD valve current out of range." ); break; } /* 61*/ -/*0062*/case GuiAlarmID::ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE : { result = QObject::tr("HD valve position out of target." ); break; } /* 62*/ -/*0063*/case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_SENSOR_FAULT : { result = QObject::tr("FPGA reports failure reading arterial pressure sensor." ); break; } /* 63*/ -/*0064*/case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_SENSOR_FAULT : { result = QObject::tr("FPGA reports failure reading venous pressure sensor." ); break; } /* 64*/ -/*0065*/case GuiAlarmID::ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT : { result = QObject::tr("HD requests DG command with invalid parameter fault." ); break; } /* 65*/ -/*0066*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE : { result = QObject::tr("HD blood leak sensor set point set failure." ); break; } /* 66*/ -/*0067*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE : { result = QObject::tr("HD blood pump occlusion self-test failure alarm." ); break; } /* 67*/ -/*0068*/case GuiAlarmID::ALARM_ID_HD_ACTIVE_RESERVOIR_RECIRCULATION_OUT_OF_RANGE : { result = QObject::tr("HD active reservoir recirculation out of range." ); break; } /* 68*/ -/*0069*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD : { result = QObject::tr("HD blood leak sensor invalid calibration record." ); break; } /* 69*/ -/*0070*/case GuiAlarmID::ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE : { result = QObject::tr("HD arterial pressure self-test failure alarm." ); break; } /* 70*/ -/*0071*/case GuiAlarmID::ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE : { result = QObject::tr("HD venous pressure self-test failure alarm." ); break; } /* 71*/ -/*0072*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_STATUS_SELF_TEST_FAILURE : { result = QObject::tr("HD blood flow meter status check self-test failure alarm." ); break; } /* 72*/ -/*0073*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_STATUS_SELF_TEST_FAILURE : { result = QObject::tr("HD dialysate flow meter status check self-test failure alarm." ); break; } /* 73*/ -/*0074*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_SEND_TIMEOUT : { result = QObject::tr("HD blood leak detector self-test transmit timeout." ); break; } /* 74*/ -/*0075*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SELF_TEST_FAILURE : { result = QObject::tr("HD syringe pump self-test failure alarm." ); break; } /* 75*/ -/*0076*/case GuiAlarmID::ALARM_ID_HD_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("HD monitored voltage is out of range." ); break; } /* 76*/ -/*0077*/case GuiAlarmID::ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG monitored voltage is out of range." ); break; } /* 77*/ -/*0078*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR : { result = QObject::tr("HD syringe pump direction (from encoder) error." ); break; } /* 78*/ -/*0079*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR : { result = QObject::tr("HD syringe pump direction (from controller) error." ); break; } /* 79*/ -/*0080*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_FAULT : { result = QObject::tr("HD syringe pump fault reported by FPGA." ); break; } /* 80*/ -/*0081*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_OVER_TRAVEL_ERROR : { result = QObject::tr("HD syringe pump over travel error." ); break; } /* 81*/ -/*0082*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_DAC_WRITE_ERROR : { result = QObject::tr("HD syringe pump DAC write failure." ); break; } /* 82*/ -/*0083*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR : { result = QObject::tr("HD syringe pump is running while the BP is off." ); break; } /* 83*/ -/*0084*/case GuiAlarmID::ALARM_ID_HD_VENOUS_PRESSURE_READ_TIMEOUT_ERROR : { result = QObject::tr("HD venous pressure sensor not being read." ); break; } /* 84*/ -/*0085*/case GuiAlarmID::ALARM_ID_PUMP_TRACK_LATCH_OPENED : { result = QObject::tr("HD pump track latch opened alarm." ); break; } /* 85*/ -/*0086*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_READ_TIMEOUT_ERROR : { result = QObject::tr("HD BP occlusion sensor not being read." ); break; } /* 86*/ -/*0087*/case GuiAlarmID::ALARM_ID_DG_HEATING_INVALID_CAL_RECORD : { result = QObject::tr("DG heating invalid calibration record." ); break; } /* 87*/ -/*0088*/case GuiAlarmID::ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE : { result = QObject::tr("DG concentrate pumps hall sensor out of range." ); break; } /* 88*/ -/*0089*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_SENSOR_ERROR : { result = QObject::tr("HD BP occlusion sensor error." ); break; } /* 89*/ -/*0090*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_FPGA_READ_ERROR : { result = QObject::tr("DG load cells FPGA read error." ); break; } /* 90*/ -/*0091*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_DATA_NOT_RECEIVE : { result = QObject::tr("HD No dialysate flow data receive in the last 3 seconds." ); break; } /* 91*/ -/*0092*/case GuiAlarmID::ALARM_ID_DG_CONDUCTIVITY_SENSOR_BAD_STATUS : { result = QObject::tr("DG conductivity sensor bad status." ); break; } /* 92*/ -/*0093*/case GuiAlarmID::ALARM_ID_DG_OUTLET_PRIMARY_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("DG outlet primary conductivity out of range." ); break; } /* 93*/ -/*0094*/case GuiAlarmID::ALARM_ID_DG_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("DG pressure out of range." ); break; } /* 94*/ -/*0095*/case GuiAlarmID::ALARM_ID_DG_WATCHDOG_EXPIRED : { result = QObject::tr("DG watchdog expired." ); break; } /* 95*/ -/*0096*/case GuiAlarmID::ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE : { result = QObject::tr("Inlet water temperature in high range." ); break; } /* 96*/ -/*0097*/case GuiAlarmID::ALARM_ID_FILL_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Fill conductivity out of range." ); break; } /* 97*/ -/*0098*/case GuiAlarmID::ALARM_ID_HD_BATTERY_COMM_FAULT : { result = QObject::tr("HD battery communication fault." ); break; } /* 98*/ -/*0099*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_STALL : { result = QObject::tr("HD syringe pump stall alarm." ); break; } /* 99*/ -/*0100*/case GuiAlarmID::ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT : { result = QObject::tr("HD no cartridge self-test timeout." ); break; } /* 100*/ -/*0101*/case GuiAlarmID::ALARM_ID_HD_DRY_SELF_TEST_TIMEOUT : { result = QObject::tr("HD dry self-test timeout." ); break; } /* 101*/ -/*0102*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANAGE : { result = QObject::tr("DG heat disinfect temperature gradient out of range." ); break; } /* 102*/ -/*0103*/case GuiAlarmID::ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID : { result = QObject::tr("HD non-volatile calibration group invalid record CRC." ); break; } /* 103*/ -/*0104*/case GuiAlarmID::ALARM_ID_AIR_TRAP_ILLEGAL_LEVELS : { result = QObject::tr("Air trap level sensors reporting illegal combination of air/fluid." ); break; } /* 104*/ -/*0105*/case GuiAlarmID::ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID : { result = QObject::tr("DG non-volatile system group invalid record CRC." ); break; } /* 105*/ -/*0106*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_FLOW_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("DG dialysate flow sensor invalid calibration record." ); break; } /* 106*/ -/*0107*/case GuiAlarmID::ALARM_ID_DG_RESTARTED_FAULT : { result = QObject::tr("HD reports DG restarted fault." ); break; } /* 107*/ -/*0108*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_ADC_ERROR : { result = QObject::tr("HD syringe pump ADC error." ); break; } /* 108*/ -/*0109*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR : { result = QObject::tr("HD syringe pump volume check error." ); break; } /* 109*/ -/*0110*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR : { result = QObject::tr("HD syringe pump speed check error." ); break; } /* 110*/ -/*0111*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR : { result = QObject::tr("HD syringe pump not stopped in off state error." ); break; } /* 111*/ -/*0112*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_ZERO_CMD_SEND_TIMEOUT : { result = QObject::tr("HD blood leak zero command transmit timeout." ); break; } /* 112*/ -/*0113*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_ZERO_CMD_FAULT : { result = QObject::tr("HD blood leak zero command fault." ); break; } /* 113*/ -/*0114*/case GuiAlarmID::ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE : { result = QObject::tr("HD venous air bubble detector self-test failure." ); break; } /* 114*/ -/*0115*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE : { result = QObject::tr("DG temperature sensor out of range." ); break; } /* 115*/ -/*0116*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSORS_ADC_FAULT : { result = QObject::tr("DG temperature sensor ADC fault." ); break; } /* 116*/ -/*0117*/case GuiAlarmID::ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED : { result = QObject::tr("DG CAN message not acked." ); break; } /* 117*/ -/*0118*/case GuiAlarmID::ALARM_ID_DG_RTC_CONFIG_ERROR : { result = QObject::tr("DG RTC config error." ); break; } /* 118*/ -/*0119*/case GuiAlarmID::ALARM_ID_DG_RTC_BATTERY_LOW : { result = QObject::tr("DG RTC battery low error." ); break; } /* 119*/ -/*0120*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_WET_PRIME_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode wet self-test prime check failure." ); break; } /* 120*/ -/*0121*/case GuiAlarmID::ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG main primary heater voltage out of range." ); break; } /* 121*/ -/*0122*/case GuiAlarmID::ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG small primary heater voltage out of range." ); break; } /* 122*/ -/*0123*/case GuiAlarmID::ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG trimmer heater voltage out of range." ); break; } /* 123*/ -/*0124*/case GuiAlarmID::ALARM_ID_END_OF_TREATMENT_HIGH : { result = QObject::tr("HD end of treatment alarm (high priority)." ); break; } /* 124*/ -/*0125*/case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_NO_RINSEBACK : { result = QObject::tr("Blood sitting too long after treatment stopped by user alarm (>5 min)." ); break; } /* 125*/ -/*0126*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_DETECTED : { result = QObject::tr("HD blood leak detected alarm." ); break; } /* 126*/ -/*0127*/case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_LOW : { result = QObject::tr("Venous pressure too low during treatment." ); break; } /* 127*/ -/*0128*/case GuiAlarmID::ALARM_ID_HD_VENOUS_BUBBLE_DETECTED : { result = QObject::tr("HD venous air bubble detected alarm." ); break; } /* 128*/ -/*0129*/case GuiAlarmID::ALARM_ID_HD_VENOUS_BUBBLE_DETECTED_RINSEBACK : { result = QObject::tr("HD venous air bubble detected rinseback alarm." ); break; } /* 129*/ -/*0130*/case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_HIGH : { result = QObject::tr("Venous pressure too high during treatment." ); break; } /* 130*/ -/*0131*/case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_LOW : { result = QObject::tr("Arterial pressure too low during treatment." ); break; } /* 131*/ -/*0132*/case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_HIGH : { result = QObject::tr("Arterial pressure too high during treatment." ); break; } /* 132*/ -/*0133*/case GuiAlarmID::ALARM_ID_DG_FLUID_LEAK_DETECTED : { result = QObject::tr("DG fluid leak detected alarm." ); break; } /* 133*/ -/*0134*/case GuiAlarmID::ALARM_ID_HD_FLUID_LEAK_DETECTED : { result = QObject::tr("HD fluid leak detected alarm." ); break; } /* 134*/ -/*0135*/case GuiAlarmID::ALARM_ID_HD_SHOCK : { result = QObject::tr("HD experienced large acceleration." ); break; } /* 135*/ -/*0136*/case GuiAlarmID::ALARM_ID_DG_SHOCK : { result = QObject::tr("DG experienced large acceleration." ); break; } /* 136*/ -/*0137*/case GuiAlarmID::ALARM_ID_HD_EXCESSIVE_TILT : { result = QObject::tr("HD tilt exceeds maximum." ); break; } /* 137*/ -/*0138*/case GuiAlarmID::ALARM_ID_DG_EXCESSIVE_TILT : { result = QObject::tr("DG tilt exceeds maximum." ); break; } /* 138*/ -/*0139*/case GuiAlarmID::ALARM_ID_HD_AC_POWER_LOST : { result = QObject::tr("HD AC power lost alarm." ); break; } /* 139*/ -/*0140*/case GuiAlarmID::ALARM_ID_DG_COMM_TIMEOUT : { result = QObject::tr("Dialysate generator communication timeout." ); break; } /* 140*/ -/*0141*/case GuiAlarmID::ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT : { result = QObject::tr("Air trap fill timeout during treatment." ); break; } /* 141*/ -/*0142*/case GuiAlarmID::ALARM_ID_OCCLUSION_BLOOD_PUMP : { result = QObject::tr("Blood pump occlusion detected." ); break; } /* 142*/ -/*0143*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE : { result = QObject::tr("DG dialysate temperature sensors out of range." ); break; } /* 143*/ -/*0144*/case GuiAlarmID::ALARM_ID_DG_RO_FLOW_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("DG RO flow sensor invalid calibration record." ); break; } /* 144*/ -/*0145*/case GuiAlarmID::ALARM_ID_ACID_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Concentrate conductivity after adding acid out of range alarm." ); break; } /* 145*/ -/*0146*/case GuiAlarmID::ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE : { result = QObject::tr("DG RTC or timer accuracy failure." ); break; } /* 146*/ -/*0147*/case GuiAlarmID::ALARM_ID_CREATING_DIALYSATE_PLEASE_WAIT : { result = QObject::tr("Wait for the DG to produce dialysate." ); break; } /* 147*/ -/*0148*/case GuiAlarmID::ALARM_ID_INLET_WATER_HIGH_TEMPERATURE : { result = QObject::tr("Inlet water temperature too high." ); break; } /* 148*/ -/*0149*/case GuiAlarmID::ALARM_ID_HD_WATCHDOG_EXPIRED : { result = QObject::tr("HD watchdog expired." ); break; } /* 149*/ -/*0150*/case GuiAlarmID::ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE : { result = QObject::tr("Inlet water conductivity in high range." ); break; } /* 150*/ -/*0151*/case GuiAlarmID::ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE : { result = QObject::tr("Inlet water conductivity in low range." ); break; } /* 151*/ -/*0152*/case GuiAlarmID::ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE : { result = QObject::tr("Inlet water pressure in low range." ); break; } /* 152*/ -/*0153*/case GuiAlarmID::ALARM_ID_PRIME_COMPLETED_HIGH : { result = QObject::tr("HD prime completed high priority alarm." ); break; } /* 153*/ -/*0154*/case GuiAlarmID::ALARM_ID_NVDATA_EEPROM_OPS_FAILURE : { result = QObject::tr("EEPROM operations (read, write, erase) failure." ); break; } /* 154*/ -/*0155*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_ADC_OUT_OF_RANGE : { result = QObject::tr("Alarm ID available for use." ); break; } /* 155*/ -/*0156*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_FAULT : { result = QObject::tr("Alarm ID available for use." ); break; } /* 156*/ -/*0157*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT : { result = QObject::tr("DG chemical disinfect prime acid line timeout." ); break; } /* 157*/ -/*0158*/case GuiAlarmID::ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE : { result = QObject::tr("Inlet water temperature is in the low range." ); break; } /* 158*/ -/*0159*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_FLOW_VS_MOTOR_SPEED_CHECK : { result = QObject::tr("Dialysate inlet pump failed flow vs motor speed check." ); break; } /* 159*/ -/*0160*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH : { result = QObject::tr("Blood pump rotor speed too high." ); break; } /* 160*/ -/*0161*/case GuiAlarmID::ALARM_ID_DG_COMM_TOO_MANY_BAD_CRCS : { result = QObject::tr("DG comm too many bad CRCs." ); break; } /* 161*/ -/*0162*/case GuiAlarmID::ALARM_ID_DG_FPGA_CLOCK_SPEED_CHECK_FAILURE : { result = QObject::tr("DG FPGA clock speed check failure." ); break; } /* 162*/ -/*0163*/case GuiAlarmID::ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM : { result = QObject::tr("HD sees primary load cell for reservoir 1 change too much too fast." ); break; } /* 163*/ -/*0164*/case GuiAlarmID::ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM : { result = QObject::tr("HD sees primary load cell for reservoir 2 change too much too fast." ); break; } /* 164*/ -/*0165*/case GuiAlarmID::ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM : { result = QObject::tr("HD in treatment rinseback operation timeout." ); break; } /* 165*/ -/*0166*/case GuiAlarmID::ALARM_ID_TREATMENT_RECIRC_TIMEOUT_ALARM : { result = QObject::tr("HD in treatment re-circ sub-mode for too long." ); break; } /* 166*/ -/*0167*/case GuiAlarmID::ALARM_ID_CARTRIDGE_DOOR_OPENED : { result = QObject::tr("HD cartridge door opened alarm." ); break; } /* 167*/ -/*0168*/case GuiAlarmID::ALARM_ID_HD_ACTIVE_RESERVOIR_DEPLETION_TIME_OUT : { result = QObject::tr("HD active reservoir depletion timeout." ); break; } /* 168*/ -/*0169*/case GuiAlarmID::ALARM_ID_DIALYSATE_FLOW_RATE_OUT_OF_RANGE : { result = QObject::tr("Dialysate flow rate out of range." ); break; } /* 169*/ -/*0170*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY : { result = QObject::tr("HD syringe empty alarm." ); break; } /* 170*/ -/*0171*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION : { result = QObject::tr("HD syringe pump occlusion alarm." ); break; } /* 171*/ -/*0172*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM : { result = QObject::tr("HD syringe pump not enough Heparin alarm." ); break; } /* 172*/ -/*0173*/case GuiAlarmID::ALARM_ID_HD_RTC_CONFIG_ERROR : { result = QObject::tr("HD RTC configuration error." ); break; } /* 173*/ -/*0174*/case GuiAlarmID::ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE : { result = QObject::tr("HD RTC or timer accuracy failure." ); break; } /* 174*/ -/*0175*/case GuiAlarmID::ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR : { result = QObject::tr("HD pump direction status error." ); break; } /* 175*/ -/*0176*/case GuiAlarmID::ALARM_ID_HD_RESERVOIR_FULL_AND_DG_NOT_READY_TO_SWITCH : { result = QObject::tr("HD active reservoir is full during treatment and DG not ready to switch reservoirs." ); break; } /* 176*/ -/*0177*/case GuiAlarmID::ALARM_ID_DG_SOFTWARE_FAULT : { result = QObject::tr("DG software fault.\nSoftware found itself in an unexpected state." ); break; } /* 177*/ -/*0178*/case GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT : { result = QObject::tr("HD communication timeout." ); break; } /* 178*/ -/*0179*/case GuiAlarmID::ALARM_ID_DG_FPGA_COMM_TIMEOUT : { result = QObject::tr("DG FPGA communication down for too long." ); break; } /* 179*/ -/*0180*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_ADC_ERROR : { result = QObject::tr("DG load cell ADC error." ); break; } /* 180*/ -/*0181*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE : { result = QObject::tr("DG load cells weight out of range for tare." ); break; } /* 181*/ -/*0182*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELLS_INVALID_CAL_RECORD : { result = QObject::tr("DG load cells invalid calibration." ); break; } /* 182*/ -/*0183*/case GuiAlarmID::ALARM_ID_DG_INVALID_LOAD_CELL_VALUE : { result = QObject::tr("DG invalid load cell value." ); break; } /* 183*/ -/*0184*/case GuiAlarmID::ALARM_ID_UV_REACTOR_NOT_HEALTHY : { result = QObject::tr("Inlet or Outlet UV reactor not healthy." ); break; } /* 184*/ -/*0185*/case GuiAlarmID::ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE : { result = QObject::tr("DG fan RPM out of range." ); break; } /* 185*/ -/*0186*/case GuiAlarmID::ALARM_ID_DG_CONCENTRATE_PUMP_FAULT : { result = QObject::tr("DG concentrate pump fault." ); break; } /* 186*/ -/*0187*/case GuiAlarmID::ALARM_ID_CP1_SPEED_CONTROL_ERROR : { result = QObject::tr("DG concentrate pump CP1 speed control error." ); break; } /* 187*/ -/*0188*/case GuiAlarmID::ALARM_ID_CP2_SPEED_CONTROL_ERROR : { result = QObject::tr("DG concentrate pump CP2 speed control error." ); break; } /* 188*/ -/*0189*/case GuiAlarmID::ALARM_ID_DRAIN_PUMP_RPM_OUT_OF_RANGE : { result = QObject::tr("DG drain pump RPM out of range." ); break; } /* 189*/ -/*0190*/case GuiAlarmID::ALARM_ID_DRAIN_PUMP_OFF_FAULT : { result = QObject::tr("DG drain pump off fault." ); break; } /* 190*/ -/*0191*/case GuiAlarmID::ALARM_ID_FLOW_RATE_OUT_OF_UPPER_RANGE : { result = QObject::tr("DG flow rate out of upper range." ); break; } /* 191*/ -/*0192*/case GuiAlarmID::ALARM_ID_FLOW_RATE_OUT_OF_LOWER_RANGE : { result = QObject::tr("DG flow rate out of lower range." ); break; } /* 192*/ -/*0193*/case GuiAlarmID::ALARM_ID__AVAILABLE_13 : { result = QObject::tr("Alarm available for use." ); break; } /* 193*/ -/*0194*/case GuiAlarmID::ALARM_ID_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE : { result = QObject::tr("DG RO pump duty cycle out of range." ); break; } /* 194*/ -/*0195*/case GuiAlarmID::ALARM_ID_RO_PUMP_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("DG RO pump pressure out of range." ); break; } /* 195*/ -/*0196*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_ERROR_BIT_FAULT : { result = QObject::tr("DG temperature sensor error bit fault." ); break; } /* 196*/ -/*0197*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSORS_FPGA_FAULT : { result = QObject::tr("DG temperature sensors FPGA fault." ); break; } /* 197*/ -/*0198*/case GuiAlarmID::ALARM_ID__AVAILABLE_10 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 198*/ -/*0199*/case GuiAlarmID::ALARM_ID__AVAILABLE_14 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 199*/ -/*0200*/case GuiAlarmID::ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE : { result = QObject::tr("DG thermistors/sensors temperature out of range." ); break; } /* 200*/ -/*0201*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_WET_FLOW_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode wet self-test lc vs FMD failure." ); break; } /* 201*/ -/*0202*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode dry pressure normal self-test failure." ); break; } /* 202*/ -/*0203*/case GuiAlarmID::ALARM_ID_PRESSURE_SENSOR_FAULT : { result = QObject::tr("Pressure sensor fault." ); break; } /* 203*/ -/*0204*/case GuiAlarmID::ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE : { result = QObject::tr("RO rejection ratio out of range." ); break; } /* 204*/ -/*0205*/case GuiAlarmID::ALARM_ID_CONDUCTIVITY_SENSOR_FAULT : { result = QObject::tr("Conductivity sensor fault." ); break; } /* 205*/ -/*0206*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME : { result = QObject::tr("DG dialysate fill runs out of time." ); break; } /* 206*/ -/*0207*/case GuiAlarmID::ALARM_ID_DG_FLOW_METER_CHECK_FAILURE : { result = QObject::tr("DG flow meter check failure alarm." ); break; } /* 207*/ -/*0208*/case GuiAlarmID::ALARM_ID__AVAILABLE_7 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 208*/ -/*0209*/case GuiAlarmID::ALARM_ID_DG_DRAIN_CIRCULATION_LINE_TIMEOUT : { result = QObject::tr("DG drain circulation line timeout." ); break; } /* 209*/ -/*0210*/case GuiAlarmID::ALARM_ID_HD_BATTERY_PACK_ERROR_DETECTED : { result = QObject::tr("HD battery pack detected an error." ); break; } /* 210*/ -/*0211*/case GuiAlarmID::ALARM_ID_BLOOD_SITTING_WARNING : { result = QObject::tr("Blood sitting too long warning (>4 min)." ); break; } /* 211*/ -/*0212*/case GuiAlarmID::ALARM_ID_END_OF_TREATMENT_ALARM : { result = QObject::tr("HD end of treatment alarm (user not acting to end treatment)." ); break; } /* 212*/ -/*0213*/case GuiAlarmID::ALARM_ID_PRIME_COMPLETED_MEDIUM : { result = QObject::tr("HD prime completed medium priority alarm." ); break; } /* 213*/ -/*0214*/case GuiAlarmID::ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE : { result = QObject::tr("HD Saline bolus volume check failure." ); break; } /* 214*/ -/*0215*/case GuiAlarmID::ALARM_ID_RINSEBACK_VOLUME_CHECK_FAILURE : { result = QObject::tr("HD rinseback volume check failure." ); break; } /* 215*/ -/*0216*/case GuiAlarmID::ALARM_ID_END_TREATMENT_TIMEOUT_ALARM : { result = QObject::tr("HD end treatment sub-mode timeout alarm." ); break; } /* 216*/ -/*0217*/case GuiAlarmID::ALARM_ID_BLOOD_PRIME_VOLUME_CHECK_FAILURE : { result = QObject::tr("HD blood prime volume check failure." ); break; } /* 217*/ -/*0218*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_DETECTED : { result = QObject::tr("HD syringe detected alarm." ); break; } /* 218*/ -/*0219*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED : { result = QObject::tr("HD syringe pump syringe removed alarm." ); break; } /* 219*/ -/*0220*/case GuiAlarmID::ALARM_ID_HD_BATTERY_PACK_CHARGE_TOO_LOW : { result = QObject::tr("HD battery pack SOC is too low." ); break; } /* 220*/ -/*0221*/case GuiAlarmID::ALARM_ID_EMPTY_SALINE_BAG : { result = QObject::tr("HD Saline bag is empty." ); break; } /* 221*/ -/*0222*/case GuiAlarmID::ALARM_ID_DIALYSATE_TEMPERATURE_HIGH : { result = QObject::tr("HD dialysate temperature too high alarm." ); break; } /* 222*/ -/*0223*/case GuiAlarmID::ALARM_ID_DIALYSATE_TEMPERATURE_LOW : { result = QObject::tr("HD dialysate temperature too low alarm." ); break; } /* 223*/ -/*0224*/case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_BY_USER : { result = QObject::tr("Treatment stopped by user action." ); break; } /* 224*/ -/*0225*/case GuiAlarmID::ALARM_ID_END_OF_TREATMENT_WARNING : { result = QObject::tr("HD end of treatment warning." ); break; } /* 225*/ -/*0226*/case GuiAlarmID::ALARM_ID_PRIME_COMPLETED_LOW_PRIORITY : { result = QObject::tr("HD prime completed low priority alarm." ); break; } /* 226*/ -/*0227*/case GuiAlarmID::ALARM_ID_PRIME_OUT_OF_TIME : { result = QObject::tr("HD prime out of time alarm." ); break; } /* 227*/ -/*0228*/case GuiAlarmID::ALARM_ID_HD_PRIME_PURGE_AIR_TIME_OUT : { result = QObject::tr("HD time out on prime sub-mode purge air state." ); break; } /* 228*/ -/*0229*/case GuiAlarmID::ALARM_ID_PRIME_DIALYSATE_DIALYZER_TIME_OUT : { result = QObject::tr("HD prime dialysate dialyzer time out alarm." ); break; } /* 229*/ -/*0230*/case GuiAlarmID::ALARM_ID_PRIME_DIALYSATE_BYPASS_TIME_OUT : { result = QObject::tr("HD prime dialysate bypass time out alarm." ); break; } /* 230*/ -/*0231*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode dry pressure self-test failure." ); break; } /* 231*/ -/*0232*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_WET_LC_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode wet self-test LC vs LC failure." ); break; } /* 232*/ -/*0233*/case GuiAlarmID::ALARM_ID__AVAILABLE_8 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 233*/ -/*0234*/case GuiAlarmID::ALARM_ID_RTC_RAM_OPS_ERROR : { result = QObject::tr("RTC (i.e read time) or RAM operations failure (read or write)." ); break; } /* 234*/ -/*0235*/case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_AFTER_RINSEBACK : { result = QObject::tr("HD in treatment stopped sub-mode after rinseback completed (no escalation)." ); break; } /* 235*/ -/*0236*/case GuiAlarmID::ALARM_ID_INSTALL_NEW_CARTRIDGE : { result = QObject::tr("HD needs new cartridge to be installed." ); break; } /* 236*/ -/*0237*/case GuiAlarmID::ALARM_ID_PRIME_SALINE_DIALYZER_TIME_OUT : { result = QObject::tr("HD prime saline dialyzer time out alarm." ); break; } /* 237*/ -/*0238*/case GuiAlarmID::ALARM_ID_NO_CARTRIDGE_LOADED : { result = QObject::tr("HD no cartridge loaded or installed improperly alarm." ); break; } /* 238*/ -/*0239*/case GuiAlarmID::ALARM_ID_CARTRIDGE_REMOVAL_FAILURE : { result = QObject::tr("HD fail to remove cartridge alarm." ); break; } /* 239*/ -/*0240*/case GuiAlarmID::ALARM_ID_BICARB_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Bicarb conductivity out of range during bicarb pump check alarm." ); break; } /* 240*/ -/*0241*/case GuiAlarmID::ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT : { result = QObject::tr("DG reservoir drain time out." ); break; } /* 241*/ -/*0242*/case GuiAlarmID::ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT : { result = QObject::tr("DG reservoir fill time out." ); break; } /* 242*/ -/*0243*/case GuiAlarmID::ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT : { result = QObject::tr("DG reservoir leak time out." ); break; } /* 243*/ -/*0244*/case GuiAlarmID::ALARM_ID_DG_TEMP_SENSORS_DIFF_OUT_OF_RANGE : { result = QObject::tr("DG temperature sensors difference out of range." ); break; } /* 244*/ -/*0245*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT : { result = QObject::tr("DG heat disinfect target temperature time out (could not reach to temperature)." ); break; } /* 245*/ -/*0246*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_INLET_PRES_AND_TEMP_SNSRS_OUT: { result = QObject::tr("DG heat disinfect inlet pressure and temperature sensors out of range." ); break; } /* 246*/ -/*0247*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_INLET_COND_AND_TEMP_OUT : { result = QObject::tr("DG heat disinfect inlet conductivity and temperature out of range." ); break; } /* 247*/ -/*0248*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_TIMEOUT : { result = QObject::tr("DG chemical disinfect could not reach to target temperature." ); break; } /* 248*/ -/*0249*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_INLET_PRES_AND_TEMP_SNSRS_OUT: { result = QObject::tr("DG chemical disinfect inlet pressure and temperature sensors out of range." ); break; } /* 249*/ -/*0250*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_INLET_COND_AND_TEMP_OUT : { result = QObject::tr("DG chemical disinfect inlet conductivity and temperature out of range." ); break; } /* 250*/ -/*0251*/case GuiAlarmID::ALARM_ID_HD_INVALID_SYSTEM_RECORD_CRC : { result = QObject::tr("HD invalid system record." ); break; } /* 251*/ -/*0252*/case GuiAlarmID::ALARM_ID_HD_INVALID_SERVICE_RECORD_CRC : { result = QObject::tr("HD invalid service record." ); break; } /* 252*/ -/*0253*/case GuiAlarmID::ALARM_ID_DG_INVALID_SYSTEM_RECORD_CRC : { result = QObject::tr("DG invalid system record." ); break; } /* 253*/ -/*0254*/case GuiAlarmID::ALARM_ID_DG_INVALID_SERVICE_RECORD_CRC : { result = QObject::tr("DG invalid service record." ); break; } /* 254*/ -/*0255*/case GuiAlarmID::ALARM_ID_HD_UI_COMPATIBILITY_ERROR : { result = QObject::tr("HD and UI software builds are not compatible." ); break; } /* 255*/ -/*0256*/case GuiAlarmID::ALARM_ID_HD_DG_COMPATIBILITY_ERROR : { result = QObject::tr("HD and DG software builds are not compatible." ); break; } /* 256*/ -/*0257*/case GuiAlarmID::ALARM_ID_DG_FPGA_POWER_OUT_TIMEOUT : { result = QObject::tr("DG FPGA power out timeout." ); break; } /* 257*/ -/*0258*/case GuiAlarmID::ALARM_ID_HD_FPGA_POWER_OUT_TIMEOUT : { result = QObject::tr("HD FPGA power out timeout." ); break; } /* 258*/ -/*0259*/case GuiAlarmID::ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE : { result = QObject::tr("HD temperatures out of range." ); break; } /* 259*/ -/*0260*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SHASUM : { result = QObject::tr("UI POST Application Integrity (Sha256Sum) failure." ); break; } /* 260*/ -/*0261*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_CANBUS : { result = QObject::tr("UI POST CANBus failure." ); break; } /* 261*/ -/*0262*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_DISPLAY : { result = QObject::tr("UI POST Display failure." ); break; } /* 262*/ -/*0263*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_TOUCH : { result = QObject::tr("UI POST Touch failure." ); break; } /* 263*/ -/*0264*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SDCARD : { result = QObject::tr("UI POST SD-Card failure." ); break; } /* 264*/ -/*0265*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_RTC : { result = QObject::tr("UI POST RTC failure." ); break; } /* 265*/ -/*0266*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_WIFI : { result = QObject::tr("UI POST WiFi failure." ); break; } /* 266*/ -/*0267*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_BLUETOOTH : { result = QObject::tr("UI POST Bluetooth failure." ); break; } /* 267*/ -/*0268*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_ETHERNET : { result = QObject::tr("UI POST Ethernet failure." ); break; } /* 268*/ -/*0269*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SOUND : { result = QObject::tr("UI POST Sound failure." ); break; } /* 269*/ -/*0270*/case GuiAlarmID::ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED : { result = QObject::tr("HD POST Safety Shutdown failure." ); break; } /* 270*/ -/*0271*/case GuiAlarmID::ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED : { result = QObject::tr("DG POST Safety Shutdown failure." ); break; } /* 271*/ -/*0272*/case GuiAlarmID::ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE : { result = QObject::tr("HD Fan RPM out of range." ); break; } /* 272*/ -/*0273*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_OUT_OF_RANGE : { result = QObject::tr("HD measured blood pump flow rate is out of range." ); break; } /* 273*/ -/*0274*/case GuiAlarmID::ALARM_ID_HD_DIAL_IN_FLOW_OUT_OF_RANGE : { result = QObject::tr("HD measured dialysate inlet pump flow rate is out of range." ); break; } /* 274*/ -/*0275*/case GuiAlarmID::ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("HD arterial pressure sensor is reading out of range." ); break; } /* 275*/ -/*0276*/case GuiAlarmID::ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("HD venous pressure sensor is reading out of range." ); break; } /* 276*/ -/*0277*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE : { result = QObject::tr("HD BP occlusion sensor is reading out of range." ); break; } /* 277*/ -/*0278*/case GuiAlarmID::ALARM_ID_HD_ACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE : { result = QObject::tr("HD active reservoir weight out of range." ); break; } /* 278*/ -/*0279*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_DRAIN_TIME_OUT : { result = QObject::tr("DG dialysate drain time out." ); break; } /* 279*/ -/*0280*/case GuiAlarmID::ALARM_ID_HD_ARTERIAL_PRESSURE_READ_TIMEOUT_ERROR : { result = QObject::tr("HD arterial pressure sensor read timeout error." ); break; } /* 280*/ -/*0281*/case GuiAlarmID::ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME : { result = QObject::tr("Acid concentration bottle low volume alarm." ); break; } /* 281*/ -/*0282*/case GuiAlarmID::ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME : { result = QObject::tr("Bicarbonate concentration bottle low volume alarm." ); break; } /* 282*/ -/*0283*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_WEIGHT_OUT_OF_RANGE : { result = QObject::tr("DG load cells weight out of range." ); break; } /* 283*/ -/*0284*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE : { result = QObject::tr("DG load cells primary/back up drift out of range." ); break; } /* 284*/ -/*0285*/case GuiAlarmID::ALARM_ID_HD_TREATMENT_RECIRC_TIMEOUT_WARNING : { result = QObject::tr("HD treatment recirculate timeout warning." ); break; } /* 285*/ -/*0286*/case GuiAlarmID::ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_WARNING : { result = QObject::tr("HD treatment rinseback complete timeout warning." ); break; } /* 286*/ -/*0287*/case GuiAlarmID::ALARM_ID_HD_FPGA_CLOCK_SPEED_CHECK_FAILURE : { result = QObject::tr("HD processor clock speed checks against FPGA clock failure." ); break; } /* 287*/ -/*0288*/case GuiAlarmID::ALARM_ID_HD_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE : { result = QObject::tr("HD load cells primary/back up drift out of range." ); break; } /* 288*/ -/*0289*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_OR_CONC_CAP_NOT_IN_PROPER_POSITION: { result = QObject::tr("DG dialysate or concentrate caps not closed." ); break; } /* 289*/ -/*0290*/case GuiAlarmID::ALARM_ID_DG_FLOW_TOO_LOW_WHILE_HEATER_ON : { result = QObject::tr("DG flow too low while heater is on." ); break; } /* 290*/ -/*0291*/case GuiAlarmID::NUM_OF_ALARM_IDS : { result = QObject::tr("Total number of alarms." ); break; } /* 291*/ +/*0000*/case GuiAlarmID::ALARM_ID_NO_ALARM : { result = QObject::tr("Indication for when no alarms is a possible situation." ); break; } /* 0*/ +/*0001*/case GuiAlarmID::ALARM_ID_STUCK_BUTTON_TEST_FAILED : { result = QObject::tr("Stuck button POST failure.\nStop or Off button detected to be pressed for at least 1 second during test shortly after power up." ); break; } /* 1*/ +/*0002*/case GuiAlarmID::ALARM_ID_HD_FPGA_POST_TEST_FAILED : { result = QObject::tr("HD FPGA POST failure." ); break; } /* 2*/ +/*0003*/case GuiAlarmID::ALARM_ID_DG_FPGA_POST_TEST_FAILED : { result = QObject::tr("DG FPGA POST failure." ); break; } /* 3*/ +/*0004*/case GuiAlarmID::ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED : { result = QObject::tr("HD Watchdog POST failure." ); break; } /* 4*/ +/*0005*/case GuiAlarmID::ALARM_ID_DG_WATCHDOG_POST_TEST_FAILED : { result = QObject::tr("DG Watchdog POST failure." ); break; } /* 5*/ +/*0006*/case GuiAlarmID::ALARM_ID_UI_COMM_POST_FAILED : { result = QObject::tr("UI communication POST failure.\nUI failed to communicate within a reasonable time after power up." ); break; } /* 6*/ +/*0007*/case GuiAlarmID::ALARM_ID_HD_RTC_BATTERY_LOW : { result = QObject::tr("HD RTC battery low." ); break; } /* 7*/ +/*0008*/case GuiAlarmID::ALARM_ID_HD_ACCELEROMETER_SELF_TEST_FAILURE : { result = QObject::tr("HD accelerometer failed POST." ); break; } /* 8*/ +/*0009*/case GuiAlarmID::ALARM_ID_DG_ACCELEROMETER_SELF_TEST_FAILURE : { result = QObject::tr("DG accelerometer failed POST." ); break; } /* 9*/ +/*0010*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_FAULT : { result = QObject::tr("Alarm ID available for use." ); break; } /* 10*/ +/*0011*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_FAILURE : { result = QObject::tr("Alarm ID available for use." ); break; } /* 11*/ +/*0012*/case GuiAlarmID::ALARM_ID_HD_INTEGRITY_POST_TEST_FAILED : { result = QObject::tr("HD firmware image integrity POST test failed." ); break; } /* 12*/ +/*0013*/case GuiAlarmID::ALARM_ID_DG_INTEGRITY_POST_TEST_FAILED : { result = QObject::tr("DG firmware image integrity POST test failed." ); break; } /* 13*/ +/*0014*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_INVALID_CALIBRATION : { result = QObject::tr("HD blood flow invalid calibration." ); break; } /* 14*/ +/*0015*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_INVALID_CALIBRATION : { result = QObject::tr("HD dialysate flow invalid calibration." ); break; } /* 15*/ +/*0016*/case GuiAlarmID::ALARM_ID_HD_ALARM_AUDIO_SELF_TEST_FAILURE : { result = QObject::tr("HD alarm audio failed POST." ); break; } /* 16*/ +/*0017*/case GuiAlarmID::ALARM_ID_HD_UI_POST_FAILED : { result = QObject::tr("HD UI POST failed." ); break; } /* 17*/ +/*0018*/case GuiAlarmID::ALARM_ID_DG_PRESSURE_SENSORS_INVALID_CAL_RECORD : { result = QObject::tr("DG load cells invalid calibration record." ); break; } /* 18*/ +/*0019*/case GuiAlarmID::ALARM_ID_DG_FLOW_SENSORS_INVALID_CAL_RECORD : { result = QObject::tr("DG flow sensors invalid calibration record." ); break; } /* 19*/ +/*0020*/case GuiAlarmID::ALARM_ID_DG_COND_SENSORS_INVALID_CAL_RECORD : { result = QObject::tr("DG conductivity sensors invalid calibration record." ); break; } /* 20*/ +/*0021*/case GuiAlarmID::ALARM_ID_DG_DRAIN_LINE_VOLUME_INVALID_CAL_RECORD : { result = QObject::tr("DG drain line volume invalid calibration record." ); break; } /* 21*/ +/*0022*/case GuiAlarmID::ALARM_ID_DG_RESERVOIRS_INVALID_CAL_RECORD : { result = QObject::tr("DG reservoirs invalid calibration record." ); break; } /* 22*/ +/*0023*/case GuiAlarmID::ALARM_ID_DG_ACID_CONCENTRATE_INVALID_CAL_RECORD : { result = QObject::tr("DG acid concentrate calibration record." ); break; } /* 23*/ +/*0024*/case GuiAlarmID::ALARM_ID_DG_BICARB_CONCENTRATE_INVALID_CAL_RECORD : { result = QObject::tr("DG bicarb concentrate calibration record." ); break; } /* 24*/ +/*0025*/case GuiAlarmID::ALARM_ID_DG_ACCELEROMETERS_INVALID_CAL_RECORD : { result = QObject::tr("DG accelerometer invalid calibration record." ); break; } /* 25*/ +/*0026*/case GuiAlarmID::ALARM_ID_HD_ACCELEROMETERS_INVALID_CAL_RECORD : { result = QObject::tr("HD accelerometer invalid calibration record." ); break; } /* 26*/ +/*0027*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_INVALID_CAL_RECORD : { result = QObject::tr("HD blood flow invalid calibration record." ); break; } /* 27*/ +/*0028*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_INVALID_CAL_RECORD : { result = QObject::tr("HD dialyzer flow invalid calibration record." ); break; } /* 28*/ +/*0029*/case GuiAlarmID::ALARM_ID_HD_HEPARIN_FORCE_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("HD heparin force sensor invalid calibration record." ); break; } /* 29*/ +/*0030*/case GuiAlarmID::ALARM_ID_HD_SOFTWARE_FAULT : { result = QObject::tr("HD Software fault.\nSoftware found itself in an unexpected state." ); break; } /* 30*/ +/*0031*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK : { result = QObject::tr("Blood pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running." ); break; } /* 31*/ +/*0032*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_OFF_CHECK : { result = QObject::tr("Blood pump failed motor off check.\nMeasured speed while commanded off." ); break; } /* 32*/ +/*0033*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK : { result = QObject::tr("Blood pump failed motor direction check.\nMeasured vs commanded." ); break; } /* 33*/ +/*0034*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK : { result = QObject::tr("Blood pump failed rotor speed check.\nMismatch with rotor and motor speeds." ); break; } /* 34*/ +/*0035*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK : { result = QObject::tr("Dialysis inlet pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running." ); break; } /* 35*/ +/*0036*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_OFF_CHECK : { result = QObject::tr("Dialysis inlet pump failed motor off check.\nMeasured speed while commanded off." ); break; } /* 36*/ +/*0037*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK : { result = QObject::tr("Dialysis inlet pump failed motor direction check.\nMeasured vs commanded." ); break; } /* 37*/ +/*0038*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK : { result = QObject::tr("Dialysis inlet pump failed rotor speed check.\nMismatch with rotor and motor speeds." ); break; } /* 38*/ +/*0039*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK : { result = QObject::tr("Dialysis outlet pump failed motor controller current check.\nToo high when pump should be off or out of range when pump should be running." ); break; } /* 39*/ +/*0040*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_OFF_CHECK : { result = QObject::tr("Dialysis outlet pump failed motor off check.\nMeasured speed while commanded off." ); break; } /* 40*/ +/*0041*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK : { result = QObject::tr("Dialysis outlet pump failed motor direction check.\nMeasured vs commanded." ); break; } /* 41*/ +/*0042*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK : { result = QObject::tr("Dialysis outlet pump failed rotor speed check.\nMismatch with rotor and motor speeds." ); break; } /* 42*/ +/*0043*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_FAULT : { result = QObject::tr("HD blood leak self test fault." ); break; } /* 43*/ +/*0044*/case GuiAlarmID::ALARM_ID_UI_COMM_TIMEOUT : { result = QObject::tr("User interface communication timeout." ); break; } /* 44*/ +/*0045*/case GuiAlarmID::ALARM_ID_HD_COMM_TOO_MANY_BAD_CRCS : { result = QObject::tr("HD too many bad communications CRC." ); break; } /* 45*/ +/*0046*/case GuiAlarmID::ALARM_ID_CAN_MESSAGE_NOT_ACKED : { result = QObject::tr("System message that required acknowledgment was not acknowledged." ); break; } /* 46*/ +/*0047*/case GuiAlarmID::ALARM_ID_UF_RATE_TOO_HIGH_ERROR : { result = QObject::tr("Ultrafiltration rate is too high error during treatment." ); break; } /* 47*/ +/*0048*/case GuiAlarmID::ALARM_ID_UF_VOLUME_ACCURACY_ERROR : { result = QObject::tr("Ultrafiltration volume accuracy error during treatment." ); break; } /* 48*/ +/*0049*/case GuiAlarmID::ALARM_ID_HD_FPGA_COMM_TIMEOUT : { result = QObject::tr("HD FPGA communication down for too long." ); break; } /* 49*/ +/*0050*/case GuiAlarmID::ALARM_ID_VALVE_CONTROL_FAILURE : { result = QObject::tr("FPGA not accepting commanded valve states." ); break; } /* 50*/ +/*0051*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_MOTOR_SPEED_CHECK : { result = QObject::tr("Blood pump failed motor speed check.\nMeasured vs commanded." ); break; } /* 51*/ +/*0052*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_MOTOR_SPEED_CHECK : { result = QObject::tr("Dialysate inlet pump failed motor speed check.\nMeasured vs commanded." ); break; } /* 52*/ +/*0053*/case GuiAlarmID::ALARM_ID_DIAL_OUT_PUMP_MOTOR_SPEED_CHECK : { result = QObject::tr("Dialysate outlet pump failed motor speed check.\nMeasured vs commanded." ); break; } /* 53*/ +/*0054*/case GuiAlarmID::ALARM_ID_HD_CRITICAL_DATA_ERROR : { result = QObject::tr("HD critical data integrity check failed." ); break; } /* 54*/ +/*0055*/case GuiAlarmID::ALARM_ID_DG_CRITICAL_DATA_ERROR : { result = QObject::tr("DG critical data integrity check failed." ); break; } /* 55*/ +/*0056*/case GuiAlarmID::ALARM_ID_HD_ACCELEROMETER_FAILURE : { result = QObject::tr("HD accelerometer error (no readings or FPGA reports error)." ); break; } /* 56*/ +/*0057*/case GuiAlarmID::ALARM_ID_DG_ACCELEROMETER_FAILURE : { result = QObject::tr("DG accelerometer error (no readings or FPGA reports error)." ); break; } /* 57*/ +/*0058*/case GuiAlarmID::ALARM_ID_HD_VALVE_HOMING_FAILED : { result = QObject::tr("HD valve homing failed." ); break; } /* 58*/ +/*0059*/case GuiAlarmID::ALARM_ID_HD_VALVE_TRANSITION_TIMEOUT : { result = QObject::tr("HD valve transition time out." ); break; } /* 59*/ +/*0060*/case GuiAlarmID::ALARM_ID_HD_VALVE_NOT_FUNCTIONAL : { result = QObject::tr("HD valve not functional." ); break; } /* 60*/ +/*0061*/case GuiAlarmID::ALARM_ID_HD_VALVE_CURRENT_OUT_OF_RANGE : { result = QObject::tr("HD valve current out of range." ); break; } /* 61*/ +/*0062*/case GuiAlarmID::ALARM_ID_HD_VALVE_POSITION_OUT_OF_RANGE : { result = QObject::tr("HD valve position out of target." ); break; } /* 62*/ +/*0063*/case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_SENSOR_FAULT : { result = QObject::tr("FPGA reports failure reading arterial pressure sensor." ); break; } /* 63*/ +/*0064*/case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_SENSOR_FAULT : { result = QObject::tr("FPGA reports failure reading venous pressure sensor." ); break; } /* 64*/ +/*0065*/case GuiAlarmID::ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT : { result = QObject::tr("HD requests DG command with invalid parameter fault." ); break; } /* 65*/ +/*0066*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SENSOR_SET_POINT_SET_FAILURE : { result = QObject::tr("HD blood leak sensor set point set failure." ); break; } /* 66*/ +/*0067*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_SELF_TEST_FAILURE : { result = QObject::tr("HD blood pump occlusion self-test failure alarm." ); break; } /* 67*/ +/*0068*/case GuiAlarmID::ALARM_ID_HD_ACTIVE_RESERVOIR_RECIRCULATION_OUT_OF_RANGE : { result = QObject::tr("HD active reservoir recirculation out of range." ); break; } /* 68*/ +/*0069*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD : { result = QObject::tr("HD blood leak sensor invalid calibration record." ); break; } /* 69*/ +/*0070*/case GuiAlarmID::ALARM_ID_HD_ARTERIAL_PRESSURE_SELF_TEST_FAILURE : { result = QObject::tr("HD arterial pressure self-test failure alarm." ); break; } /* 70*/ +/*0071*/case GuiAlarmID::ALARM_ID_HD_VENOUS_PRESSURE_SELF_TEST_FAILURE : { result = QObject::tr("HD venous pressure self-test failure alarm." ); break; } /* 71*/ +/*0072*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_STATUS_SELF_TEST_FAILURE : { result = QObject::tr("HD blood flow meter status check self-test failure alarm." ); break; } /* 72*/ +/*0073*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_STATUS_SELF_TEST_FAILURE : { result = QObject::tr("HD dialysate flow meter status check self-test failure alarm." ); break; } /* 73*/ +/*0074*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_SELF_TEST_SEND_TIMEOUT : { result = QObject::tr("HD blood leak detector self-test transmit timeout." ); break; } /* 74*/ +/*0075*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SELF_TEST_FAILURE : { result = QObject::tr("HD syringe pump self-test failure alarm." ); break; } /* 75*/ +/*0076*/case GuiAlarmID::ALARM_ID_HD_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("HD monitored voltage is out of range." ); break; } /* 76*/ +/*0077*/case GuiAlarmID::ALARM_ID_DG_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG monitored voltage is out of range." ); break; } /* 77*/ +/*0078*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_ENCODER_DIRECTION_ERROR : { result = QObject::tr("HD syringe pump direction (from encoder) error." ); break; } /* 78*/ +/*0079*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_CONTROLLER_DIRECTION_ERROR : { result = QObject::tr("HD syringe pump direction (from controller) error." ); break; } /* 79*/ +/*0080*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_FAULT : { result = QObject::tr("HD syringe pump fault reported by FPGA." ); break; } /* 80*/ +/*0081*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_OVER_TRAVEL_ERROR : { result = QObject::tr("HD syringe pump over travel error." ); break; } /* 81*/ +/*0082*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_DAC_WRITE_ERROR : { result = QObject::tr("HD syringe pump DAC write failure." ); break; } /* 82*/ +/*0083*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_RUNNING_WHILE_BP_OFF_ERROR : { result = QObject::tr("HD syringe pump is running while the BP is off." ); break; } /* 83*/ +/*0084*/case GuiAlarmID::ALARM_ID_HD_VENOUS_PRESSURE_READ_TIMEOUT_ERROR : { result = QObject::tr("HD venous pressure sensor not being read." ); break; } /* 84*/ +/*0085*/case GuiAlarmID::ALARM_ID_PUMP_TRACK_LATCH_OPENED : { result = QObject::tr("HD pump track latch opened alarm." ); break; } /* 85*/ +/*0086*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_READ_TIMEOUT_ERROR : { result = QObject::tr("HD BP occlusion sensor not being read." ); break; } /* 86*/ +/*0087*/case GuiAlarmID::ALARM_ID_DG_HEATING_INVALID_CAL_RECORD : { result = QObject::tr("DG heating invalid calibration record." ); break; } /* 87*/ +/*0088*/case GuiAlarmID::ALARM_ID_DG_CONC_PUMP_HALL_SENSOR_OUT_OF_RANGE : { result = QObject::tr("DG concentrate pumps hall sensor out of range." ); break; } /* 88*/ +/*0089*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_SENSOR_ERROR : { result = QObject::tr("HD BP occlusion sensor error." ); break; } /* 89*/ +/*0090*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_FPGA_READ_ERROR : { result = QObject::tr("DG load cells FPGA read error." ); break; } /* 90*/ +/*0091*/case GuiAlarmID::ALARM_ID_HD_DIALYSATE_FLOW_DATA_NOT_RECEIVE : { result = QObject::tr("HD No dialysate flow data receive in the last 3 seconds." ); break; } /* 91*/ +/*0092*/case GuiAlarmID::ALARM_ID_DG_CONDUCTIVITY_SENSOR_BAD_STATUS : { result = QObject::tr("DG conductivity sensor bad status." ); break; } /* 92*/ +/*0093*/case GuiAlarmID::ALARM_ID_DG_OUTLET_PRIMARY_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("DG outlet primary conductivity out of range." ); break; } /* 93*/ +/*0094*/case GuiAlarmID::ALARM_ID_DG_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("DG pressure out of range." ); break; } /* 94*/ +/*0095*/case GuiAlarmID::ALARM_ID_DG_WATCHDOG_EXPIRED : { result = QObject::tr("DG watchdog expired." ); break; } /* 95*/ +/*0096*/case GuiAlarmID::ALARM_ID_INLET_WATER_TEMPERATURE_IN_HIGH_RANGE : { result = QObject::tr("Inlet water temperature in high range." ); break; } /* 96*/ +/*0097*/case GuiAlarmID::ALARM_ID_FILL_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Fill conductivity out of range." ); break; } /* 97*/ +/*0098*/case GuiAlarmID::ALARM_ID_HD_BATTERY_COMM_FAULT : { result = QObject::tr("HD battery communication fault." ); break; } /* 98*/ +/*0099*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_STALL : { result = QObject::tr("HD syringe pump stall alarm." ); break; } /* 99*/ +/*0100*/case GuiAlarmID::ALARM_ID_HD_NO_CART_SELF_TEST_TIMEOUT : { result = QObject::tr("HD no cartridge self-test timeout." ); break; } /* 100*/ +/*0101*/case GuiAlarmID::ALARM_ID_HD_DRY_SELF_TEST_TIMEOUT : { result = QObject::tr("HD dry self-test timeout." ); break; } /* 101*/ +/*0102*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_TEMP_GRAD_OUT_OF_RANAGE : { result = QObject::tr("DG heat disinfect temperature gradient out of range." ); break; } /* 102*/ +/*0103*/case GuiAlarmID::ALARM_ID_HD_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID : { result = QObject::tr("HD non-volatile calibration group invalid record CRC." ); break; } /* 103*/ +/*0104*/case GuiAlarmID::ALARM_ID_AIR_TRAP_ILLEGAL_LEVELS : { result = QObject::tr("Air trap level sensors reporting illegal combination of air/fluid." ); break; } /* 104*/ +/*0105*/case GuiAlarmID::ALARM_ID_DG_NVDATAMGMT_CAL_GROUP_RECORD_CRC_INVALID : { result = QObject::tr("DG non-volatile system group invalid record CRC." ); break; } /* 105*/ +/*0106*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_FLOW_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("DG dialysate flow sensor invalid calibration record." ); break; } /* 106*/ +/*0107*/case GuiAlarmID::ALARM_ID_DG_RESTARTED_FAULT : { result = QObject::tr("HD reports DG restarted fault." ); break; } /* 107*/ +/*0108*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_ADC_ERROR : { result = QObject::tr("HD syringe pump ADC error." ); break; } /* 108*/ +/*0109*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_VOLUME_ERROR : { result = QObject::tr("HD syringe pump volume check error." ); break; } /* 109*/ +/*0110*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SPEED_ERROR : { result = QObject::tr("HD syringe pump speed check error." ); break; } /* 110*/ +/*0111*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_NOT_STOPPED_ERROR : { result = QObject::tr("HD syringe pump not stopped in off state error." ); break; } /* 111*/ +/*0112*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_ZERO_CMD_SEND_TIMEOUT : { result = QObject::tr("HD blood leak zero command transmit timeout." ); break; } /* 112*/ +/*0113*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_ZERO_CMD_FAULT : { result = QObject::tr("HD blood leak zero command fault." ); break; } /* 113*/ +/*0114*/case GuiAlarmID::ALARM_ID_HD_VENOUS_BUBBLE_SELF_TEST_FAILURE : { result = QObject::tr("HD venous air bubble detector self-test failure." ); break; } /* 114*/ +/*0115*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_OUT_OF_RANGE : { result = QObject::tr("DG temperature sensor out of range." ); break; } /* 115*/ +/*0116*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSORS_ADC_FAULT : { result = QObject::tr("DG temperature sensor ADC fault." ); break; } /* 116*/ +/*0117*/case GuiAlarmID::ALARM_ID_DG_CAN_MESSAGE_NOT_ACKED : { result = QObject::tr("DG CAN message not acked." ); break; } /* 117*/ +/*0118*/case GuiAlarmID::ALARM_ID_DG_RTC_CONFIG_ERROR : { result = QObject::tr("DG RTC config error." ); break; } /* 118*/ +/*0119*/case GuiAlarmID::ALARM_ID_DG_RTC_BATTERY_LOW : { result = QObject::tr("DG RTC battery low error." ); break; } /* 119*/ +/*0120*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_WET_PRIME_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode wet self-test prime check failure." ); break; } /* 120*/ +/*0121*/case GuiAlarmID::ALARM_ID_DG_MAIN_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG main primary heater voltage out of range." ); break; } /* 121*/ +/*0122*/case GuiAlarmID::ALARM_ID_DG_SMALL_PRIMARY_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG small primary heater voltage out of range." ); break; } /* 122*/ +/*0123*/case GuiAlarmID::ALARM_ID_DG_TRIMMER_HEATER_VOLTAGE_OUT_OF_RANGE : { result = QObject::tr("DG trimmer heater voltage out of range." ); break; } /* 123*/ +/*0124*/case GuiAlarmID::ALARM_ID_END_OF_TREATMENT_HIGH : { result = QObject::tr("HD end of treatment alarm (high priority)." ); break; } /* 124*/ +/*0125*/case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_NO_RINSEBACK : { result = QObject::tr("Blood sitting too long after treatment stopped by user alarm (>5 min)." ); break; } /* 125*/ +/*0126*/case GuiAlarmID::ALARM_ID_HD_BLOOD_LEAK_DETECTED : { result = QObject::tr("HD blood leak detected alarm." ); break; } /* 126*/ +/*0127*/case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_LOW : { result = QObject::tr("Venous pressure too low during treatment." ); break; } /* 127*/ +/*0128*/case GuiAlarmID::ALARM_ID_HD_VENOUS_BUBBLE_DETECTED : { result = QObject::tr("HD venous air bubble detected alarm." ); break; } /* 128*/ +/*0129*/case GuiAlarmID::ALARM_ID_HD_VENOUS_BUBBLE_DETECTED_RINSEBACK : { result = QObject::tr("HD venous air bubble detected rinseback alarm." ); break; } /* 129*/ +/*0130*/case GuiAlarmID::ALARM_ID_VENOUS_PRESSURE_HIGH : { result = QObject::tr("Venous pressure too high during treatment." ); break; } /* 130*/ +/*0131*/case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_LOW : { result = QObject::tr("Arterial pressure too low during treatment." ); break; } /* 131*/ +/*0132*/case GuiAlarmID::ALARM_ID_ARTERIAL_PRESSURE_HIGH : { result = QObject::tr("Arterial pressure too high during treatment." ); break; } /* 132*/ +/*0133*/case GuiAlarmID::ALARM_ID_DG_FLUID_LEAK_DETECTED : { result = QObject::tr("DG fluid leak detected alarm." ); break; } /* 133*/ +/*0134*/case GuiAlarmID::ALARM_ID_HD_FLUID_LEAK_DETECTED : { result = QObject::tr("HD fluid leak detected alarm." ); break; } /* 134*/ +/*0135*/case GuiAlarmID::ALARM_ID_HD_SHOCK : { result = QObject::tr("HD experienced large acceleration." ); break; } /* 135*/ +/*0136*/case GuiAlarmID::ALARM_ID_DG_SHOCK : { result = QObject::tr("DG experienced large acceleration." ); break; } /* 136*/ +/*0137*/case GuiAlarmID::ALARM_ID_HD_EXCESSIVE_TILT : { result = QObject::tr("HD tilt exceeds maximum." ); break; } /* 137*/ +/*0138*/case GuiAlarmID::ALARM_ID_DG_EXCESSIVE_TILT : { result = QObject::tr("DG tilt exceeds maximum." ); break; } /* 138*/ +/*0139*/case GuiAlarmID::ALARM_ID_HD_AC_POWER_LOST : { result = QObject::tr("HD AC power lost alarm." ); break; } /* 139*/ +/*0140*/case GuiAlarmID::ALARM_ID_DG_COMM_TIMEOUT : { result = QObject::tr("Dialysate generator communication timeout." ); break; } /* 140*/ +/*0141*/case GuiAlarmID::ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT : { result = QObject::tr("Air trap fill timeout during treatment." ); break; } /* 141*/ +/*0142*/case GuiAlarmID::ALARM_ID_OCCLUSION_BLOOD_PUMP : { result = QObject::tr("Blood pump occlusion detected." ); break; } /* 142*/ +/*0143*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_TEMPERATURE_SENSORS_OUT_OF_RANGE : { result = QObject::tr("DG dialysate temperature sensors out of range." ); break; } /* 143*/ +/*0144*/case GuiAlarmID::ALARM_ID_DG_RO_FLOW_SENSOR_INVALID_CAL_RECORD : { result = QObject::tr("DG RO flow sensor invalid calibration record." ); break; } /* 144*/ +/*0145*/case GuiAlarmID::ALARM_ID_ACID_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Concentrate conductivity after adding acid out of range alarm." ); break; } /* 145*/ +/*0146*/case GuiAlarmID::ALARM_ID_DG_RTC_OR_TIMER_ACCURACY_FAILURE : { result = QObject::tr("DG RTC or timer accuracy failure." ); break; } /* 146*/ +/*0147*/case GuiAlarmID::ALARM_ID_CREATING_DIALYSATE_PLEASE_WAIT : { result = QObject::tr("Wait for the DG to produce dialysate." ); break; } /* 147*/ +/*0148*/case GuiAlarmID::ALARM_ID_INLET_WATER_HIGH_TEMPERATURE : { result = QObject::tr("Inlet water temperature too high." ); break; } /* 148*/ +/*0149*/case GuiAlarmID::ALARM_ID_HD_WATCHDOG_EXPIRED : { result = QObject::tr("HD watchdog expired." ); break; } /* 149*/ +/*0150*/case GuiAlarmID::ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_HIGH_RANGE : { result = QObject::tr("Inlet water conductivity in high range." ); break; } /* 150*/ +/*0151*/case GuiAlarmID::ALARM_ID_INLET_WATER_CONDUCTIVITY_IN_LOW_RANGE : { result = QObject::tr("Inlet water conductivity in low range." ); break; } /* 151*/ +/*0152*/case GuiAlarmID::ALARM_ID_INLET_WATER_PRESSURE_IN_LOW_RANGE : { result = QObject::tr("Inlet water pressure in low range." ); break; } /* 152*/ +/*0153*/case GuiAlarmID::ALARM_ID_PRIME_COMPLETED_HIGH : { result = QObject::tr("HD prime completed high priority alarm." ); break; } /* 153*/ +/*0154*/case GuiAlarmID::ALARM_ID_NVDATA_EEPROM_OPS_FAILURE : { result = QObject::tr("EEPROM operations (read, write, erase) failure." ); break; } /* 154*/ +/*0155*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_ADC_OUT_OF_RANGE : { result = QObject::tr("Alarm ID available for use." ); break; } /* 155*/ +/*0156*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_FAULT : { result = QObject::tr("Alarm ID available for use." ); break; } /* 156*/ +/*0157*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_PRIME_ACID_LINE_TIME_OUT : { result = QObject::tr("DG chemical disinfect prime acid line timeout." ); break; } /* 157*/ +/*0158*/case GuiAlarmID::ALARM_ID_INLET_WATER_TEMPERATURE_IN_LOW_RANGE : { result = QObject::tr("Inlet water temperature is in the low range." ); break; } /* 158*/ +/*0159*/case GuiAlarmID::ALARM_ID_DIAL_IN_PUMP_FLOW_VS_MOTOR_SPEED_CHECK : { result = QObject::tr("Dialysate inlet pump failed flow vs motor speed check." ); break; } /* 159*/ +/*0160*/case GuiAlarmID::ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_TOO_HIGH : { result = QObject::tr("Blood pump rotor speed too high." ); break; } /* 160*/ +/*0161*/case GuiAlarmID::ALARM_ID_DG_COMM_TOO_MANY_BAD_CRCS : { result = QObject::tr("DG comm too many bad CRCs." ); break; } /* 161*/ +/*0162*/case GuiAlarmID::ALARM_ID_DG_FPGA_CLOCK_SPEED_CHECK_FAILURE : { result = QObject::tr("DG FPGA clock speed check failure." ); break; } /* 162*/ +/*0163*/case GuiAlarmID::ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_1_ALARM : { result = QObject::tr("HD sees primary load cell for reservoir 1 change too much too fast." ); break; } /* 163*/ +/*0164*/case GuiAlarmID::ALARM_ID_HD_LOAD_CELL_ACCELERATION_RES_2_ALARM : { result = QObject::tr("HD sees primary load cell for reservoir 2 change too much too fast." ); break; } /* 164*/ +/*0165*/case GuiAlarmID::ALARM_ID_TREATMENT_RINSEBACK_TIMEOUT_ALARM : { result = QObject::tr("HD in treatment rinseback operation timeout." ); break; } /* 165*/ +/*0166*/case GuiAlarmID::ALARM_ID_TREATMENT_RECIRC_TIMEOUT_ALARM : { result = QObject::tr("HD in treatment re-circ sub-mode for too long." ); break; } /* 166*/ +/*0167*/case GuiAlarmID::ALARM_ID_CARTRIDGE_DOOR_OPENED : { result = QObject::tr("HD cartridge door opened alarm." ); break; } /* 167*/ +/*0168*/case GuiAlarmID::ALARM_ID_HD_ACTIVE_RESERVOIR_DEPLETION_TIME_OUT : { result = QObject::tr("HD active reservoir depletion timeout." ); break; } /* 168*/ +/*0169*/case GuiAlarmID::ALARM_ID_DIALYSATE_FLOW_RATE_OUT_OF_RANGE : { result = QObject::tr("Dialysate flow rate out of range." ); break; } /* 169*/ +/*0170*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_EMPTY : { result = QObject::tr("HD syringe empty alarm." ); break; } /* 170*/ +/*0171*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_OCCLUSION : { result = QObject::tr("HD syringe pump occlusion alarm." ); break; } /* 171*/ +/*0172*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_NOT_ENOUGH_HEPARIN_ALARM : { result = QObject::tr("HD syringe pump not enough Heparin alarm." ); break; } /* 172*/ +/*0173*/case GuiAlarmID::ALARM_ID_HD_RTC_CONFIG_ERROR : { result = QObject::tr("HD RTC configuration error." ); break; } /* 173*/ +/*0174*/case GuiAlarmID::ALARM_ID_HD_RTC_OR_TIMER_ACCURACY_FAILURE : { result = QObject::tr("HD RTC or timer accuracy failure." ); break; } /* 174*/ +/*0175*/case GuiAlarmID::ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR : { result = QObject::tr("HD pump direction status error." ); break; } /* 175*/ +/*0176*/case GuiAlarmID::ALARM_ID_HD_RESERVOIR_FULL_AND_DG_NOT_READY_TO_SWITCH : { result = QObject::tr("HD active reservoir is full during treatment and DG not ready to switch reservoirs." ); break; } /* 176*/ +/*0177*/case GuiAlarmID::ALARM_ID_DG_SOFTWARE_FAULT : { result = QObject::tr("DG software fault.\nSoftware found itself in an unexpected state." ); break; } /* 177*/ +/*0178*/case GuiAlarmID::ALARM_ID_HD_COMM_TIMEOUT : { result = QObject::tr("HD communication timeout." ); break; } /* 178*/ +/*0179*/case GuiAlarmID::ALARM_ID_DG_FPGA_COMM_TIMEOUT : { result = QObject::tr("DG FPGA communication down for too long." ); break; } /* 179*/ +/*0180*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_ADC_ERROR : { result = QObject::tr("DG load cell ADC error." ); break; } /* 180*/ +/*0181*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELLS_TARE_WEIGHT_OUT_OF_RANGE : { result = QObject::tr("DG load cells weight out of range for tare." ); break; } /* 181*/ +/*0182*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELLS_INVALID_CAL_RECORD : { result = QObject::tr("DG load cells invalid calibration." ); break; } /* 182*/ +/*0183*/case GuiAlarmID::ALARM_ID_DG_INVALID_LOAD_CELL_VALUE : { result = QObject::tr("DG invalid load cell value." ); break; } /* 183*/ +/*0184*/case GuiAlarmID::ALARM_ID_UV_REACTOR_NOT_HEALTHY : { result = QObject::tr("Inlet or Outlet UV reactor not healthy." ); break; } /* 184*/ +/*0185*/case GuiAlarmID::ALARM_ID_DG_FAN_RPM_OUT_OF_RANGE : { result = QObject::tr("DG fan RPM out of range." ); break; } /* 185*/ +/*0186*/case GuiAlarmID::ALARM_ID_DG_CONCENTRATE_PUMP_FAULT : { result = QObject::tr("DG concentrate pump fault." ); break; } /* 186*/ +/*0187*/case GuiAlarmID::ALARM_ID_CP1_SPEED_CONTROL_ERROR : { result = QObject::tr("DG concentrate pump CP1 speed control error." ); break; } /* 187*/ +/*0188*/case GuiAlarmID::ALARM_ID_CP2_SPEED_CONTROL_ERROR : { result = QObject::tr("DG concentrate pump CP2 speed control error." ); break; } /* 188*/ +/*0189*/case GuiAlarmID::ALARM_ID_DRAIN_PUMP_RPM_OUT_OF_RANGE : { result = QObject::tr("DG drain pump RPM out of range." ); break; } /* 189*/ +/*0190*/case GuiAlarmID::ALARM_ID_DRAIN_PUMP_OFF_FAULT : { result = QObject::tr("DG drain pump off fault." ); break; } /* 190*/ +/*0191*/case GuiAlarmID::ALARM_ID_FLOW_RATE_OUT_OF_UPPER_RANGE : { result = QObject::tr("DG flow rate out of upper range." ); break; } /* 191*/ +/*0192*/case GuiAlarmID::ALARM_ID_FLOW_RATE_OUT_OF_LOWER_RANGE : { result = QObject::tr("DG flow rate out of lower range." ); break; } /* 192*/ +/*0193*/case GuiAlarmID::ALARM_ID__AVAILABLE_13 : { result = QObject::tr("Alarm available for use." ); break; } /* 193*/ +/*0194*/case GuiAlarmID::ALARM_ID_RO_PUMP_DUTY_CYCLE_OUT_OF_RANGE : { result = QObject::tr("DG RO pump duty cycle out of range." ); break; } /* 194*/ +/*0195*/case GuiAlarmID::ALARM_ID_RO_PUMP_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("DG RO pump pressure out of range." ); break; } /* 195*/ +/*0196*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSOR_ERROR_BIT_FAULT : { result = QObject::tr("DG temperature sensor error bit fault." ); break; } /* 196*/ +/*0197*/case GuiAlarmID::ALARM_ID_DG_TEMPERATURE_SENSORS_FPGA_FAULT : { result = QObject::tr("DG temperature sensors FPGA fault." ); break; } /* 197*/ +/*0198*/case GuiAlarmID::ALARM_ID_RO_FLOW_TOO_LOW_WHILE_PRIMARY_HEATER_IS_ON : { result = QObject::tr("RO flow too low while primary heater is on." ); break; } /* 198*/ +/*0199*/case GuiAlarmID::ALARM_ID_DIALYSATE_FLOW_TOO_LOW_WHILE_TRIMMER_HEATER_IS_ON: { result = QObject::tr("Dialysate flow too low while trimmer heater is on." ); break; } /* 199*/ +/*0200*/case GuiAlarmID::ALARM_ID_DG_THERMISTORS_TEMPERATURE_OUT_OF_RANGE : { result = QObject::tr("DG thermistors/sensors temperature out of range." ); break; } /* 200*/ +/*0201*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_WET_FLOW_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode wet self-test lc vs FMD failure." ); break; } /* 201*/ +/*0202*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_NORMAL_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode dry pressure normal self-test failure." ); break; } /* 202*/ +/*0203*/case GuiAlarmID::ALARM_ID_PRESSURE_SENSOR_FAULT : { result = QObject::tr("Pressure sensor fault." ); break; } /* 203*/ +/*0204*/case GuiAlarmID::ALARM_ID_RO_REJECTION_RATIO_OUT_OF_RANGE : { result = QObject::tr("RO rejection ratio out of range." ); break; } /* 204*/ +/*0205*/case GuiAlarmID::ALARM_ID_CONDUCTIVITY_SENSOR_FAULT : { result = QObject::tr("Conductivity sensor fault." ); break; } /* 205*/ +/*0206*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_FILL_OUT_OF_TIME : { result = QObject::tr("DG dialysate fill runs out of time." ); break; } /* 206*/ +/*0207*/case GuiAlarmID::ALARM_ID_DG_FLOW_METER_CHECK_FAILURE : { result = QObject::tr("DG flow meter check failure alarm." ); break; } /* 207*/ +/*0208*/case GuiAlarmID::ALARM_ID_HD_VENOUS_LINE_OCCLUSION : { result = QObject::tr("HD venous pressure occlusion alarm." ); break; } /* 208*/ +/*0209*/case GuiAlarmID::ALARM_ID_DG_DRAIN_CIRCULATION_LINE_TIMEOUT : { result = QObject::tr("DG drain circulation line timeout." ); break; } /* 209*/ +/*0210*/case GuiAlarmID::ALARM_ID_HD_BATTERY_PACK_ERROR_DETECTED : { result = QObject::tr("HD battery pack detected an error." ); break; } /* 210*/ +/*0211*/case GuiAlarmID::ALARM_ID_BLOOD_SITTING_WARNING : { result = QObject::tr("Blood sitting too long warning (>4 min)." ); break; } /* 211*/ +/*0212*/case GuiAlarmID::ALARM_ID_END_OF_TREATMENT_ALARM : { result = QObject::tr("HD end of treatment alarm (user not acting to end treatment)." ); break; } /* 212*/ +/*0213*/case GuiAlarmID::ALARM_ID_PRIME_COMPLETED_MEDIUM : { result = QObject::tr("HD prime completed medium priority alarm." ); break; } /* 213*/ +/*0214*/case GuiAlarmID::ALARM_ID_SALINE_BOLUS_VOLUME_CHECK_FAILURE : { result = QObject::tr("HD Saline bolus volume check failure." ); break; } /* 214*/ +/*0215*/case GuiAlarmID::ALARM_ID_RINSEBACK_VOLUME_CHECK_FAILURE : { result = QObject::tr("HD rinseback volume check failure." ); break; } /* 215*/ +/*0216*/case GuiAlarmID::ALARM_ID_END_TREATMENT_TIMEOUT_ALARM : { result = QObject::tr("HD end treatment sub-mode timeout alarm." ); break; } /* 216*/ +/*0217*/case GuiAlarmID::ALARM_ID_BLOOD_PRIME_VOLUME_CHECK_FAILURE : { result = QObject::tr("HD blood prime volume check failure." ); break; } /* 217*/ +/*0218*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_DETECTED : { result = QObject::tr("HD syringe detected alarm." ); break; } /* 218*/ +/*0219*/case GuiAlarmID::ALARM_ID_HD_SYRINGE_PUMP_SYRINGE_REMOVED : { result = QObject::tr("HD syringe pump syringe removed alarm." ); break; } /* 219*/ +/*0220*/case GuiAlarmID::ALARM_ID_HD_BATTERY_PACK_CHARGE_TOO_LOW : { result = QObject::tr("HD battery pack SOC is too low." ); break; } /* 220*/ +/*0221*/case GuiAlarmID::ALARM_ID_EMPTY_SALINE_BAG : { result = QObject::tr("HD Saline bag is empty." ); break; } /* 221*/ +/*0222*/case GuiAlarmID::ALARM_ID_DIALYSATE_TEMPERATURE_HIGH : { result = QObject::tr("HD dialysate temperature too high alarm." ); break; } /* 222*/ +/*0223*/case GuiAlarmID::ALARM_ID_DIALYSATE_TEMPERATURE_LOW : { result = QObject::tr("HD dialysate temperature too low alarm." ); break; } /* 223*/ +/*0224*/case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_BY_USER : { result = QObject::tr("Treatment stopped by user action." ); break; } /* 224*/ +/*0225*/case GuiAlarmID::ALARM_ID_END_OF_TREATMENT_WARNING : { result = QObject::tr("HD end of treatment warning." ); break; } /* 225*/ +/*0226*/case GuiAlarmID::ALARM_ID_PRIME_COMPLETED_LOW_PRIORITY : { result = QObject::tr("HD prime completed low priority alarm." ); break; } /* 226*/ +/*0227*/case GuiAlarmID::ALARM_ID_PRIME_OUT_OF_TIME : { result = QObject::tr("HD prime out of time alarm." ); break; } /* 227*/ +/*0228*/case GuiAlarmID::ALARM_ID_HD_PRIME_PURGE_AIR_TIME_OUT : { result = QObject::tr("HD time out on prime sub-mode purge air state." ); break; } /* 228*/ +/*0229*/case GuiAlarmID::ALARM_ID_PRIME_DIALYSATE_DIALYZER_TIME_OUT : { result = QObject::tr("HD prime dialysate dialyzer time out alarm." ); break; } /* 229*/ +/*0230*/case GuiAlarmID::ALARM_ID_PRIME_DIALYSATE_BYPASS_TIME_OUT : { result = QObject::tr("HD prime dialysate bypass time out alarm." ); break; } /* 230*/ +/*0231*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode dry pressure self-test failure." ); break; } /* 231*/ +/*0232*/case GuiAlarmID::ALARM_ID_PRE_TREATMENT_WET_LC_TEST_FAILURE : { result = QObject::tr("HD pre-treatment mode wet self-test LC vs LC failure." ); break; } /* 232*/ +/*0233*/case GuiAlarmID::ALARM_ID__AVAILABLE_8 : { result = QObject::tr("Alarm ID available for use." ); break; } /* 233*/ +/*0234*/case GuiAlarmID::ALARM_ID_RTC_RAM_OPS_ERROR : { result = QObject::tr("RTC (i.e read time) or RAM operations failure (read or write)." ); break; } /* 234*/ +/*0235*/case GuiAlarmID::ALARM_ID_TREATMENT_STOPPED_AFTER_RINSEBACK : { result = QObject::tr("HD in treatment stopped sub-mode after rinseback completed (no escalation)." ); break; } /* 235*/ +/*0236*/case GuiAlarmID::ALARM_ID_INSTALL_NEW_CARTRIDGE : { result = QObject::tr("HD needs new cartridge to be installed." ); break; } /* 236*/ +/*0237*/case GuiAlarmID::ALARM_ID_PRIME_SALINE_DIALYZER_TIME_OUT : { result = QObject::tr("HD prime saline dialyzer time out alarm." ); break; } /* 237*/ +/*0238*/case GuiAlarmID::ALARM_ID_NO_CARTRIDGE_LOADED : { result = QObject::tr("HD no cartridge loaded or installed improperly alarm." ); break; } /* 238*/ +/*0239*/case GuiAlarmID::ALARM_ID_CARTRIDGE_REMOVAL_FAILURE : { result = QObject::tr("HD fail to remove cartridge alarm." ); break; } /* 239*/ +/*0240*/case GuiAlarmID::ALARM_ID_BICARB_CONDUCTIVITY_OUT_OF_RANGE : { result = QObject::tr("Bicarb conductivity out of range during bicarb pump check alarm." ); break; } /* 240*/ +/*0241*/case GuiAlarmID::ALARM_ID_DG_RESERVOIR_DRAIN_TIMEOUT : { result = QObject::tr("DG reservoir drain time out." ); break; } /* 241*/ +/*0242*/case GuiAlarmID::ALARM_ID_DG_RESERVOIR_FILL_TIMEOUT : { result = QObject::tr("DG reservoir fill time out." ); break; } /* 242*/ +/*0243*/case GuiAlarmID::ALARM_ID_DG_RESERVOIR_LEAK_TIMEOUT : { result = QObject::tr("DG reservoir leak time out." ); break; } /* 243*/ +/*0244*/case GuiAlarmID::ALARM_ID_DG_TEMP_SENSORS_DIFF_OUT_OF_RANGE : { result = QObject::tr("DG temperature sensors difference out of range." ); break; } /* 244*/ +/*0245*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_TARGET_TEMP_TIMEOUT : { result = QObject::tr("DG heat disinfect target temperature time out (could not reach to temperature)." ); break; } /* 245*/ +/*0246*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_INLET_PRES_AND_TEMP_SNSRS_OUT : { result = QObject::tr("DG heat disinfect inlet pressure and temperature sensors out of range." ); break; } /* 246*/ +/*0247*/case GuiAlarmID::ALARM_ID_DG_HEAT_DISINFECT_INLET_COND_AND_TEMP_OUT : { result = QObject::tr("DG heat disinfect inlet conductivity and temperature out of range." ); break; } /* 247*/ +/*0248*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_TARGET_TEMP_TIMEOUT : { result = QObject::tr("DG chemical disinfect could not reach to target temperature." ); break; } /* 248*/ +/*0249*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_INLET_PRES_AND_TEMP_SNSRS_OUT : { result = QObject::tr("DG chemical disinfect inlet pressure and temperature sensors out of range." ); break; } /* 249*/ +/*0250*/case GuiAlarmID::ALARM_ID_DG_CHEM_DISINFECT_INLET_COND_AND_TEMP_OUT : { result = QObject::tr("DG chemical disinfect inlet conductivity and temperature out of range." ); break; } /* 250*/ +/*0251*/case GuiAlarmID::ALARM_ID_HD_INVALID_SYSTEM_RECORD_CRC : { result = QObject::tr("HD invalid system record." ); break; } /* 251*/ +/*0252*/case GuiAlarmID::ALARM_ID_HD_INVALID_SERVICE_RECORD_CRC : { result = QObject::tr("HD invalid service record." ); break; } /* 252*/ +/*0253*/case GuiAlarmID::ALARM_ID_DG_INVALID_SYSTEM_RECORD_CRC : { result = QObject::tr("DG invalid system record." ); break; } /* 253*/ +/*0254*/case GuiAlarmID::ALARM_ID_DG_INVALID_SERVICE_RECORD_CRC : { result = QObject::tr("DG invalid service record." ); break; } /* 254*/ +/*0255*/case GuiAlarmID::ALARM_ID_HD_UI_COMPATIBILITY_ERROR : { result = QObject::tr("HD and UI software builds are not compatible." ); break; } /* 255*/ +/*0256*/case GuiAlarmID::ALARM_ID_HD_DG_COMPATIBILITY_ERROR : { result = QObject::tr("HD and DG software builds are not compatible." ); break; } /* 256*/ +/*0257*/case GuiAlarmID::ALARM_ID_DG_FPGA_POWER_OUT_TIMEOUT : { result = QObject::tr("DG FPGA power out timeout." ); break; } /* 257*/ +/*0258*/case GuiAlarmID::ALARM_ID_HD_FPGA_POWER_OUT_TIMEOUT : { result = QObject::tr("HD FPGA power out timeout." ); break; } /* 258*/ +/*0259*/case GuiAlarmID::ALARM_ID_HD_TEMPERATURES_OUT_OF_RANGE : { result = QObject::tr("HD temperatures out of range." ); break; } /* 259*/ +/*0260*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SHASUM : { result = QObject::tr("UI POST Application Integrity (Sha256Sum) failure." ); break; } /* 260*/ +/*0261*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_CANBUS : { result = QObject::tr("UI POST CANBus failure." ); break; } /* 261*/ +/*0262*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_DISPLAY : { result = QObject::tr("UI POST Display failure." ); break; } /* 262*/ +/*0263*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_TOUCH : { result = QObject::tr("UI POST Touch failure." ); break; } /* 263*/ +/*0264*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SDCARD : { result = QObject::tr("UI POST SD-Card failure." ); break; } /* 264*/ +/*0265*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_RTC : { result = QObject::tr("UI POST RTC failure." ); break; } /* 265*/ +/*0266*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_WIFI : { result = QObject::tr("UI POST WiFi failure." ); break; } /* 266*/ +/*0267*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_BLUETOOTH : { result = QObject::tr("UI POST Bluetooth failure." ); break; } /* 267*/ +/*0268*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_ETHERNET : { result = QObject::tr("UI POST Ethernet failure." ); break; } /* 268*/ +/*0269*/case GuiAlarmID::ALARM_ID_UI_POST_FAILURE_SOUND : { result = QObject::tr("UI POST Sound failure." ); break; } /* 269*/ +/*0270*/case GuiAlarmID::ALARM_ID_HD_SAFETY_SHUTDOWN_POST_TEST_FAILED : { result = QObject::tr("HD POST Safety Shutdown failure." ); break; } /* 270*/ +/*0271*/case GuiAlarmID::ALARM_ID_DG_SAFETY_SHUTDOWN_POST_TEST_FAILED : { result = QObject::tr("DG POST Safety Shutdown failure." ); break; } /* 271*/ +/*0272*/case GuiAlarmID::ALARM_ID_HD_FAN_RPM_OUT_OF_RANGE : { result = QObject::tr("HD Fan RPM out of range." ); break; } /* 272*/ +/*0273*/case GuiAlarmID::ALARM_ID_HD_BLOOD_FLOW_OUT_OF_RANGE : { result = QObject::tr("HD measured blood pump flow rate is out of range." ); break; } /* 273*/ +/*0274*/case GuiAlarmID::ALARM_ID_HD_DIAL_IN_FLOW_OUT_OF_RANGE : { result = QObject::tr("HD measured dialysate inlet pump flow rate is out of range." ); break; } /* 274*/ +/*0275*/case GuiAlarmID::ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("HD arterial pressure sensor is reading out of range." ); break; } /* 275*/ +/*0276*/case GuiAlarmID::ALARM_ID_HD_VENOUS_PRESSURE_OUT_OF_RANGE : { result = QObject::tr("HD venous pressure sensor is reading out of range." ); break; } /* 276*/ +/*0277*/case GuiAlarmID::ALARM_ID_HD_BP_OCCLUSION_OUT_OF_RANGE : { result = QObject::tr("HD BP occlusion sensor is reading out of range." ); break; } /* 277*/ +/*0278*/case GuiAlarmID::ALARM_ID_HD_ACTIVE_RESERVOIR_WEIGHT_OUT_OF_RANGE : { result = QObject::tr("HD active reservoir weight out of range." ); break; } /* 278*/ +/*0279*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_DRAIN_TIME_OUT : { result = QObject::tr("DG dialysate drain time out." ); break; } /* 279*/ +/*0280*/case GuiAlarmID::ALARM_ID_HD_ARTERIAL_PRESSURE_READ_TIMEOUT_ERROR : { result = QObject::tr("HD arterial pressure sensor read timeout error." ); break; } /* 280*/ +/*0281*/case GuiAlarmID::ALARM_ID_DG_ACID_BOTTLE_LOW_VOLUME : { result = QObject::tr("Acid concentration bottle low volume alarm." ); break; } /* 281*/ +/*0282*/case GuiAlarmID::ALARM_ID_DG_BICARB_BOTTLE_LOW_VOLUME : { result = QObject::tr("Bicarbonate concentration bottle low volume alarm." ); break; } /* 282*/ +/*0283*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_WEIGHT_OUT_OF_RANGE : { result = QObject::tr("DG load cells weight out of range." ); break; } /* 283*/ +/*0284*/case GuiAlarmID::ALARM_ID_DG_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE : { result = QObject::tr("DG load cells primary/back up drift out of range." ); break; } /* 284*/ +/*0285*/case GuiAlarmID::ALARM_ID_HD_TREATMENT_RECIRC_TIMEOUT_WARNING : { result = QObject::tr("HD treatment recirculate timeout warning." ); break; } /* 285*/ +/*0286*/case GuiAlarmID::ALARM_ID_HD_TREATMENT_RINSEBACK_TIMEOUT_WARNING : { result = QObject::tr("HD treatment rinseback complete timeout warning." ); break; } /* 286*/ +/*0287*/case GuiAlarmID::ALARM_ID_HD_FPGA_CLOCK_SPEED_CHECK_FAILURE : { result = QObject::tr("HD processor clock speed checks against FPGA clock failure." ); break; } /* 287*/ +/*0288*/case GuiAlarmID::ALARM_ID_HD_LOAD_CELL_PRIMARY_BACKUP_DRIFT_OUT_OF_RANGE : { result = QObject::tr("HD load cells primary/back up drift out of range." ); break; } /* 288*/ +/*0289*/case GuiAlarmID::ALARM_ID_DG_DIALYSATE_OR_CONC_CAP_NOT_IN_PROPER_POSITION : { result = QObject::tr("DG dialysate or concentrate caps not closed." ); break; } /* 289*/ +/*0290*/case GuiAlarmID::ALARM_ID_DG_FLOW_TOO_LOW_WHILE_HEATER_ON : { result = QObject::tr("DG flow too low while heater is on." ); break; } /* 290*/ +/*0291*/case GuiAlarmID::NUM_OF_ALARM_IDS : { result = QObject::tr("Total number of alarms." ); break; } /* 291*/ default: result = QObject::tr("ALARM_ID_UNDEFINED [%1]").arg(int(vAlarmID)); Index: sources/model/settings/MSettings.cpp =================================================================== diff -u -ra82ee4f326b26c4369f1306f867edc1bca6dabbe -r6f2622be80fcaee8d71baf78404627381157970c --- sources/model/settings/MSettings.cpp (.../MSettings.cpp) (revision a82ee4f326b26c4369f1306f867edc1bca6dabbe) +++ sources/model/settings/MSettings.cpp (.../MSettings.cpp) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -164,8 +164,8 @@ */ void MSettings::datetimeFormat() { - QVariant dateFotmat = _Settings.value("DateTime", "Date Format"); - QVariant timeFotmat = _Settings.value("DateTime", "Time Format"); + QVariant dateFotmat = _Settings.value("Date", "Format"); + QVariant timeFotmat = _Settings.value("Time", "Format"); if (dateFotmat.isValid() && timeFotmat.isValid()) _datetimeFormat = dateFotmat.toString() + " " + timeFotmat.toString(); } Index: sources/storage/Settings.h =================================================================== diff -u -ra04fd119778f0483cba5139a11e3c6bad7f2324a -r6f2622be80fcaee8d71baf78404627381157970c --- sources/storage/Settings.h (.../Settings.h) (revision a04fd119778f0483cba5139a11e3c6bad7f2324a) +++ sources/storage/Settings.h (.../Settings.h) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -65,6 +65,31 @@ int read(); int save(const QString &vCategory, const QString &vGroup, const QString &vKey, const QString &vValue); + + enum Category_Enum { + eInstructions , + eConfigurationsDataList , // TODO: the category for this conf is not used. may need to be merged into the Settings, but since it is list, It needs a little more thought. + eAlarms , + eMessagesUnhandled , + eSettingsSystem , + }; + + static QString category(Category_Enum vCategory) { + switch (vCategory) { // NOTE: don't use default + case eInstructions : return Storage::Settings_Category_Instructions ; + case eConfigurationsDataList : return Storage::Settings_Category_ConfigurationsDataList ; + case eAlarms : return Storage::Settings_Category_Alarms ; + case eMessagesUnhandled : return Storage::Settings_Category_MessagesUnhandled ; + case eSettingsSystem : return Storage::Settings_Category_SettingsSystem ; + } + return ""; + } + + static bool isCategoryInstructions (const QString &vCategory) { return vCategory == category(eInstructions ); } + static bool isCategoryConfigurationsDataList (const QString &vCategory) { return vCategory == category(eConfigurationsDataList ); } + static bool isCategoryAlarms (const QString &vCategory) { return vCategory == category(eAlarms ); } + static bool isCategoryMessagesUnhandled (const QString &vCategory) { return vCategory == category(eMessagesUnhandled ); } + static bool isCategorySettingsSystem (const QString &vCategory) { return vCategory == category(eSettingsSystem ); } }; } Index: sources/storage/StorageGlobals.cpp =================================================================== diff -u -ra82ee4f326b26c4369f1306f867edc1bca6dabbe -r6f2622be80fcaee8d71baf78404627381157970c --- sources/storage/StorageGlobals.cpp (.../StorageGlobals.cpp) (revision a82ee4f326b26c4369f1306f867edc1bca6dabbe) +++ sources/storage/StorageGlobals.cpp (.../StorageGlobals.cpp) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -69,7 +69,14 @@ // should be in the project application folder. [is tracking by git] const char *Settings_Path_Name = "/home/denali/Projects/application/resources/settings/"; #endif + const char *Settings_Category_Instructions = "Instructions/Instructions"; + const char *Settings_Category_ConfigurationsDataList = "Configurations/DataList" ; + const char *Settings_Category_Alarms = "Alarms/Alarms" ; + const char *Settings_Category_MessagesUnhandled = "Messages/Unhandled" ; + const char *Settings_Category_SettingsSystem = "Settings/System" ; + const char *Settings_Category_NoCANBus = "Development/NoCANBus" ; + // CloudSync credentials #ifdef BUILD_FOR_TARGET const char *CloudSync_Base_Path_Name = "/home/root/.cloudSync/"; Index: sources/storage/StorageGlobals.h =================================================================== diff -u -ra82ee4f326b26c4369f1306f867edc1bca6dabbe -r6f2622be80fcaee8d71baf78404627381157970c --- sources/storage/StorageGlobals.h (.../StorageGlobals.h) (revision a82ee4f326b26c4369f1306f867edc1bca6dabbe) +++ sources/storage/StorageGlobals.h (.../StorageGlobals.h) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -45,6 +45,12 @@ // Settings extern const char *Settings_Path_Name; + extern const char *Settings_Category_Instructions ; + extern const char *Settings_Category_ConfigurationsDataList ; + extern const char *Settings_Category_Alarms ; + extern const char *Settings_Category_MessagesUnhandled ; + extern const char *Settings_Category_SettingsSystem ; + extern const char *Settings_Category_NoCANBus ; // CloudSync_Credentials_Path_Name extern const char *CloudSync_Base_Path_Name; Index: sources/view/hd/alarm/VAlarmStatus.cpp =================================================================== diff -u -r79a6cfcb10472261f3ec26eaf0baf6f1245cd311 -r6f2622be80fcaee8d71baf78404627381157970c --- sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 79a6cfcb10472261f3ec26eaf0baf6f1245cd311) +++ sources/view/hd/alarm/VAlarmStatus.cpp (.../VAlarmStatus.cpp) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -16,11 +16,13 @@ // Project #include "GuiController.h" +#include "Settings.h" VIEW_DEF_CLASS_ADJUSTMENT(VAlarmStatus) void VAlarmStatus::initConnections() { ACTION_VIEW_CONNECTION(AlarmStatusData ); + ACTION_VIEW_CONNECTION(SettingsData ); ADJUST_VIEW_CONNECTION(AlarmSilenceRequestData ); ADJUST_VIEW_CONNECTION(AlarmUserActionRequestData ); /* // disabled coco begin validated: Manually tested. This model class is a placeholder and there is no use case for this now. @@ -192,3 +194,42 @@ return alarmIDText(static_cast(alarm_AlarmID())); } +QString VAlarmStatus::title () { QString s = _alarms[_alarm_AlarmID].title ; if ( ! s.isEmpty()) return s; else return tr("Alarm") ; } +QString VAlarmStatus::message () { QString s = _alarms[_alarm_AlarmID].message; if ( ! s.isEmpty()) return s; else return text() ; } +QStringList VAlarmStatus::instructionKeys () { return _alarms[_alarm_AlarmID].instructions.keys () ; } +QStringList VAlarmStatus::instructionValues () { return _alarms[_alarm_AlarmID].instructions.values () ; } + +void VAlarmStatus::onActionReceive(const SettingsData &) { + QStringList mCategorys = _Settings.categorys(); + for (const QString &category : mCategorys) { + QStringList groups = _Settings.groups(category); + if ( ! Storage::Settings::isCategoryAlarms( category ) ) continue; + + for (const auto &group : groups) { + bool ok = true; + quint32 id = group.toInt( &ok ); + if ( ! ok ) { LOG_DEBUG(QString("Not an alarm ID number [%1]").arg(group)); continue; } + + AlarmData alarmData; + InstructionData instructionData; + for (const QString &key : _Settings.keys(group)) { + if (isTitle ( key ) ) { + alarmData.title = _Settings.value(group, key).toString(); + } else if (isMessage ( key ) ) { + alarmData.message = _Settings.value(group, key).toString(); + } else { + instructionData[key] = _Settings.value(group, key).toString(); + alarmData.instructions = instructionData; + } + } + _alarms[id] = alarmData; + + /// DEBUG: + /// TODO: the MSettings model should do the same has been done here and use map instead of separate structure to iterate vertically, while map supports, keys, values. + // qDebug() << "@" << id << _alarms[id].title << _alarms[id].message << _alarms[id].instructions.keys() << _alarms[id].instructions.values(); + // for (const auto &key : _alarms[id].instructions.keys()) { + // qDebug() << "-" << key << _alarms[id].instructions.value(key); + // } + } + } +} Index: sources/view/hd/alarm/VAlarmStatus.h =================================================================== diff -u -r79a6cfcb10472261f3ec26eaf0baf6f1245cd311 -r6f2622be80fcaee8d71baf78404627381157970c --- sources/view/hd/alarm/VAlarmStatus.h (.../VAlarmStatus.h) (revision 79a6cfcb10472261f3ec26eaf0baf6f1245cd311) +++ sources/view/hd/alarm/VAlarmStatus.h (.../VAlarmStatus.h) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -49,6 +49,26 @@ // friends friend class ::tst_views; + + typedef QMap InstructionData; + struct AlarmData { + QString title = ""; + QString message = ""; + InstructionData instructions; + bool hasInstruction() { return instructions.count(); } + }; + + bool isTitle (const QString &vKey) { + return vKey == "Title"; + } + + bool isMessage (const QString &vKey) { + return vKey == "Message"; + } + + QMap _alarms; + + // ********** DYNAMIC PROPERTIES: The properties which need to be updated by each alarm message received. ********** // READONLY( bool , hasAlarm , false) // disabled coco begin validated: Has been validated manually PROPERTY( quint32 , alarm_Priority , 0) @@ -71,16 +91,28 @@ PROPERTY( bool , alarm_Flag_alarmsCondition , false) // disabled coco end - Q_PROPERTY(QString text READ text NOTIFY alarm_AlarmIDChanged) + // ********** 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_ADJUSTMENT(VAlarmStatus, AlarmStatusData ) - ADJUST_TRANSMT_SIGNAL ( AlarmSilenceRequestData ) - ADJUST_TRANSMT_SIGNAL ( AlarmUserActionRequestData ) - ADJUST_TRANSMT_SIGNAL ( AlarmClearedConditionRequestData) + VIEW_DEC_CLASS ( VAlarmStatus ) + VIEW_DEC_SLOT ( AlarmStatusData ) + VIEW_DEC_SLOT ( SettingsData ) + ADJUST_TRANSMT_SIGNAL ( AlarmSilenceRequestData ) + ADJUST_TRANSMT_SIGNAL ( AlarmUserActionRequestData ) + ADJUST_TRANSMT_SIGNAL ( AlarmClearedConditionRequestData ) + private: - QString text (); - QString alarmIDText (GuiAlarmID vEnum); + QString title (); + QString message (); + QStringList instructionKeys (); + QStringList instructionValues (); + QString text (); + QString alarmIDText (GuiAlarmID vEnum); signals: void didAlarmRaise(); Index: sources/view/settings/VSettings.cpp =================================================================== diff -u -r627b97843f87f5ca8fbd731c6c4a6d9fae4352ce -r6f2622be80fcaee8d71baf78404627381157970c --- sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision 627b97843f87f5ca8fbd731c6c4a6d9fae4352ce) +++ sources/view/settings/VSettings.cpp (.../VSettings.cpp) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -49,66 +49,67 @@ { // TODO: this function needs to be moved to the controller, to execute in settings thread not the main thread. // it should then send the output here to update the specific properties defined. - QVariantMap mSettings; - QVariantMap mData; + QVariantMap mInstructions; QStringList mCategorys = _Settings.categorys(); for (const auto &category : mCategorys) { QStringList groups = _Settings.groups(category); for (const auto &group : groups) { - QVariantMap details; QStringList keys = _Settings.keys (group); QVariantList values = _Settings.values (group); - QString location = _Settings.location (group); - // DEBUG : - // qDebug() << " ##### " - // << group - // << keys - // << values - // << location ; - details["location"] = location; - details["keys" ] = keys ; - details["values" ] = values ; + if ( Storage::Settings::isCategoryInstructions( category ) ) { + // DEBUG : + // qDebug() << " ##### " + // << group + // << keys + // << values + // << location ; + QVariantMap details; + QString location = _Settings.location (group); + details["location"] = location; + details["keys" ] = keys ; + details["values" ] = values ; - mSettings[group] = details; - for (const auto &key : keys) { - QVariantMap keyValue; - if ( isservicePass (category, group, key) ) { - QString mServicePass; - mServicePass = _Settings.value(group, key).toString (); - keyValue[key] = mServicePass ; - servicePass ( mServicePass); + mInstructions[group] = details; + } + else { //TODO: Since it is global system settings, move this to the settings controller so the C++ backend can also use it. like Date/Time formats. + for (const auto &key : keys) { + QVariantMap keyValue; + if ( isservicePass (category, group, key) ) { + QString mServicePass; + mServicePass = _Settings.value(group, key).toString (); + keyValue[key] = mServicePass ; + servicePass ( mServicePass); + } + else if ( isalarmVolume (category, group, key) ) { + quint8 mAlarmVolume; + mAlarmVolume = _Settings.value(group, key).toInt (); // returns 0 if fails, so no error checking needed. + keyValue[key] = mAlarmVolume ; + alarmVolume ( mAlarmVolume); + } + else if ( isnoCANBus (category, group, key) ) { + bool mNoCANBus; + mNoCANBus = _Settings.value(group, key).toBool (); // returns 0/false if fails, so no error checking needed. + keyValue[key] = mNoCANBus ; + noCANBus ( mNoCANBus); + } + else { + keyValue[key] = _Settings.value(group, key); + } + QVariantMap groups; + groups [group] = keyValue; } - else if ( isalarmVolume (category, group, key) ) { - quint8 mAlarmVolume; - mAlarmVolume = _Settings.value(group, key).toInt (); // returns 0 if fails, so no error checking needed. - keyValue[key] = mAlarmVolume ; - alarmVolume ( mAlarmVolume); - } - else if ( isnoCANBus (category, group, key) ) { - bool mNoCANBus; - mNoCANBus = _Settings.value(group, key).toBool (); // returns 0/false if fails, so no error checking needed. - keyValue[key] = mNoCANBus ; - noCANBus ( mNoCANBus); - } - else { - keyValue[key] = _Settings.value(group, key); - } - QVariantMap groups; - groups [group] = keyValue; - mData [category] = groups; } } } - categorys(mCategorys); - settings(mSettings); - data(mData); + categorys (mCategorys); + instructions(mInstructions); // If the configuration exits, then it has been set, and this call internally will be neutral, // otherwise will use the default value and will notify the update. - servicePass( _servicePass ); - alarmVolume( _alarmVolume ); - // noCANBus ( _noCANBus ); // This line has been put here to remind developers that it is intentionally removed, to not to add a default value. + servicePass ( _servicePass ); + alarmVolume ( _alarmVolume ); + // noCANBus ( _noCANBus ); // This line has been put here to remind developers that it is intentionally removed, to not to add a default value. adjustment(true); } Index: sources/view/settings/VSettings.h =================================================================== diff -u -r627b97843f87f5ca8fbd731c6c4a6d9fae4352ce -r6f2622be80fcaee8d71baf78404627381157970c --- sources/view/settings/VSettings.h (.../VSettings.h) (revision 627b97843f87f5ca8fbd731c6c4a6d9fae4352ce) +++ sources/view/settings/VSettings.h (.../VSettings.h) (revision 6f2622be80fcaee8d71baf78404627381157970c) @@ -22,6 +22,7 @@ #include "main.h" #include "MSettings.h" #include "VView.h" +#include "StorageGlobals.h" namespace View { @@ -36,12 +37,11 @@ CONSTANT(QString , groupFormat , "%1^%2" ) PROPERTY(bool , initialized , false ) PROPERTY(QStringList , categorys , {} ) - PROPERTY(QVariantMap , settings , {} ) - PROPERTY(QVariantMap , data , {} ) + PROPERTY(QVariantMap , instructions , {} ) - SETTINGS(QString , servicePass ,"123" , "Settings/System" , "Service" , "Password" ) - SETTINGS(quint8 , alarmVolume , 100 , "Settings/System" , "Alarm" , "Volume" ) - SETTINGS(bool , noCANBus , false , "Development/NoCANBus", "Navigation" , "Create Treatment To Patient ID" ) + SETTINGS(QString , servicePass ,"123" , Storage::Settings_Category_SettingsSystem , "Service" , "Password" ) + SETTINGS(quint8 , alarmVolume , 100 , Storage::Settings_Category_SettingsSystem , "Alarm" , "Volume" ) + SETTINGS(bool , noCANBus , false , Storage::Settings_Category_NoCANBus , "Navigation" , "Create Treatment To Patient ID" ) VIEW_DEC(VSettings, SettingsData)