Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r4b21b64477d62043a5e664c6a0aeec0ec16c1bd2 -r932fb39e6154626a60ac371b1bb0f6c783a28f1f --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 4b21b64477d62043a5e664c6a0aeec0ec16c1bd2) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 932fb39e6154626a60ac371b1bb0f6c783a28f1f) @@ -40,25 +40,20 @@ // ********** private definitions ********** /// Interval (ms/task time) at which the Pre-Treatment state data is published on the CAN bus. -#define PRE_TREATMENT_STATE_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) +#define PRE_TREATMENT_STATE_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) +/// Initial offset used to stagger the Pre-Treatment state data broadcast. +#define PRE_TREATMENT_STATE_DATA_PUB_INITIAL_OFFSET 5U + // ********** private data ********** 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 Confirm Rx. static BOOL treatmentStartRequested; ///< Flag indicating the UI requested treatment start. static U32 preTreatmentStateBroadcastTimerCtr; ///< Pre-Treatment state data broadcast timer counter. +static OVERRIDE_U32_T preTreatmentStatePublishInterval; ///< Pre-Treatment state data publication interval override. -/// 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. @@ -86,7 +81,15 @@ goToInstallStateRequested = FALSE; continueFromRecirculateRequested = FALSE; treatmentStartRequested = FALSE; - preTreatmentStateBroadcastTimerCtr = 5U; + preTreatmentStateBroadcastTimerCtr = PRE_TREATMENT_STATE_DATA_PUB_INITIAL_OFFSET; + + preTreatmentStatePublishInterval = (OVERRIDE_U32_T) + { + PRE_TREATMENT_STATE_DATA_PUB_INTERVAL, + PRE_TREATMENT_STATE_DATA_PUB_INTERVAL, + PRE_TREATMENT_STATE_DATA_PUB_INTERVAL, + 0 + }; } /*********************************************************************//** @@ -557,10 +560,14 @@ *************************************************************************/ BOOL testPreTreatmentStatePublishIntervalOverride( MESSAGE_T *message ) { - return u32BroadcastIntervalOverride( + BOOL result = FALSE; + + result = u32BroadcastIntervalOverride( message, &preTreatmentStatePublishInterval, TASK_GENERAL_INTERVAL ); + + return result; } /**@}*/