Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r0fce4283f8f28da957f9e82ec121efbc6ee55241 -r7325348a8b5fce9101d0f68d89c791d48e1a3575 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 0fce4283f8f28da957f9e82ec121efbc6ee55241) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 7325348a8b5fce9101d0f68d89c791d48e1a3575) @@ -196,7 +196,69 @@ *************************************************************************/ void signalAlarmActionToTreatmentMode( ALARM_ACTION_T action ) { + switch( action ) + { + case ALARM_ACTION_STOP: + switch ( currentTreatmentState ) + { + case TREATMENT_START_STATE: + case TREATMENT_DIALYSIS_STATE: + stopDialysis(); + transitionToTreatmentStop(); + currentTreatmentState = TREATMENT_STOP_STATE; + break; + case TREATMENT_RINSEBACK_STATE: + // TODO - implement + break; + + case TREATMENT_RECIRC_STATE: + // TODO - implement + break; + + default: + // ignore + break; + } + break; + + case ALARM_ACTION_RESUME: + switch ( currentTreatmentState ) + { + case TREATMENT_STOP_STATE: + break; + + case TREATMENT_RINSEBACK_PAUSE_STATE: + // TODO - implement + break; + + case TREATMENT_RECIRC_PAUSE_STATE: + // TODO - implement + break; + + default: + // ignore + break; + } + break; + + case ALARM_ACTION_RINSEBACK: + // TODO - implement + break; + + case ALARM_ACTION_END_TREATMENT: + // TODO - temporary code - implement + currentTreatmentState = TREATMENT_END_STATE; + break; + + case ALARM_ACTION_ACK: + // nothing to be done here + break; + + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_MODE_TREATMENT_INVALID_ALARM_ACTION, (U32)action ) + break; + } } /*********************************************************************//**