Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -ra6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa -rcb83129ca29f7f99583481420808a96f1848bb36 --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision a6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision cb83129ca29f7f99583481420808a96f1848bb36) @@ -8,7 +8,7 @@ * @file DGInterface.c * * @author (last) Sean Nash -* @date (last) 13-Jan-2023 +* @date (last) 10-Feb-2023 * * @author (original) Sean * @date (original) 08-Apr-2020 @@ -17,6 +17,7 @@ #include // To check for NaN +#include "Battery.h" #include "DialInFlow.h" #include "Dialysis.h" #include "DGDefs.h" @@ -223,23 +224,26 @@ *************************************************************************/ void execDGInterfaceMonitor( void ) { - // Trigger alarm if not receiving new load cell data message in timely manner - checkDGDataFreshness( ALARM_ID_HD_NEW_LOAD_CELL_DATA_MESSAGE_NOT_RECEIVE, &dgLoadCellDataFreshFlag ); + if ( isACPowerLost() != TRUE ) + { + // Trigger alarm if not receiving new load cell data message in timely manner + checkDGDataFreshness( ALARM_ID_HD_NEW_LOAD_CELL_DATA_MESSAGE_NOT_RECEIVE, &dgLoadCellDataFreshFlag ); - // Trigger alarm if not receiving new dialysate temperature data message in timely manner - checkDGDataFreshness( ALARM_ID_HD_NEW_DIALYSATE_TEMPERATURE_DATA_MESSAGE_NOT_RECEIVE, &dgDialysateTemperatureDataFreshFlag ); + // Trigger alarm if not receiving new dialysate temperature data message in timely manner + checkDGDataFreshness( ALARM_ID_HD_NEW_DIALYSATE_TEMPERATURE_DATA_MESSAGE_NOT_RECEIVE, &dgDialysateTemperatureDataFreshFlag ); - // Trigger alarm if not receiving new reservoirs data message in timely manner - checkDGDataFreshness( ALARM_ID_HD_NEW_RESERVOIRS_DATA_MESSAGE_NOT_RECEIVE, &dgReservoirsDataFreshFlag ); + // Trigger alarm if not receiving new reservoirs data message in timely manner + checkDGDataFreshness( ALARM_ID_HD_NEW_RESERVOIRS_DATA_MESSAGE_NOT_RECEIVE, &dgReservoirsDataFreshFlag ); - // Trigger alarm if not receiving new DG op mode message in timely manner - checkDGDataFreshness( ALARM_ID_HD_NEW_DG_OPERATION_MODE_MESSAGE_NOT_RECEIVE, &dgOpModeDataFreshFlag ); + // Trigger alarm if not receiving new DG op mode message in timely manner + checkDGDataFreshness( ALARM_ID_HD_NEW_DG_OPERATION_MODE_MESSAGE_NOT_RECEIVE, &dgOpModeDataFreshFlag ); - // Check to see if DG has restarted - checkDGRestart(); + // Check to see if DG has restarted + checkDGRestart(); - // Check the status of the trimmer heater - checkDGTrimmerHeaterStatus(); + // Check the status of the trimmer heater + checkDGTrimmerHeaterStatus(); + } } /*********************************************************************//** @@ -1186,18 +1190,21 @@ U32 trimmerState = dgHeatersData.trimmerHeaterState; DG_OP_MODE_T dgOp = getDGOpMode(); - if ( ( DG_MODE_GENE == dgOp ) || ( DG_MODE_FILL == dgOp ) || ( DG_MODE_DRAI == dgOp ) ) + if ( isACPowerLost() != TRUE ) { - // In heat disinfect and chemical disinfect, the trimmer heater is controlled by the DG itself so no commands from HD should be sent - // regarding the trimmer heater. - if ( ( TRUE == dgTrimmerHeaterOn ) && ( HEATER_EXEC_STATE_OFF == trimmerState ) ) + if ( ( DG_MODE_GENE == dgOp ) || ( DG_MODE_FILL == dgOp ) || ( DG_MODE_DRAI == dgOp ) ) { - cmdStartDGTrimmerHeater(); + // In heat disinfect and chemical disinfect, the trimmer heater is controlled by the DG itself so no commands from HD should be sent + // regarding the trimmer heater. + if ( ( TRUE == dgTrimmerHeaterOn ) && ( HEATER_EXEC_STATE_OFF == trimmerState ) ) + { + cmdStartDGTrimmerHeater(); + } + else if ( ( FALSE == dgTrimmerHeaterOn ) && ( trimmerState != HEATER_EXEC_STATE_OFF ) ) + { + cmdStopDGTrimmerHeater(); + } } - else if ( ( FALSE == dgTrimmerHeaterOn ) && ( trimmerState != HEATER_EXEC_STATE_OFF ) ) - { - cmdStopDGTrimmerHeater(); - } } } Index: firmware/App/Controllers/DGInterface.h =================================================================== diff -u -ra6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa -rcb83129ca29f7f99583481420808a96f1848bb36 --- firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision a6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa) +++ firmware/App/Controllers/DGInterface.h (.../DGInterface.h) (revision cb83129ca29f7f99583481420808a96f1848bb36) @@ -7,8 +7,8 @@ * * @file DGInterface.h * -* @author (last) Sean Nash -* @date (last) 13-Jan-2023 +* @author (last) Dara Navaei +* @date (last) 07-Mar-2023 * * @author (original) Sean * @date (original) 08-Apr-2020 @@ -90,16 +90,6 @@ U32 flushUIState; ///< DG flush UI state } DG_DISINFECT_UI_STATES_T; -/// Dialysate heating parameters -typedef struct -{ - F32 trimmerTargetTemperature; ///< Trimmer target temperature - U32 timeReservoirCycleMS; ///< Reservoir cycle time in milliseconds - F32 timeReservoirFillMS; ///< Reservoir fill time in milliseconds - U32 timeReservoirWait2SwitchMS; ///< Reservoir wait to switch time in milliseconds - F32 dialysateFlowLPM; ///< Dialysate flow in L/min -} DG_CMD_DIALYSATE_HEATING_PARAMS_T; - /// HD version of the DG service record typedef struct { Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -ra6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa -rcb83129ca29f7f99583481420808a96f1848bb36 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision a6587c2ba0a40bdf12b5fdcf2ba8dec0cd958cfa) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision cb83129ca29f7f99583481420808a96f1848bb36) @@ -7,8 +7,8 @@ * * @file SystemCommMessages.c * -* @author (last) Michael Garthwaite -* @date (last) 07-Feb-2023 +* @author (last) James Walter Taylor +* @date (last) 10-Feb-2023 * * @author (original) Dara Navaei * @date (original) 05-Nov-2019 @@ -5111,13 +5111,13 @@ *************************************************************************/ void handleSetBloodLeakStatusOverrideRequest( MESSAGE_T *message ) { - TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + TEST_OVERRIDE_PAYLOAD_T payload; BOOL result = FALSE; // Verify payload length - if ( sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) == message->hdr.payloadLen ) + if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) { - memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); if ( FALSE == payload.reset ) { result = testSetBloodLeakStatusOverride( (BLOOD_LEAK_STATUS_T)( payload.state.u32 ) );