Index: firmware/App/HDCommon.h =================================================================== diff -u -re0e5aff5a2d873dac91dfb1c1086572f7f1647da -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision e0e5aff5a2d873dac91dfb1c1086572f7f1647da) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -59,6 +59,7 @@ #define ALARMS_DEBUG 1 // Triggered alarms sent to debug UART #define SKIP_SELF_TESTS 1 // Skip Pre-treatment Self-tests #define SKIP_PRIMING 1 // Skip Pre-treatment Prime + #define SKIP_WET_SELF_TESTS 1 // Skip Pre-treatment prime wet self-tests // #define V1_5_SYSTEM 1 // Build for v1.5 system #include Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -rbbf4e1a170f66ce07af12908a1d0fe101a934e9e -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision bbf4e1a170f66ce07af12908a1d0fe101a934e9e) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -1,6 +1,6 @@ /************************************************************************** * -* Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. +* Copyright (c) 2019-2021 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. @@ -40,6 +40,7 @@ static BOOL treatStartReqReceived = FALSE; ///< Flag indicates user requests treatment begin. static BOOL confirmInstallRequested = FALSE; ///< Flag indicates user confirms disposable installation. +static BOOL continueToTreatmentRequested = FALSE; ///< Flag indicates user requests to continue to treatment from re-circ. static BOOL alarmActionStopReceived = FALSE; ///< Flag indicates an alarm w/ stop property was triggered. static BOOL alarmActionResumeReceived = FALSE; ///< Flag indicates alarm action resume received. @@ -51,6 +52,7 @@ static void publishPreTreatmentState( void ); static void resetSignalFlags( void ); +static void transitionToCartridgeInstallation( void ); static HD_PRE_TREATMENT_MODE_STATE_T handleWaterSampleState( void ); static HD_PRE_TREATMENT_MODE_STATE_T handleSelfTestNoCartState( void ); @@ -174,7 +176,30 @@ /*********************************************************************//** * @brief - * The signalUserBeginningTreatment function handles user start of a + * The signalUserContinueToTreatment function handles user request to continue + * to treatment. + * @details Inputs: none + * @details Outputs: treatStartReqReceived, send response to treatment start + * @return none + *************************************************************************/ +void signalUserContinueToTreatment( void ) +{ + BOOL accepted = FALSE; + REQUEST_REJECT_REASON_CODE_T rejReason = REQUEST_REJECT_REASON_NOT_ALLOWED_IN_CURRENT_MODE; + + if ( HD_PRE_TREATMENT_RECIRCULATE_STATE == currentPreTreatmentState ) + { + continueToTreatmentRequested = TRUE; + accepted = TRUE; + rejReason = REQUEST_REJECT_REASON_NONE; + } + + sendContinueToTreatmentCmdResponse( accepted, rejReason ); +} + +/*********************************************************************//** + * @brief + * The signalUserBeginningTreatment function handles user requests to begin * treatment. * @details Inputs: none * @details Outputs: treatStartReqReceived, send response to treatment start @@ -270,13 +295,34 @@ { treatStartReqReceived = FALSE; confirmInstallRequested = FALSE; + continueToTreatmentRequested = FALSE; alarmActionStopReceived = FALSE; alarmActionResumeReceived = FALSE; } /*********************************************************************//** * @brief + * The transitionToCartridgeInstallation function prepares actuators before + * transition to pre-treatment install state. + * @details Inputs: none + * @details Outputs: valves are in insert position + * @return none + *************************************************************************/ +static void transitionToCartridgeInstallation( void ) +{ + VALVE_T valve; + + for ( valve = VDI; valve < NUM_OF_VALVES; ++valve ) + { + setValvePosition( valve, VALVE_POSITION_A_INSERT_EJECT ); + } + + setValveAirTrap( STATE_CLOSED ); +} + +/*********************************************************************//** + * @brief * The handleWaterSampleState function handles patient connection state * during pre-treatment mode. * @details Inputs: none @@ -291,6 +337,7 @@ if ( TRUE == isSampleWaterPassed() ) { + transitionToNoCartSelfTests(); state = HD_PRE_TREATMENT_SELF_TEST_NO_CART_STATE; } @@ -327,6 +374,7 @@ if ( TRUE == isNoCartSelfTestsPassed() ) { + transitionToCartridgeInstallation(); state = HD_PRE_TREATMENT_CART_INSTALL_STATE; } @@ -458,8 +506,9 @@ execPreTreatmentRecirc(); - if ( TRUE == isPatientConnectionRequested() ) + if ( TRUE == continueToTreatmentRequested ) { + continueToTreatmentRequested = FALSE; state = HD_PRE_TREATMENT_PATIENT_CONNECTION_STATE; } Index: firmware/App/Modes/ModePreTreat.h =================================================================== diff -u -rbbf4e1a170f66ce07af12908a1d0fe101a934e9e -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision bbf4e1a170f66ce07af12908a1d0fe101a934e9e) +++ firmware/App/Modes/ModePreTreat.h (.../ModePreTreat.h) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -50,6 +50,7 @@ U32 execPreTreatmentMode( void ); // Execute the pre-treatment mode state machine (call from OperationModes) void signalUserConfirmInstallation( void ); // Signal that user confirms disposable has been installed +void signalUserContinueToTreatment( void ); // Signal that user requests to continue to treatment BOOL signalUserBeginningTreatment( void ); // Signal that user requests treatment begin void signalAlarmActionToPreTreatmentMode( ALARM_ACTION_T action ); // Execute alarm action as appropriate for pre-treatment mode Index: firmware/App/Modes/PreTreatmentRecirc.c =================================================================== diff -u -r19fc8f015489be63932eed969d28329d123332e0 -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/Modes/PreTreatmentRecirc.c (.../PreTreatmentRecirc.c) (revision 19fc8f015489be63932eed969d28329d123332e0) +++ firmware/App/Modes/PreTreatmentRecirc.c (.../PreTreatmentRecirc.c) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -143,19 +143,6 @@ /*********************************************************************//** * @brief - * The isPatientConnectionRequested function returns the status of patient connection request. - * @details Inputs: none - * @details Outputs: none - * @return TRUE if patient connection requested, otherwise FALSE - *************************************************************************/ -BOOL isPatientConnectionRequested( void ) -{ - // TODO Add handler to UI interaction - return TRUE; -} - -/*********************************************************************//** - * @brief * The resetPreTreatmentRecircFlags function resets all pre-treatment recirculate * signal flags. * @details Inputs: none Index: firmware/App/Modes/PreTreatmentRecirc.h =================================================================== diff -u -r19fc8f015489be63932eed969d28329d123332e0 -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/Modes/PreTreatmentRecirc.h (.../PreTreatmentRecirc.h) (revision 19fc8f015489be63932eed969d28329d123332e0) +++ firmware/App/Modes/PreTreatmentRecirc.h (.../PreTreatmentRecirc.h) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -40,7 +40,6 @@ void signalResumePreTreatmentRecirc( void ); void signalStopPreTreatmentRecirc( void ); -BOOL isPatientConnectionRequested( void ); /**@}*/ Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -rb6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7 -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision b6b733b8d1f25bc2dbe2a94c620cd80aa3ae06f7) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -1031,7 +1031,7 @@ } } -#ifdef SKIP_SELF_TESTS +#ifdef SKIP_WET_SELF_TESTS state = WET_SELF_TESTS_COMPLETE_STATE; #endif Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -rc0445144841904d5a6ea9d37af639e138e6a86b0 -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision c0445144841904d5a6ea9d37af639e138e6a86b0) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -608,14 +608,43 @@ * response to the UI and queues the msg for transmit on the appropriate CAN channel. * @details Inputs: none * @details Outputs: Start prime command response msg constructed and queued. - * @param accepted T/F - was sample water request accepted? + * @param accepted T/F - was start prime request accepted? * @param reason reason why request was rejected (or zero if accepted) * @return TRUE if msg successfully queued for transmit, FALSE if not *************************************************************************/ BOOL sendStartPrimeCmdResponse( BOOL accepted, U32 reason ) { return sendUIResponseMsg( MSG_ID_HD_START_PRIME_REQUEST_RESPONSE, accepted, reason ); } + +/*********************************************************************//** + * @brief + * The handleContinueToTreatmentCmd function handles user request to continue + * to treatment. + * @details Inputs: none + * @details Outputs: message handled + * @param message a pointer to the message to handle + * @return none. + *************************************************************************/ +void handleContinueToTreatmentCmd( MESSAGE_T *message ) +{ + signalUserContinueToTreatment(); +} + +/*********************************************************************//** + * @brief + * The sendContinueToTreatmentCmdResponse function constructs a continue to treatment + * user action response to the UI and queues the msg for transmit on the appropriate CAN channel. + * @details Inputs: none + * @details Outputs: Continue to treatment request response msg constructed and queued. + * @param accepted T/F - was continue to treatment request accepted? + * @param reason reason why request was rejected (or zero if accepted) + * @return TRUE if msg successfully queued for transmit, FALSE if not + *************************************************************************/ +BOOL sendContinueToTreatmentCmdResponse( BOOL accepted, U32 reason ) +{ + return sendUIResponseMsg( MSG_ID_HD_CONTINUE_TO_TREATMENT_REQUEST_RESPONSE, accepted, reason ); +} /*********************************************************************//** * @brief Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -rc0445144841904d5a6ea9d37af639e138e6a86b0 -r4add377f60d45effbdc064b110a59c1b8afd0ab8 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision c0445144841904d5a6ea9d37af639e138e6a86b0) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 4add377f60d45effbdc064b110a59c1b8afd0ab8) @@ -176,6 +176,12 @@ // MSG_ID_HD_START_PRIME_REQUEST_RESPONSE BOOL sendStartPrimeCmdResponse( BOOL accepted, U32 reason ); +// MSG_ID_UI_CONTINUE_TO_TREATMENT_REQUEST +void handleContinueToTreatmentCmd( MESSAGE_T *message ); + +// MSG_ID_HD_CONTINUE_TO_TREATMENT_REQUEST_RESPONSE +BOOL sendContinueToTreatmentCmdResponse( BOOL accepted, U32 reason ); + // *********** public DG command functions ********** // MSG_ID_SET_DG_DIALYSATE_TEMP_TARGETS