Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r37a9fd8f15e413db5337371a7d1a1cb65567af7c -rfb20c66bc03db53965d23a4af8ef1b06e88f3a83 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 37a9fd8f15e413db5337371a7d1a1cb65567af7c) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision fb20c66bc03db53965d23a4af8ef1b06e88f3a83) @@ -615,6 +615,8 @@ *************************************************************************/ U32 execTreatmentMode( void ) { + TREATMENT_STATE_T entryTreatmentState = currentTreatmentState; + U32 saveTreatTime = 0; BOOL stop = isStopButtonPressed(); if ( TRUE == stop ) @@ -668,6 +670,19 @@ // clear signal flags from sub-modes before calling sub-mode executives resetSignalFlags(); + if ( (entryTreatmentState != currentTreatmentState) && ( currentTreatmentState == TREATMENT_END_STATE ) ) + { + // Save the Treatment duration and Last Treatment time + // TODO DMC this saves minutes, should be a Float of hours + saveTreatTime = getTreatmentTime (); + saveTreatTime += CALC_ELAPSED_TREAT_TIME_IN_MIN(); + if (!setTreatmentTime ( saveTreatTime )) + { + // TODO Set alarm + } + // TODO Save Last Treatment Time + } + // Broadcast treatment data broadcastTreatmentTimeAndState(); broadcastTreatmentSettingsRanges(); @@ -702,6 +717,8 @@ transitionToBloodPrime(); + // TODO DMC Save Last Treatment Time + return result; } Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -r4aa825df0b7a7b93c6a7f1d4408d02844f4213f0 -rfb20c66bc03db53965d23a4af8ef1b06e88f3a83 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision 4aa825df0b7a7b93c6a7f1d4408d02844f4213f0) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision fb20c66bc03db53965d23a4af8ef1b06e88f3a83) @@ -338,6 +338,9 @@ data.almData1 = alarmData1.data.uInt.data; data.almDataType2 = (U32)alarmData2.dataType; data.almData2 = alarmData2.data.uInt.data; + data.almPriority = ALARM_TABLE[ alarm ].alarmPriority; + data.almRank = ALARM_TABLE[ alarm ].alarmSubRank; + data.almClrTopOnly = ALARM_TABLE[ alarm ].alarmClearOnly; broadcastData( MSG_ID_ALARM_TRIGGERED, COMM_BUFFER_OUT_CAN_HD_ALARM, (U08*)&data, sizeof( ALARM_TRIGGERED_PAYLOAD_T ) ); // Send information for UI to log to treatment log Index: firmware/App/Services/AlarmMgmt.h =================================================================== diff -u -r4aa825df0b7a7b93c6a7f1d4408d02844f4213f0 -rfb20c66bc03db53965d23a4af8ef1b06e88f3a83 --- firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision 4aa825df0b7a7b93c6a7f1d4408d02844f4213f0) +++ firmware/App/Services/AlarmMgmt.h (.../AlarmMgmt.h) (revision fb20c66bc03db53965d23a4af8ef1b06e88f3a83) @@ -135,6 +135,9 @@ U32 almData1; ///< Supporting data #1 U32 almDataType2; ///< Supporting data type #2 U32 almData2; ///< Supporting data #2 + U32 almPriority; ///< Alarm priority + U32 almRank; ///< Alarm rank + BOOL almClrTopOnly; ///< Alarm clear (when on top) should only clear top alarm } ALARM_TRIGGERED_PAYLOAD_T; #pragma pack(pop) Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r37a9fd8f15e413db5337371a7d1a1cb65567af7c -rfb20c66bc03db53965d23a4af8ef1b06e88f3a83 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 37a9fd8f15e413db5337371a7d1a1cb65567af7c) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision fb20c66bc03db53965d23a4af8ef1b06e88f3a83) @@ -1822,6 +1822,7 @@ payload.alarmsFlags |= ( almStatus.alarmsToEscalate ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_ALARMS_TO_ESCALATE) : 0 ); payload.alarmsFlags |= ( almStatus.alarmsSilenced ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_ALARMS_SILENCED) : 0 ); payload.alarmsFlags |= ( almStatus.lampOn ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_LAMP_ON) : 0 ); + payload.alarmsFlags |= ( almStatus.noDialRecirc ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_DIALYSATE_RECIRC) : 0 ); payload.alarmsFlags |= ( almStatus.noMinimize ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_NO_MINIMIZE) : 0 ); payload.alarmsFlags |= ( almStatus.topAlarmConditionDetected ? BIT_BY_POS(ALARM_STATE_FLAG_BIT_POS_TOP_CONDITION) : 0 );