Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r6e23d627c3f5a1ef3f7cca5d4e48eb478b0eef4c -ra6d1ff9f7223af8efaa54f47c217d44391740405 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 6e23d627c3f5a1ef3f7cca5d4e48eb478b0eef4c) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision a6d1ff9f7223af8efaa54f47c217d44391740405) @@ -54,6 +54,7 @@ #define DIALYSATE_TEMP_LOWER_SAFETY_TIMEOUT_MS ( 300 * MS_PER_SECOND ) ///< Dialysate temperature lower bound timeout in milliseconds. #define DIALYSATE_TEMP_CLEAR_TIMEOUT_MS ( 30 * MS_PER_SECOND ) ///< Dialysate temperature clear persistence timeout. #define DG_DATA_FRESHNESS_TIMEOUT_MS ( 3 * MS_PER_SECOND ) ///< DG data freshness timeout (in ms). +#define DG_TRIMMER_HTR_CHECK_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL + 2 ) ///< DG trimmer heater check interval in general task execution time counts. // ********** private data ********** @@ -70,6 +71,8 @@ static F32 dgHeatDisinfectTemp; ///< Heat disinfect temperature reported by the DG. static F32 dgTrimmerTempSet; ///< Trimmer heater target temperature commanded. +static U32 dgTrimmerTempCheckTimerCtr; ///< Trimmer heater temp check interval timer counter. + /// Measured weight from load cells. static OVERRIDE_F32_T loadCellWeightInGrams[ NUM_OF_LOAD_CELLS ]; @@ -128,7 +131,8 @@ dgStarted = FALSE; dgTrimmerHeaterOn = FALSE; - dgTrimmerTempSet = 0.0F; + dgTrimmerTempSet = 0.0F; + dgTrimmerTempCheckTimerCtr = 0; dgActiveReservoirSet = DG_RESERVOIR_2; dgActiveReservoir = DG_RESERVOIR_2; dgReservoirFillVolumeTargetSet = 0; @@ -249,7 +253,11 @@ checkDGRestart(); // Check the status of the trimmer heater - checkDGTrimmerHeaterStatus(); + if ( ++dgTrimmerTempCheckTimerCtr >= DG_TRIMMER_HTR_CHECK_INTERVAL ) + { + dgTrimmerTempCheckTimerCtr = 0; + checkDGTrimmerHeaterStatus(); + } } } @@ -479,6 +487,19 @@ /*********************************************************************//** * @brief + * The getTrimmerHeaterCommandedOn function gets the latest on/off commanded + * status of the trimmer heater. + * @details Inputs: dgTrimmerHeaterOn + * @details Outputs: none + * @return dgTrimmerHeaterOn + *************************************************************************/ +BOOL getTrimmerHeaterCommandedOn( void ) +{ + return dgTrimmerHeaterOn; +} + +/*********************************************************************//** + * @brief * The getDGDisinfectsStates function returns the DG disinfects readings. * @details Inputs: none * @details Outputs: none @@ -1112,7 +1133,7 @@ switch ( dgCmdRespPtr->rejectCode ) { case DG_CMD_REQUEST_REJECT_REASON_INVALID_PARAMETER: - activateAlarmNoData( ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT ); + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DG_COMMAND_INVALID_PARAMETER_FAULT, dgCmdRespPtr->commandID ); break; case DG_CMD_REQUEST_REJECT_REASON_NONE: