Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -r4cc579577062113856fd266cb65b1ccbe33bb596 -rd0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 4cc579577062113856fd266cb65b1ccbe33bb596) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision d0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea) @@ -70,11 +70,10 @@ static U32 timeStartMS = 0; // TODO is this needed? // DG sensor data -static F32 dgDialysateTemp = 0.0; ///< Dialysate temperature reported by the DG. -static F32 dgRedundantDialysateTemp = 0.0; ///< Redundant dialysate temperature reported by the DG. -static F32 dgPrimaryTemp = 0.0; ///< Latest RO water temperature reported by the DG. -static F32 dgTrimmerTempSet = 0.0; ///< Trimmer heater target temperature commanded. -static F32 dgTrimmerTemp = 0.0; ///< Latest dialysate temperature reported by the DG. +static F32 dgDialysateTemp; ///< Dialysate temperature reported by the DG. +static F32 dgRedundantDialysateTemp; ///< Redundant dialysate temperature reported by the DG. +static F32 dgHeatDisinfectTemp; ///< Heat disinfect temperature reported by the DG. +static F32 dgTrimmerTempSet; ///< Trimmer heater target temperature commanded. /// Measured weight from load cells. static OVERRIDE_F32_T loadCellWeightInGrams[ NUM_OF_LOAD_CELLS ]; @@ -145,6 +144,7 @@ dgStartCommandSent = FALSE; dgDialysateFlowRateMlMin = 0.0F; dgDialysateFlowDataFreshFlag = FALSE; + dgHeatDisinfectTemp = 0.0F; // initialize load cell weights for ( i = 0; i < NUM_OF_LOAD_CELLS; i++ ) @@ -464,6 +464,19 @@ /*********************************************************************//** * @brief + * The getHeatDisinfectTemperatureSensorValue function gets the latest + * heat disinfect temperature sensor value. + * @details Inputs: dgDialysateTemp + * @details Outputs: none + * @return the current heat disinfect temperature sensor value + *************************************************************************/ +F32 getHeatDisinfectTemperatureSensorValue( void ) +{ + return dgHeatDisinfectTemp; +} + +/*********************************************************************//** + * @brief * The getDGDisinfectsStates function returns the DG disinfects readings. * @details Inputs: none * @details Outputs: none @@ -534,15 +547,16 @@ * @details Inputs: none * @details Outputs: dgDialysateTemp, dgRedundantDialysateTemp, * dgDialysateTemperatureDataFreshFlag - * @param temp1 dialysate temperature reported by DG - * @param temp2 redundant dialysate temperature reported by DG + * @param tdi dialysate temperature reported by DG + * @param tro redundant dialysate temperature reported by DG + * @param thd heat disinfect temperature sensor reported by DG * @return none *************************************************************************/ -void setDialysateTemperatureReadings( F32 temp1, F32 temp2 ) +void setDialysateTemperatureReadings( F32 tdi, F32 tro, F32 thd ) { - dgDialysateTemp = temp1; - dgRedundantDialysateTemp = temp2; - + dgDialysateTemp = tdi; + dgRedundantDialysateTemp = tro; + dgHeatDisinfectTemp = thd; dgDialysateTemperatureDataFreshFlag = TRUE; } Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -rc429cf7f50851acbaca6e800957ef44cc1fa2162 -rd0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision c429cf7f50851acbaca6e800957ef44cc1fa2162) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision d0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea) @@ -129,12 +129,13 @@ F32 getReservoirWeightLargeFilter( DG_RESERVOIR_ID_T resID ); F32 getReservoirBackupWeightLargeFilter( DG_RESERVOIR_ID_T resID ); F32 getDialysateTemperature( void ); +F32 getHeatDisinfectTemperatureSensorValue( void ); DG_DISINFECT_UI_STATES_T getDGDisinfectsStates( void ); DG_MIXING_RATIOS_T getDGMixingRatios( void ); void getHDVersionDGServiceAndUsageData( DG_SERVICE_AND_USAGE_DATA_T* data ); void setDGOpMode( U32 opMode, U32 subMode ); -void setDialysateTemperatureReadings( F32 temp1, F32 temp2 ); +void setDialysateTemperatureReadings( F32 tdi, F32 tro, F32 thd ); void setDGReservoirsData( DG_RESERVOIR_ID_T resID, U32 fillVol, U32 drainVol ); void setDialysateFlowData( F32 flowRate ); void setNewLoadCellReadings( F32 res1Primary, F32 res1Backup, F32 res2Primary, F32 res2Backup ); Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r4cc579577062113856fd266cb65b1ccbe33bb596 -rd0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 4cc579577062113856fd266cb65b1ccbe33bb596) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision d0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea) @@ -49,6 +49,7 @@ #define DISINFECTS_DATA_PUB_INTERVAL ( 1 * MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Disinfects data publish interval in counts. #define DISINFECTS_TIME_INTERVAL_S ( 2 * SECONDS_IN_A_DAY ) ///< HD/DG 2-day service interval in seconds. #define FLUSH_TIME_INTERVAL_S ( 30 * SEC_PER_MIN * MS_PER_SECOND ) ///< Flush time interval in seconds. +#define MAX_ALLOWED_RO_FILTER_TEMP_FOR_TX_C 44.0F ///< Maximum allowed temperature to start a treatment in C. // ********** private data ********** @@ -310,6 +311,11 @@ { rejReason = REQUEST_REJECT_REASON_DG_DISINFECT_HAS_BEEN_EXPIRED; } + + if ( getHeatDisinfectTemperatureSensorValue() > MAX_ALLOWED_RO_FILTER_TEMP_FOR_TX_C ) + { + rejReason = REQUEST_REJECT_REASON_DG_RO_FILTER_TEMPERATURE_OUT_OF_RANGE; + } } if ( REQUEST_REJECT_REASON_NONE == rejReason ) Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r4cc579577062113856fd266cb65b1ccbe33bb596 -rd0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 4cc579577062113856fd266cb65b1ccbe33bb596) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision d0e6b55d2fed933caec5ca8f5b8f19c7f4d7ecea) @@ -2355,7 +2355,7 @@ TEMPERATURE_SENSORS_DATA_T payload; memcpy( &payload, message->payload, sizeof( TEMPERATURE_SENSORS_DATA_T ) ); - setDialysateTemperatureReadings( payload.inletDialysate, payload.outletRedundant ); + setDialysateTemperatureReadings( payload.inletDialysate, payload.outletRedundant, payload.heatDisinfect ); } }