Index: firmware/App/Modes/ModePostTreat.c =================================================================== diff -u -r7010cc605d12e424828fabb567102e4494901e70 -re67d12da06d96f7f6a30771ef309fc9db5b92d70 --- firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision 7010cc605d12e424828fabb567102e4494901e70) +++ firmware/App/Modes/ModePostTreat.c (.../ModePostTreat.c) (revision e67d12da06d96f7f6a30771ef309fc9db5b92d70) @@ -157,9 +157,20 @@ break; } - requestNewOperationMode( MODE_STAN ); // TODO - implement post treatment mode + return currentPostTreatmentState; +} - return 0; // TODO - return current state +/*********************************************************************//** + * @brief + * The signalUserConfirmPatientDisconnection signals post-treatment mode + * user has confirmed patient disconnection. + * @details Inputs: none + * @details Outputs: patientDisconnectedConfirm + * @return none + *************************************************************************/ +void signalUserConfirmPatientDisconnection( void ) +{ + patientDisconnectionConfirmed = TRUE; } /*********************************************************************//** @@ -279,7 +290,7 @@ // // if ( TRUE == isSyringePumpHome() ) // { -// requestNewOperationMode( MODE_STAN ); + requestNewOperationMode( MODE_STAN ); // } } else Index: firmware/App/Modes/ModePostTreat.h =================================================================== diff -u -r1942c708bc95f57e87b0bf6a472ebe824a3f38ed -re67d12da06d96f7f6a30771ef309fc9db5b92d70 --- firmware/App/Modes/ModePostTreat.h (.../ModePostTreat.h) (revision 1942c708bc95f57e87b0bf6a472ebe824a3f38ed) +++ firmware/App/Modes/ModePostTreat.h (.../ModePostTreat.h) (revision e67d12da06d96f7f6a30771ef309fc9db5b92d70) @@ -34,6 +34,8 @@ void initPostTreatmentMode( void ); // Initialize this module void transitionToPostTreatmentMode( void ); // Prepares for transition to post-treatment mode U32 execPostTreatmentMode( void ); // Execute the post-treatment mode state machine (call from OperationModes) + +void signalUserConfirmPatientDisconnection( void ); void signalAlarmActionToPostTreatmentMode( ALARM_ACTION_T action ); // Execute alarm action as appropriate for post-treatment mode /**@}*/ Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -re23087e0c17f6ea81d60641fdb52121a8dd5a099 -re67d12da06d96f7f6a30771ef309fc9db5b92d70 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision e23087e0c17f6ea81d60641fdb52121a8dd5a099) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision e67d12da06d96f7f6a30771ef309fc9db5b92d70) @@ -1207,6 +1207,10 @@ handleTreatmentEndCmd( message ); break; + case MSG_ID_UI_PATIENT_DISCONNECTION_CONFIRM: + handlePatientDisconnectionConfirmCmd( message ); + break; + case MSG_ID_DG_COMMAND_RESPONSE: handleDGCmdResp( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r27f3db92495948d4c1192421c1b0c20338c4a034 -re67d12da06d96f7f6a30771ef309fc9db5b92d70 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 27f3db92495948d4c1192421c1b0c20338c4a034) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision e67d12da06d96f7f6a30771ef309fc9db5b92d70) @@ -24,6 +24,7 @@ #include "Buttons.h" #include "DGInterface.h" #include "FPGA.h" +#include "ModePostTreat.h" #include "ModePreTreat.h" #include "ModeStandby.h" #include "ModeTreatment.h" @@ -475,6 +476,25 @@ return result; } + +/*********************************************************************//** + * @brief + * The handlePatientDisconnectionConfirmCmd function handles user confirms + * patient disconnection. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none. + *************************************************************************/ +void handlePatientDisconnectionConfirmCmd( MESSAGE_T *message ) +{ + if ( 0 == message->hdr.payloadLen ) + { + signalUserConfirmPatientDisconnection(); + } + + sendAckResponseMsg( (MSG_ID_T)message->hdr.msgID, COMM_BUFFER_OUT_CAN_HD_2_UI, FALSE ); +} /*********************************************************************//** * @brief Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r27f3db92495948d4c1192421c1b0c20338c4a034 -re67d12da06d96f7f6a30771ef309fc9db5b92d70 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 27f3db92495948d4c1192421c1b0c20338c4a034) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision e67d12da06d96f7f6a30771ef309fc9db5b92d70) @@ -180,6 +180,9 @@ // MSG_ID_HD_RECIRC_CMD_RESPONSE BOOL sendTreatmentEndCmdResponse( BOOL accepted, U32 rejReason ); +// MSG_ID_UI_PATIENT_DISCONNECTION_CONFIRM +void handlePatientDisconnectionConfirmCmd( MESSAGE_T *message ); + // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS BOOL sendDialysateTempTargetsToDG( F32 primary, F32 trimmer );