Index: .gitignore =================================================================== diff -u -rd07ec81c7002ed2ac60c1dfc3101fb820e88211c -r5abbbc0d8019925283cc4b38c782afde9802aa35 --- .gitignore (.../.gitignore) (revision d07ec81c7002ed2ac60c1dfc3101fb820e88211c) +++ .gitignore (.../.gitignore) (revision 5abbbc0d8019925283cc4b38c782afde9802aa35) @@ -1,2 +1,5 @@ *.autosave common +tags +scripts/denali +denali.pro.* Fisheye: Tag 5abbbc0d8019925283cc4b38c782afde9802aa35 refers to a dead (removed) revision in file `denali.pro.user'. Fisheye: No comparison available. Pass `N' to diff? Index: scripts/run.sh =================================================================== diff -u -r057d3ef4e29c63235040c5cfe8c6421ef7787d6a -r5abbbc0d8019925283cc4b38c782afde9802aa35 --- scripts/run.sh (.../run.sh) (revision 057d3ef4e29c63235040c5cfe8c6421ef7787d6a) +++ scripts/run.sh (.../run.sh) (revision 5abbbc0d8019925283cc4b38c782afde9802aa35) @@ -69,6 +69,6 @@ # echo ":: candump launched" #fi -#launching denali application -$HOME/denali & +#launching denali application, disable keep-alive +$HOME/denali -0 & Index: sources/model/malarmstatus.cpp =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r5abbbc0d8019925283cc4b38c782afde9802aa35 --- sources/model/malarmstatus.cpp (.../malarmstatus.cpp) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/model/malarmstatus.cpp (.../malarmstatus.cpp) (revision 5abbbc0d8019925283cc4b38c782afde9802aa35) @@ -12,8 +12,8 @@ * */ #include "malarmstatus.h" +#include "AlarmDefs.h" - using namespace Model; MAlarmStatus::MAlarmStatus() { } @@ -55,3 +55,71 @@ data.mFlags = _data.mFlags ; return data; } + +/** + * @brief MAlarmStatus::toText + * Looks up the alarm description using the alarm enum + * @param val - the alarm enum (int) + * @return The alarm description (QString) + */ +QString MAlarmStatus::toText(int val) { + + switch (val) { + case ALARM_ID_NO_ALARM: return "NULL Alarm"; + case ALARM_ID_SOFTWARE_FAULT: return "Software Error"; + case ALARM_ID_STUCK_BUTTON_TEST_FAILED: return "Indication for when no alarms is a possible situation."; + case ALARM_ID_FPGA_POST_TEST_FAILED: return "FPGA POST failure."; + case ALARM_ID_WATCHDOG_POST_TEST_FAILED: return "Watchdog POST failure."; + case ALARM_ID_UI_COMM_POST_FAILED: return "UI communication POST failure."; + case ALARM_ID_BLOOD_PUMP_MC_CURRENT_CHECK: return "Blood pump failed motor controller current check."; + case ALARM_ID_BLOOD_PUMP_MC_SPEED_CHECK: return "Blood pump failed motor controller speed check."; + case ALARM_ID_BLOOD_PUMP_MC_DIRECTION_CHECK: return "Blood pump failed motor controller direction check."; + case ALARM_ID_BLOOD_PUMP_ROTOR_SPEED_CHECK: return "Blood pump failed rotor speed check."; + case ALARM_ID_DIAL_IN_PUMP_MC_CURRENT_CHECK: return "Dialysis inlet pump failed motor controller current check."; + case ALARM_ID_DIAL_IN_PUMP_MC_SPEED_CHECK: return "Dialysis inlet pump failed motor controller speed check."; + case ALARM_ID_DIAL_IN_PUMP_MC_DIRECTION_CHECK: return "Dialysis inlet pump failed motor controller direction check."; + case ALARM_ID_DIAL_IN_PUMP_ROTOR_SPEED_CHECK: return "Dialysis inlet pump failed rotor speed check. "; + case ALARM_ID_DIAL_OUT_PUMP_MC_CURRENT_CHECK: return "Dialysis outlet pump failed motor controller current check. "; + case ALARM_ID_DIAL_OUT_PUMP_MC_SPEED_CHECK: return "Dialysis outlet pump failed motor controller speed check. "; + case ALARM_ID_DIAL_OUT_PUMP_MC_DIRECTION_CHECK: return "Dialysis outlet pump failed motor controller direction check. "; + case ALARM_ID_DIAL_OUT_PUMP_ROTOR_SPEED_CHECK: return "Dialysis outlet pump failed rotor speed check. "; + case ALARM_ID_WATCHDOG_EXPIRED: return "Watchdog expired error. "; + case ALARM_ID_RTC_COMM_ERROR: return "Real-time clock communication error. "; + case ALARM_ID_RTC_CONFIG_ERROR: return "Real-time clock configuration error. "; + case ALARM_ID_DG_COMM_TIMEOUT: return "Dialysate generator communication timeout. "; + case ALARM_ID_UI_COMM_TIMEOUT: return "User interface communication timeout. "; + case ALARM_ID_COMM_TOO_MANY_BAD_CRCS: return "Too many bad CRCs detected on received system messages. "; + case ALARM_ID_TREATMENT_STOPPED_BY_USER: return "Treatment stopped by user action - pressed stop button. "; + case ALARM_ID_BLOOD_SITTING_WARNING: return "Blood sitting too long warning (>4 min). "; + case ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RESUME: return "Blood sitting too long alarm (>5 min). "; + case ALARM_ID_BLOOD_SITTING_TOO_LONG_NO_RINSEBACK: return "Blood sitting too long alarm (>10 min). "; + case ALARM_ID_CAN_MESSAGE_NOT_ACKED: return "System message needing acknowledgment was not acknowledged. "; + case ALARM_ID_OCCLUSION_BLOOD_PUMP: return "Blood pump occlusion detected. "; + case ALARM_ID_OCCLUSION_DIAL_IN_PUMP: return "Dialysate inlet pump occlusion detected. "; + case ALARM_ID_OCCLUSION_DIAL_OUT_PUMP: return "Dialysate outlet pump occlusion detected. "; + case ALARM_ID_ARTERIAL_PRESSURE_LOW: return "Arterial pressure too low during treatment. "; + case ALARM_ID_ARTERIAL_PRESSURE_HIGH: return "Arterial pressure too high during treatment. "; + case ALARM_ID_VENOUS_PRESSURE_LOW: return "Venous pressure too low during treatment. "; + case ALARM_ID_VENOUS_PRESSURE_HIGH: return "Venous pressure too high during treatment."; + case ALARM_ID_UF_RATE_TOO_HIGH_ERROR: return "Ultrafiltration rate is too high error during treatment. "; + case ALARM_ID_UF_VOLUME_ACCURACY_ERROR: return "Ultrafiltration volume accuracy error during treatment. "; + case ALARM_ID_RTC_BATTERY_LOW: return "RTC battery low. "; + case ALARM_ID_RTC_OR_TIMER_ACCURACY_FAILURE: return "RTC or MCU timer inaccurate. "; + case ALARM_ID_RTC_RAM_OPS_ERROR: return "RTC or RAM operations failure (read or write). "; + case ALARM_ID_NVDATA_EEPROM_OPS_FAILURE: return "EEPRON operations (read, write, erase) failure. "; + case ALARM_ID_NVDATA_MFG_RECORD_CRC_ERROR: return "Manufacturing record CRC failure. "; + case ALARM_ID_NVDATA_SRVC_RECORD_CRC_ERROR: return "Service record CRC failure. "; + case ALARM_ID_NVDATA_CAL_RECORD_CRC_ERROR: return "Calibration record CRC failure. "; + case ALARM_ID_NVDATA_HW_USAGE_DATA_CRC_ERROR: return "HW usage data failure. "; + case AlARM_ID_NVDATA_DISINFECTION_DATE_CRC_ERROR: return "Last disinfection date CRC error "; + case ALARM_ID_RO_PUMP_OUT_PRESSURE_OUT_OF_RANGE: return "Pressure at outlet of RO pump is out of range. "; + case ALARM_ID_TEMPERATURE_SENSORS_OUT_OF_RANGE: return "DG temperature sensors ADC read out of range. "; + case ALARM_ID_TEMPERATURE_SENSORS_INCONSISTENT: return "DG temperature sensors values are inconsistent "; + case ALARM_ID_HD_COMM_TIMEOUT: return "HD communication timeout. "; + default: return "Alarm Not Recognized"; + + + } + return ""; + +} Index: sources/model/malarmstatus.h =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r5abbbc0d8019925283cc4b38c782afde9802aa35 --- sources/model/malarmstatus.h (.../malarmstatus.h) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/model/malarmstatus.h (.../malarmstatus.h) (revision 5abbbc0d8019925283cc4b38c782afde9802aa35) @@ -18,9 +18,7 @@ // Project #include "types.h" - namespace Model { - class MAlarmStatus { public: enum Flag { @@ -60,6 +58,7 @@ QString toString ( ) const ; void toVariantList ( QVariantList &vData ) const ; void fromByteArray (const QByteArray &vByteArray ); + QString toText ( int val); Data data() const ; }; Index: sources/view/valarmstatus.cpp =================================================================== diff -u -rb798668f16ad0967ab97e96f5f9a2cdd821e899f -r5abbbc0d8019925283cc4b38c782afde9802aa35 --- sources/view/valarmstatus.cpp (.../valarmstatus.cpp) (revision b798668f16ad0967ab97e96f5f9a2cdd821e899f) +++ sources/view/valarmstatus.cpp (.../valarmstatus.cpp) (revision 5abbbc0d8019925283cc4b38c782afde9802aa35) @@ -81,27 +81,18 @@ int enumIdx = mo->indexOfEnumerator(qt_getEnumName(vEnum)); const char *key = mo->enumerator(enumIdx).valueToKey(vEnum); if (key) - return qPrintable(key); - else + { + Model::MAlarmStatus mData; + return mData.toText(vEnum); + } else + { return QString("ALARM_ID_UNDEFINED [%1]").arg(vEnum); + } } QString View::VAlarmStatus::text() { - QString text; if (alarm_AlarmID() != GuiAlarmID::ALARM_ID_NO_ALARM) - text = alarmIDText (static_cast(alarm_AlarmID())) + " , " + - FSN(alarm_EscalateIn ()) + " , " + - FSN(alarm_MuteTimeout ()) + " ["+ - (alarm_Flag_systemFault () ? "1" : "0" ) + " " + - (alarm_Flag_stop () ? "1" : "0" ) + " " + - (alarm_Flag_noClear () ? "1" : "0" ) + " " + - (alarm_Flag_noResume () ? "1" : "0" ) + " " + - (alarm_Flag_noRinseback () ? "1" : "0" ) + " " + - (alarm_Flag_noEndTreatment () ? "1" : "0" ) + " " + - (alarm_Flag_noNewTreatment () ? "1" : "0" ) + " " + - (alarm_Flag_bypassDialyzer () ? "1" : "0" ) + " " + - (alarm_Flag_alarmsToEscalate() ? "1" : "0" ) + " " + - (alarm_Flag_alarmsSilenced () ? "1" : "0" ) + "]" ; - return text; + return alarmIDText(static_cast(alarm_AlarmID())); + return "No Alarm"; }