Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r036a75d76ab01912646a480b935d97187a231a19 -r79c2105d7ec35f3caeb977f6e2cc1b494853d211 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 036a75d76ab01912646a480b935d97187a231a19) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 79c2105d7ec35f3caeb977f6e2cc1b494853d211) @@ -48,8 +48,7 @@ * @brief * The initStandbyMode function initializes the Standby Mode Unit. * @details \b Inputs: none - * @details \b Outputs: currentStandbyState, treatStartReqReceived, - * disinfectCancelReqID, homingInitiated + * @details \b Outputs: currentStandbyState, treatStartReqReceived * @return none *************************************************************************/ void initStandbyMode( void ) @@ -62,8 +61,8 @@ * @brief * The transitionToStandbyMode function prepares for transition to standby mode. * @details \b Inputs: none - * @details \b Outputs: Standby Mode unit re-initialized, DG interface initialized, - * blood & dialysate pumps shut off. + * @details \b Outputs: Standby Mode unit re-initialized, DD interface initialized, + * actuators off. * @return initial state *************************************************************************/ U32 transitionToStandbyMode( void ) @@ -115,7 +114,7 @@ // Ignore stop button in this mode. } - // State machine to get DG to prep a reservoir so we can start a treatment + // State machine for standby mode switch ( currentStandbyState ) { case STANDBY_START_STATE: Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rcd19fd5095128315982b9ef810bd45e68eff8deb -r79c2105d7ec35f3caeb977f6e2cc1b494853d211 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision cd19fd5095128315982b9ef810bd45e68eff8deb) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 79c2105d7ec35f3caeb977f6e2cc1b494853d211) @@ -15,7 +15,6 @@ * ***************************************************************************/ -#include "TDCommon.h" #include "AirTrap.h" //#include "BloodFlow.h" #include "Buttons.h" @@ -48,7 +47,7 @@ #define TREATMENT_STATE_DATA_PUB_INTERVAL ( 250 / TASK_GENERAL_INTERVAL ) /// Interval (ms/task time) at which updated, valid treatment setting ranges are published on the CAN bus. #define TREATMENT_SETTINGS_RANGES_PUB_INTERVAL ( ( 60 * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ) -/// Saline ultrafiltration data broadcast interval (ms/task time) count. +/// Ultrafiltration data broadcast interval (ms/task time) count. #define ULTRAFILTRATION_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) /// Saline bolus data broadcast interval (ms/task time) count. // TODO - move to StateTxSalineBolus.c when implemented #define SALINE_BOLUS_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) @@ -81,11 +80,11 @@ static U32 salineBolusBroadcastTimerCtr; ///< Saline bolus data broadcast timer counter used to schedule when to transmit data. /// Interval (in task intervals) at which to publish alarm status to CAN bus. -static OVERRIDE_U32_T treatmentTimePublishInterval = { TREATMENT_TIME_DATA_PUB_INTERVAL, TREATMENT_TIME_DATA_PUB_INTERVAL, TREATMENT_TIME_DATA_PUB_INTERVAL, 0 }; +static OVERRIDE_U32_T treatmentTimePublishInterval; /// Interval (in task intervals) at which to publish alarm status to CAN bus. -static OVERRIDE_U32_T treatmentStatePublishInterval = { TREATMENT_STATE_DATA_PUB_INTERVAL, TREATMENT_STATE_DATA_PUB_INTERVAL, TREATMENT_STATE_DATA_PUB_INTERVAL, 0 }; +static OVERRIDE_U32_T treatmentStatePublishInterval; /// Interval (in task intervals) at which to publish alarm status to CAN bus. -static OVERRIDE_U32_T treatmentParamRangesPublishInterval = { TREATMENT_SETTINGS_RANGES_PUB_INTERVAL, TREATMENT_SETTINGS_RANGES_PUB_INTERVAL, TREATMENT_SETTINGS_RANGES_PUB_INTERVAL, 0 }; +static OVERRIDE_U32_T treatmentParamRangesPublishInterval; static BOOL resumeTreatmentAlarmResponseRequest; ///< Flag indicates user has requested treatment resume. static BOOL initiateRinsebackAlarmResponseRequest; ///< Flag indicates user has requested rinseback. @@ -133,6 +132,19 @@ rinsebackDone = FALSE; resumeBlockedByAlarm = FALSE; + treatmentTimePublishInterval.data = TREATMENT_TIME_DATA_PUB_INTERVAL; + treatmentTimePublishInterval.ovData = TREATMENT_TIME_DATA_PUB_INTERVAL; + treatmentTimePublishInterval.ovInitData = TREATMENT_TIME_DATA_PUB_INTERVAL; + treatmentTimePublishInterval.override = OVERRIDE_RESET; + treatmentStatePublishInterval.data = TREATMENT_STATE_DATA_PUB_INTERVAL; + treatmentStatePublishInterval.ovData = TREATMENT_STATE_DATA_PUB_INTERVAL; + treatmentStatePublishInterval.ovInitData = TREATMENT_STATE_DATA_PUB_INTERVAL; + treatmentStatePublishInterval.override = OVERRIDE_RESET; + treatmentParamRangesPublishInterval.data = TREATMENT_SETTINGS_RANGES_PUB_INTERVAL; + treatmentParamRangesPublishInterval.ovData = TREATMENT_SETTINGS_RANGES_PUB_INTERVAL; + treatmentParamRangesPublishInterval.ovInitData = TREATMENT_SETTINGS_RANGES_PUB_INTERVAL; + treatmentParamRangesPublishInterval.override = OVERRIDE_RESET; + treatmentTimeMS = 0; lastTreatmentTimeStamp = 0; treatmentTimeBroadcastTimerCtr = TREATMENT_TIME_DATA_PUB_INTERVAL; // So we send time data immediately when we begin treatment mode @@ -341,7 +353,7 @@ /*********************************************************************//** * @brief - * The signalRinsebackToTreatmentEnd function signals that user wants to end the + * The signalEndTreatment function signals that user wants to end the * treatment. * @details \b Inputs: none * @details \b Outputs: endTreatmentRequest @@ -355,8 +367,10 @@ /*********************************************************************//** * @brief * The execTreatmentMode function executes the Treatment Mode state machine. - * @details Inputs: currentTreatmentState - * @details Outputs: currentTreatmentState + * @details \b Alarm: ALARM_ID_TD_TREATMENT_STOPPED_BY_USER if user presses + * the stop button + * @details \b Inputs: currentTreatmentState + * @details \b Outputs: currentTreatmentState, resumeBlockedByAlarm * @return current state (sub-mode) *************************************************************************/ U32 execTreatmentMode( void ) @@ -454,8 +468,8 @@ * The handleTreatmentStartState function handles the Start state of * the Treatment Mode state machine. Should only pass through this state * once at very beginning of treatment. - * @details Inputs: none - * @details Outputs: treatmentTimeMS, lastTreatmentTimeStamp + * @details \b Inputs: none + * @details \b Outputs: treatmentTimeMS, lastTreatmentTimeStamp * @return next treatment mode state *************************************************************************/ static TREATMENT_STATE_T handleTreatmentStartState( void ) @@ -472,8 +486,8 @@ * @brief * The handleTreatmentBloodPrimeState function handles the blood prime state of * the Treatment Mode state machine. - * @details Inputs: presUFRate - * @details Outputs: none + * @details \b Inputs: presUFRate + * @details \b Outputs: none * @return next treatment mode state *************************************************************************/ static TREATMENT_STATE_T handleTreatmentBloodPrimeState( void ) Index: firmware/App/Modes/ModeTxParams.c =================================================================== diff -u -rcd19fd5095128315982b9ef810bd45e68eff8deb -r79c2105d7ec35f3caeb977f6e2cc1b494853d211 --- firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision cd19fd5095128315982b9ef810bd45e68eff8deb) +++ firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision 79c2105d7ec35f3caeb977f6e2cc1b494853d211) @@ -93,7 +93,7 @@ const TREATMENT_PARAMS_PROPERTIES_T TREAT_PARAMS_PROPERTIES[ NUM_OF_TREATMENT_PARAMS ] = { { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=500}, {.uInt=100} }, // TREATMENT_PARAM_BLOOD_FLOW - { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=600}, {.uInt=100} }, // TREATMENT_PARAM_DIALYSATE_FLOW + { CRITICAL_DATA_TYPE_U32, {.uInt=50}, {.uInt=600}, {.uInt=100} }, // TREATMENT_PARAM_DIALYSATE_FLOW { CRITICAL_DATA_TYPE_U32, {.uInt=60}, {.uInt=480}, {.uInt=240} }, // TREATMENT_PARAM_TREATMENT_DURATION { CRITICAL_DATA_TYPE_U32, {.uInt=100}, {.uInt=300}, {.uInt=100} }, // TREATMENT_PARAM_SALINE_BOLUS_VOLUME { CRITICAL_DATA_TYPE_U32, {.uInt=0}, {.uInt=2}, {.uInt=0} }, // TREATMENT_PARAM_ACID_CONCENTRATE @@ -203,7 +203,8 @@ * The resetAllTreatmentParameters function resets treatment parameters * to default values. * @details \b Inputs: none - * @details \b Outputs: All treatment parameters reset to default values. + * @details \b Outputs: All treatment parameters reset to default values and + * original and staged treatment parameters reset to zero. * @return none *************************************************************************/ static void resetAllTreatmentParameters( void ) @@ -237,6 +238,7 @@ * @brief * The setTreatmentParameterU32 function sets a given unsigned integer * treatment parameter to a given value. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid * @details \b Inputs: treatmentParameters[] * @details \b Outputs: treatmentParameters[] * @param param ID of treatment parameter to set unsigned integer value for @@ -274,6 +276,7 @@ * @brief * The setTreatmentParameterS32 function sets a given signed integer treatment * parameter to a given value. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid * @details \b Inputs: treatmentParameters[] * @details \b Outputs: treatmentParameters[] * @param param ID of treatment parameter to set signed integer value for @@ -311,6 +314,7 @@ * @brief * The setTreatmentParameterF32 sets a given floating point treatment parameter * to a given value. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid * @details \b Inputs: treatmentParameters[] * @details \b Outputs: treatmentParameters[] * @param param ID of treatment parameter to set floating point value for @@ -348,6 +352,7 @@ * @brief * The getTreatmentParameterU32 function gets the value of a given unsigned * integer treatment parameter. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of treatment parameter to get unsigned integer value for @@ -376,6 +381,7 @@ * @brief * The getTreatmentParameterS32 function gets the value of a given signed * integer treatment parameter. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of treatment parameter to get signed integer value for @@ -404,6 +410,7 @@ * @brief * The getTreatmentParameterF32 function gets the value of a given floating point * treatment parameter. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of treatment parameter to get floating point value for @@ -432,7 +439,7 @@ * @brief * The getTreatmentParameterS32DefaultValue function gets the defaultvalue * of a given signed integer treatment parameter. - * @details \b Inputs: treatmentParameters[] + * @details \b Inputs: TREAT_PARAMS_PROPERTIES[] * @details \b Outputs: none * @param param ID of treatment parameter to get signed integer default value for * @return default value of given signed integer treatment parameter @@ -446,8 +453,10 @@ * @brief * The validateAndSetTreatmentParameters function validates received * treatment parameters. + * @details \b Message \b Sent: MSG_ID_TD_RESP_TREATMENT_PARAMS_TO_VALIDATE + * @details \b Message \b Sent: MSG_ID_TD_TREATMENT_PARAM_RANGES if params are valid * @details \b Inputs: none - * @details \b Outputs: stagedParams[], response sent + * @details \b Outputs: stagedParams[], validTreatParamsReceived * @param message set message from UI which includes the user set treatment * parameters record. * @return TRUE if received treatment parameters are valid, FALSE if not @@ -543,8 +552,9 @@ * @brief * The validateAndSetUFVolume function validates received ultrafiltration * volume treatment parameter. + * @details \b Message \b Sent: MSG_ID_TD_RESP_ULTRAFILTRATION_VOLUME_TO_VALIDATE * @details \b Inputs: none - * @details \b Outputs: + * @details \b Outputs: none * @param message set message from UI which includes the user set ultrafiltration * volume (in mL). * @return TRUE if received UF volume parameter is valid, FALSE if not @@ -721,8 +731,8 @@ * @brief * The handleWaitForUI2SendState function handles the wait for UI to send * treatment parameters state of treatment parameters mode. - * @details Inputs: - * @details Outputs: + * @details \b Inputs: treatmentCancelled, validTreatParamsReceived + * @details \b Outputs: treatmentCancelled, validTreatParamsReceived * @return current state (sub-mode) *************************************************************************/ static TD_TREATMENT_PARAMS_MODE_STATE_T handleWaitForUI2SendState( void ) @@ -749,8 +759,8 @@ * @brief * The handleWaitForUI2ConfirmState function handles the wait for UI to send * user confirmation state of treatment parameters mode. - * @details \b Inputs: - * @details \b Outputs: + * @details \b Inputs: treatParamsConfirmed, treatParamsRejected + * @details \b Outputs: treatParamsConfirmed, treatParamsRejected, origTreatmentParams * @return current state (sub-mode) *************************************************************************/ static TD_TREATMENT_PARAMS_MODE_STATE_T handleWaitForUI2ConfirmState( void ) @@ -822,6 +832,7 @@ * The sendTreatmentParamsResponse function responds to the treatment parameters * received from the UI. An over-all ok/rejected flag as well as individual reject * reason codes for each parameter are provided back to the UI. + * @details \b Message \b Sent: MSG_ID_TD_RESP_TREATMENT_PARAMS_TO_VALIDATE * @details \b Inputs : none * @details \b Outputs : Response to treatment parameters message constructed and sent. * @param rejected 1 if rejected, 0 if parameters ok @@ -841,6 +852,7 @@ * @brief * The isTreatmentParamInRange function determines whether a given treatment * parameter is in range. + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid * @details \b Inputs: treatParamsRanges[], hdInstitutionalRecord * @details \b Outputs: none * @param param ID of parameter to check range for @@ -947,7 +959,8 @@ * @brief * The getS32TreatmentParamLowerRangeLimit function returns the lower range * limit for a given signed integer treatment parameter. - * @details \b Inputs: none + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid + * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of parameter to get lower range limit for * @return lower range limit for given signed integer treatment parameter @@ -975,7 +988,8 @@ * @brief * The getS32TreatmentParamUpperRangeLimit function returns the upper range * limit for a given signed integer treatment parameter. - * @details \b Inputs: none + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid. + * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of parameter to get upper range limit for * @return upper range limit for given signed integer treatment parameter @@ -1003,7 +1017,8 @@ * @brief * The getU32TreatmentParamLowerRangeLimit function returns the lower range * limit for a given unsigned integer treatment parameter. - * @details \b Inputs: none + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid. + * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of parameter to get lower range limit for * @return lower range limit for given unsigned integer treatment parameter @@ -1031,7 +1046,8 @@ * @brief * The getU32TreatmentParamUpperRangeLimit function returns the upper range * limit for a given unsigned integer treatment parameter. - * @details \b Inputs: none + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid. + * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of parameter to get upper range limit for * @return upper range limit for given unsigned integer treatment parameter @@ -1059,7 +1075,8 @@ * @brief * The getF32TreatmentParamLowerRangeLimit function returns the lower range * limit for a given float treatment parameter. - * @details \b Inputs: none + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid. + * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of parameter to get lower range limit for * @return lower range limit for given float treatment parameter @@ -1087,7 +1104,8 @@ * @brief * The getF32TreatmentParamUpperRangeLimit function returns the upper range * limit for a given float treatment parameter. - * @details \b Inputs: none + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if given param is invalid. + * @details \b Inputs: treatmentParameters[] * @details \b Outputs: none * @param param ID of parameter to get lower range limit for * @return upper range limit for given float treatment parameter @@ -1115,7 +1133,7 @@ * @brief * The getS32DefaultTreatmentParamEdge function returns the min or max of * the default treatment parameters - * @details \b Inputs: TREAT_PARAMS_PROPERTIES + * @details \b Inputs: TREAT_PARAMS_PROPERTIES[] * @details \b Outputs: none * @param param ID of parameter * @param isMin to indicate whether minimum is needed for maximum @@ -1132,7 +1150,7 @@ * @brief * The getU32DefaultTreatmentParamEdge function returns the min or max of * the default treatment parameters - * @details \b Inputs: TREAT_PARAMS_PROPERTIES + * @details \b Inputs: TREAT_PARAMS_PROPERTIES[] * @details \b Outputs: none * @param param ID of parameter * @param isMin to indicate whether minimum is needed for maximum @@ -1149,7 +1167,7 @@ * @brief * The getF32DefaultTreatmentParamEdge function returns the min or max of * the default treatment parameters - * @details \b Inputs: TREAT_PARAMS_PROPERTIES + * @details \b Inputs: TREAT_PARAMS_PROPERTIES[] * @details \b Outputs: none * @param param ID of parameter * @param isMin to indicate whether minimum is needed for maximum Index: firmware/App/Modes/OperationModes.c =================================================================== diff -u -r036a75d76ab01912646a480b935d97187a231a19 -r79c2105d7ec35f3caeb977f6e2cc1b494853d211 --- firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 036a75d76ab01912646a480b935d97187a231a19) +++ firmware/App/Modes/OperationModes.c (.../OperationModes.c) (revision 79c2105d7ec35f3caeb977f6e2cc1b494853d211) @@ -609,7 +609,7 @@ /*********************************************************************//** * @brief - * The sendOperationStatusEvent function constructs and sends an HD operation + * The sendOperationStatusEvent function constructs and sends an TD operation * status event. * @details \b Message \b Sent: MSG_ID_TD_EVENT * @details \b Inputs: currentMode, currentSubMode, currentSubState, current4thLevelState Index: firmware/App/Modes/StateTxDialysis.c =================================================================== diff -u -rcd19fd5095128315982b9ef810bd45e68eff8deb -r79c2105d7ec35f3caeb977f6e2cc1b494853d211 --- firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision cd19fd5095128315982b9ef810bd45e68eff8deb) +++ firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision 79c2105d7ec35f3caeb977f6e2cc1b494853d211) @@ -233,6 +233,8 @@ * @brief * The signalPauseResumeUF function handles a request to pause or resume * ultrafiltration. + * @details \b Message \b Sent: MSG_ID_TD_UF_PAUSE_RESUME_RESPONSE + * @details \b Message \b Sent: UF_START_PAUSE_EVENT / UF_START_RESUME_EVENT * @details \b Inputs: currentDialysisState, setUFRateLHr * @details \b Outputs: ufPauseRequested, ufResumeRequested * @param message Message from UI which includes a flag indicating whether @@ -343,8 +345,10 @@ /*********************************************************************//** * @brief * The execDialysis function executes the Dialysis sub-mode state machine. - * @details Inputs: currentDialysisState - * @details Outputs: currentDialysisState + * @details \b Alarm: ALARM_ID_TD_SOFTWARE_FAULT if state is invalid + * @details \b Message \b Sent: TD_EVENT_SUB_STATE_CHANGE when state changes + * @details \b Inputs: currentDialysisState + * @details \b Outputs: currentDialysisState * @return none *************************************************************************/ void execDialysis( void ) @@ -381,8 +385,8 @@ * @brief * The handleDialysisUltrafiltrationState function handles the ultrafiltration * state of the Dialysis state machine. - * @details \b Inputs: none - * @details \b Outputs: none + * @details \b Inputs: ufPauseRequested + * @details \b Outputs: ufPauseRequested * @return next Dialysis state. *************************************************************************/ static DIALYSIS_STATE_T handleDialysisUltrafiltrationState( void ) @@ -403,8 +407,8 @@ * @brief * The handleDialysisUltrafiltrationPausedState function handles the * ultrafiltration paused state of the Dialysis state machine. - * @details \b Inputs: none - * @details \b Outputs: none + * @details \b Inputs: ufResumeRequested + * @details \b Outputs: ufResumeRequested * @return next Dialysis state. *************************************************************************/ static DIALYSIS_STATE_T handleDialysisUltrafiltrationPausedState( void ) Index: firmware/App/Modes/StateTxPaused.c =================================================================== diff -u -rcd19fd5095128315982b9ef810bd45e68eff8deb -r79c2105d7ec35f3caeb977f6e2cc1b494853d211 --- firmware/App/Modes/StateTxPaused.c (.../StateTxPaused.c) (revision cd19fd5095128315982b9ef810bd45e68eff8deb) +++ firmware/App/Modes/StateTxPaused.c (.../StateTxPaused.c) (revision 79c2105d7ec35f3caeb977f6e2cc1b494853d211) @@ -129,6 +129,8 @@ /*********************************************************************//** * @brief * The execTreatmentPaused function executes the Treatment Paused state machine. + * @details \b Alarm: ALARM_ID_HD_SOFTWARE_FAULT if state is invalid + * @details \b Message \b Sent: TD_EVENT_SUB_STATE_CHANGE when state changes * @details \b Inputs: currentTxPausedState * @details \b Outputs: currentTxPausedState * @return none