Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r28f137017915af37b784c95803b044136fab4d5b -r4b21b64477d62043a5e664c6a0aeec0ec16c1bd2 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 28f137017915af37b784c95803b044136fab4d5b) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 4b21b64477d62043a5e664c6a0aeec0ec16c1bd2) @@ -46,10 +46,19 @@ static TD_PRE_TREATMENT_MODE_STATE_T currentPreTreatmentState; ///< Current Pre-Treatment sub-state static BOOL goToInstallStateRequested; ///< Flag indicating a request to transition to Install state. -static BOOL continueFromRecirculateRequested; ///< Flag indicating a request to transition to Patient Connection state. +static BOOL continueFromRecirculateRequested; ///< Flag indicating a request to transition to Confirm Rx. static BOOL treatmentStartRequested; ///< Flag indicating the UI requested treatment start. -static U32 preTreatmentStateBroadcastTimerCtr; ///< Pre-Treatment state data broadcast timer counter used to schedule when to transmit data. +static U32 preTreatmentStateBroadcastTimerCtr; ///< Pre-Treatment state data broadcast timer counter. +/// Interval (in task intervals) at which to publish Pre-Treatment state data to the CAN bus. +static OVERRIDE_U32_T preTreatmentStatePublishInterval = +{ + PRE_TREATMENT_STATE_DATA_PUB_INTERVAL, + PRE_TREATMENT_STATE_DATA_PUB_INTERVAL, + PRE_TREATMENT_STATE_DATA_PUB_INTERVAL, + 0 +}; + // ********** private function prototypes ********** static void setPreTreatStateTransition( void ); ///< Configure actuators and variables for Pre-Treatment state transitions. @@ -77,7 +86,7 @@ goToInstallStateRequested = FALSE; continueFromRecirculateRequested = FALSE; treatmentStartRequested = FALSE; - preTreatmentStateBroadcastTimerCtr = PRE_TREATMENT_STATE_DATA_PUB_INTERVAL; + preTreatmentStateBroadcastTimerCtr = 5U; } /*********************************************************************//** @@ -162,6 +171,7 @@ } publishPreTreatmentStates(); + return (U32)currentPreTreatmentState; } @@ -394,7 +404,7 @@ /*********************************************************************//** * @brief * The PreTxRequestContinueFromRecirculate function signals a request to - * transition the Pre-Treatment mode state machine to Patient Connection state. + * transition the Pre-Treatment mode state machine to Confirm Rx state. * @details \b Inputs: none * @details \b Outputs: continueFromRecirculateRequested * @return none @@ -507,7 +517,7 @@ *************************************************************************/ static void publishPreTreatmentStates( void ) { - if ( ++preTreatmentStateBroadcastTimerCtr >= PRE_TREATMENT_STATE_DATA_PUB_INTERVAL ) + if ( ++preTreatmentStateBroadcastTimerCtr >= getU32OverrideValue( &preTreatmentStatePublishInterval ) ) { PRE_TREATMENT_STATES_DATA_PAYLOAD_T payload = { 0 }; @@ -529,4 +539,28 @@ } } + +/************************************************************************* + * TEST SUPPORT FUNCTIONS + *************************************************************************/ + + +/*********************************************************************//** + * @brief + * The testPreTreatmentStatePublishIntervalOverride function overrides or + * resets the Pre-Treatment state data publication interval. + * @details \b Inputs: message + * @details \b Outputs: preTreatmentStatePublishInterval + * @param message Override message from Dial-in containing the interval + * in milliseconds, or a reset command. + * @return TRUE if the override or reset is successful, otherwise FALSE. + *************************************************************************/ +BOOL testPreTreatmentStatePublishIntervalOverride( MESSAGE_T *message ) +{ + return u32BroadcastIntervalOverride( + message, + &preTreatmentStatePublishInterval, + TASK_GENERAL_INTERVAL ); +} + /**@}*/