Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -rcec99d45c5560214a8c911588ce66a7b1653470d -ra5b84c018934c938b28c9b6671a6ae842f899e19 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision cec99d45c5560214a8c911588ce66a7b1653470d) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision a5b84c018934c938b28c9b6671a6ae842f899e19) @@ -774,6 +774,31 @@ /*********************************************************************//** * @brief + * The setDefaultTreatmentHeatingParams function calculates and set the default heating + * parameters to be sent to DG. + * @details Inputs: treatment dialysate temperature, treatment dialysate flow + * @details Outputs: none + * @return none + *************************************************************************/ +void setDefaultTreatmentHeatingParams( void ) +{ + DG_CMD_DIALYSATE_HEATING_PARAMS_T params; + + F32 targetTempC = getTreatmentParameterF32( TREATMENT_PARAM_DIALYSATE_TEMPERATURE ); + U32 dialysateFlowMLPM = getTreatmentParameterU32( TREATMENT_PARAM_DIALYSATE_FLOW ); + F32 fillTimeMS = ( (F32)DEFAULT_FILL_RESERVOIR_TO_VOLUME_ML / ( DEFAULT_TARGET_FILL_FLOW_RATE_LPM * ML_PER_LITER ) ) * SEC_PER_MIN * MS_PER_SECOND; + + params.trimmerTargetTemperature = targetTempC; + params.timeReservoirWait2SwitchMS = 0; + params.timeReservoirFillMS = fillTimeMS; + params.timeReservoirCycleMS = (U32)fillTimeMS; + params.dialysateFlowLPM = ( (F32)dialysateFlowMLPM ) / ML_PER_LITER; + params.usePriTargetTempEquation = FALSE; + cmdSetDGDialysateHeatingParams( params ); +} + +/*********************************************************************//** + * @brief * The cmdSetDGDialysateHeatingParams function sends the dialysate heating * parameters to DG. * @details Inputs: none Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -r736cc5b56cc9c784ab1d8fc8687a73d190c35759 -ra5b84c018934c938b28c9b6671a6ae842f899e19 --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision 736cc5b56cc9c784ab1d8fc8687a73d190c35759) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision a5b84c018934c938b28c9b6671a6ae842f899e19) @@ -31,7 +31,7 @@ */ // ********** public definitions ********** - +#define DEFAULT_FILL_RESERVOIR_TO_VOLUME_ML 1500 ///< default Fill reservoir to this volume (in mL). #define DEFAULT_TARGET_FILL_FLOW_RATE_LPM 0.8F ///< Default target fill flow rate in L/min. #define DRAIN_RESERVOIR_TO_VOLUME_ML 0 ///< Drain reservoir to this volume (in mL) during treatment. #define LOAD_CELL_ILLEGAL_WEIGHT_VALUE -10000.0F ///< Initial value for Load Cells, known bad value @@ -131,7 +131,8 @@ void setDGHeatersData( HEATERS_DATA_T *data ); void setHDVersionDGServiceRecord( DG_SERVICE_RECORD_T* data ); void setHDVersionDGUsageInfo( DG_USAGE_INFO_RECORD_T* data ); - + +void setDefaultTreatmentHeatingParams( void ); void cmdSetDGDialysateHeatingParams( DG_CMD_DIALYSATE_HEATING_PARAMS_T heatingParams ); void cmdStartDG( void ); void cmdStopDG( void ); Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -rf5d4fecd7b937ddf8e8b4ef3372541e79c7a44fc -ra5b84c018934c938b28c9b6671a6ae842f899e19 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision f5d4fecd7b937ddf8e8b4ef3372541e79c7a44fc) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision a5b84c018934c938b28c9b6671a6ae842f899e19) @@ -188,6 +188,17 @@ stopSyringePump(); endAirTrapControl(); + // if DG restarted for some reason, lets make sure we set the heating parameters first before commanding to + // turn on the trimmer heater and start the DG as well. + if ( DG_MODE_STAN == getDGOpMode() ) + { + // set the trimmer heating parameters + setDefaultTreatmentHeatingParams(); + + // start the DG + cmdStartDG(); + } + // Re-circulate dialysate side of dialyzer w/ heating to maintain temperature setDialInPumpTargetFlowRate( DIALYSATE_FLOW_RATE_FOR_RECIRC, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); cmdStartDGTrimmerHeater(); Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rf5d4fecd7b937ddf8e8b4ef3372541e79c7a44fc -ra5b84c018934c938b28c9b6671a6ae842f899e19 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision f5d4fecd7b937ddf8e8b4ef3372541e79c7a44fc) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a5b84c018934c938b28c9b6671a6ae842f899e19) @@ -377,7 +377,8 @@ // if the block timer is 0 OR we have an unblockable alarm if ( ( ALARM_NOT_BLOCKED == alarmsBlockedTimer ) || ( ALARM_ID_HD_AC_POWER_LOST == alarm ) - || ( ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT == alarm ) ) + || ( ALARM_ID_HD_AC_POWER_LOST_IN_TREATMENT == alarm ) + || ( ALARM_ID_HD_DG_RESTARTED_FAULT == alarm ) ) { // do not re-trigger alarm if blocked by property if ( ( FALSE == alarmNoRetrigger ) || ( ( ALARM_TABLE[ alarm ].alarmNoRetrigOnRB != TRUE ) && ( ALARM_TABLE[ alarm ].alarmNoRetrigOnEndTx != TRUE ) ) )