Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -r724b64673b719eaac10b0c9dd839ad9675274911 -r6e36d2fd90b130f540494f4128951d81e7dc5ed5 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 724b64673b719eaac10b0c9dd839ad9675274911) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision 6e36d2fd90b130f540494f4128951d81e7dc5ed5) @@ -411,6 +411,26 @@ /*********************************************************************//** * @brief + * The requestDDGenDialyasteStop function handles an TD request to stop + * generation dialysis mode. + * @details \b Inputs: Generation dialysate mode / state + * @details \b Outputs: mode transition + * @return TRUE if request accepted, FALSE if not. + *************************************************************************/ +BOOL requestDDGenDialyasteStop( void ) +{ + BOOL status = TRUE; + + //TODO: Transition to post gen dialysate and standby + + // Transition to mode standby + requestNewOperationMode( DD_MODE_STAN ); + + return status; +} + +/*********************************************************************//** + * @brief * The handleGenDDialysateDeliveryPauseState function pause the dialysate * delivery due to alarms conditions or some control asked to be in * paused state. Index: firmware/App/Modes/ModeGenDialysate.h =================================================================== diff -u -r5e92cbb2c29854fb60a91dc4abafeb9b08d3272c -r6e36d2fd90b130f540494f4128951d81e7dc5ed5 --- firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision 5e92cbb2c29854fb60a91dc4abafeb9b08d3272c) +++ firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision 6e36d2fd90b130f540494f4128951d81e7dc5ed5) @@ -56,6 +56,7 @@ U32 getDialGoodToDeliverStatus( void ); // Get the dialysate good to deliver status void setTreatmentParamUpdate( void ); // To indicate one or more treatment parameters updated void updateTreatmentSettings( void ); // Process the recent treatment parameters changes +BOOL requestDDGenDialyasteStop( void ); // Stop generate dialysate BOOL testDDGenDialysateDataPublishIntervalOverride( MESSAGE_T *message ); // GenD Mode data publish interval override BOOL testDialDeliveryInProgressOverride( MESSAGE_T *message ); // To override the dialysate delivery in progress flag Index: firmware/App/Modes/ModePostGenDialysate.c =================================================================== diff -u -r724b64673b719eaac10b0c9dd839ad9675274911 -r6e36d2fd90b130f540494f4128951d81e7dc5ed5 --- firmware/App/Modes/ModePostGenDialysate.c (.../ModePostGenDialysate.c) (revision 724b64673b719eaac10b0c9dd839ad9675274911) +++ firmware/App/Modes/ModePostGenDialysate.c (.../ModePostGenDialysate.c) (revision 6e36d2fd90b130f540494f4128951d81e7dc5ed5) @@ -37,9 +37,9 @@ // ********** private data ********** -static DD_POST_GEN_DAILYSATE_STATE_T postGenDialysateState; ///< Currently active post gen dialysate state. -static U32 postGenDialysatePublishTimerCounter; ///< PostGen Dialysate data broadcast timer counter used to schedule when to transmit data. -static OVERRIDE_U32_T postGenDialysateModePublishInterval; ///< Interval (in task intervals) at which to publish post-gen dialysate mode data to CAN bus. +static DD_POST_GEN_DAILYSATE_STATE_T postGenDialysateState; ///< Currently active post gen dialysate state. +static U32 postGenDialysatePublishTimerCounter; ///< PostGen Dialysate data broadcast timer counter used to schedule when to transmit data. +static OVERRIDE_U32_T postGenDialysateModePublishInterval; ///< Interval (in task intervals) at which to publish post-gen dialysate mode data to CAN bus. // ********** private function prototypes ********** Index: firmware/App/Modes/ModePreGenDialysate.c =================================================================== diff -u -r724b64673b719eaac10b0c9dd839ad9675274911 -r6e36d2fd90b130f540494f4128951d81e7dc5ed5 --- firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision 724b64673b719eaac10b0c9dd839ad9675274911) +++ firmware/App/Modes/ModePreGenDialysate.c (.../ModePreGenDialysate.c) (revision 6e36d2fd90b130f540494f4128951d81e7dc5ed5) @@ -38,9 +38,9 @@ // ********** private data ********** -static DD_PRE_GEN_DAILYSATE_STATE_T preGenDialysateState; ///< Currently active pre-gen dialysate state. +static DD_PRE_GEN_DAILYSATE_STATE_T preGenDialysateState; ///< Currently active pre-gen dialysate state. static OVERRIDE_U32_T pendingStartDDGenDialRequest; ///< Flag indicating TD has requested DD start the generation dialysate request(Overridable). -static U32 preGenDialysatePublishTimerCounter; ///< Pre-Gen Dialysate data broadcast timer counter used to schedule when to transmit data. +static U32 preGenDialysatePublishTimerCounter; ///< Pre-Gen Dialysate data broadcast timer counter used to schedule when to transmit data. static OVERRIDE_U32_T preGenDialysateModePublishInterval; ///< Interval (in task intervals) at which to publish pre-gen dialysate mode data to CAN bus. // ********** private function prototypes ********** @@ -163,6 +163,32 @@ /*********************************************************************//** * @brief + * The requestDDPreGenStop function handles an TD request to stop + * pre-generation dialysis mode. + * @details \b Inputs: Pre generation dialysate mode / state + * @details \b Outputs: mode transition + * @return TRUE if request accepted, FALSE if not. + *************************************************************************/ +BOOL requestDDPreGenStop( void ) +{ + BOOL status = FALSE; + + //TODO: Transition to post gen dialysate if concentrate priming has been started + + //TODO: Tranistion to standby if concentrate priming is not yet started + if ( DD_MODE_PREG == getCurrentOperationMode() ) + { + // Transition to mode standby + requestNewOperationMode( DD_MODE_STAN ); + + status = TRUE; + } + + return status; +} + +/*********************************************************************//** + * @brief * The handlePreGenDialysateFillCompleteCheckState function checks the * hydrochamber fill and transition to next state. * @details \b Inputs: state Index: firmware/App/Modes/ModePreGenDialysate.h =================================================================== diff -u -r724b64673b719eaac10b0c9dd839ad9675274911 -r6e36d2fd90b130f540494f4128951d81e7dc5ed5 --- firmware/App/Modes/ModePreGenDialysate.h (.../ModePreGenDialysate.h) (revision 724b64673b719eaac10b0c9dd839ad9675274911) +++ firmware/App/Modes/ModePreGenDialysate.h (.../ModePreGenDialysate.h) (revision 6e36d2fd90b130f540494f4128951d81e7dc5ed5) @@ -44,6 +44,7 @@ U32 execPreGenDialysateMode( void ); // execute the pre-gen dilaysate mode state machine (call from OperationModes) DD_PRE_GEN_DAILYSATE_STATE_T getCurrentPreGenDialysateState( void ); // get the current state of the pre-gen dialysate mode. BOOL requestDDGenDialStart( void ); // start generate dialysate delivery +BOOL requestDDPreGenStop( void ); // stop pregenerate dialysate delivery BOOL testDDPreGenDialysateDataPublishIntervalOverride( MESSAGE_T *message ); // pre-gen dialysate publish override request BOOL testDDstartGenDialysateOverride( MESSAGE_T *message ); // start gen dialysate override request Index: firmware/App/Services/TDInterface.c =================================================================== diff -u -r724b64673b719eaac10b0c9dd839ad9675274911 -r6e36d2fd90b130f540494f4128951d81e7dc5ed5 --- firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 724b64673b719eaac10b0c9dd839ad9675274911) +++ firmware/App/Services/TDInterface.c (.../TDInterface.c) (revision 6e36d2fd90b130f540494f4128951d81e7dc5ed5) @@ -350,13 +350,11 @@ } else if ( DD_MODE_PREG == ddMode ) { - //TODO : handle transition to post treatment after states defined. if ( FALSE == startPreGenRequest.start ) { - // stop dialysate generation by transitioning to standby mode - requestNewOperationMode( DD_MODE_STAN ); + // stop pre generate diaysate delivery + result = requestDDPreGenStop(); } - result = TRUE; } } @@ -406,9 +404,8 @@ { if ( FALSE == startTxRequest.start ) { - //TODO: Transition to post treatment and then standby. - // stop dialysate generation by transitioning to standby mode - requestNewOperationMode( DD_MODE_STAN ); + // stop dialysate generation + result = requestDDGenDialyasteStop(); } else { @@ -423,9 +420,9 @@ // Signal to update treatement parameters setTreatmentParamUpdate(); - } - result = TRUE; + result = TRUE; + } } }