Index: firmware/App/Controllers/DGInterface.c =================================================================== diff -u -rab57180655892575252175a4310d97a1c8c46e74 -r78cee9347b3766ac7c14d413ed848be758c7e9cd --- firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision ab57180655892575252175a4310d97a1c8c46e74) +++ firmware/App/Controllers/DGInterface.c (.../DGInterface.c) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) @@ -777,7 +777,8 @@ *************************************************************************/ void cmdStartDG( void ) { - dgStartCommandSent = TRUE; + dgStartCommandSent = TRUE; + sendDGStartStopCommand( START_DG_CMD ); } @@ -791,7 +792,8 @@ *************************************************************************/ void cmdStopDG( void ) { - dgStarted = FALSE; + dgStarted = FALSE; + sendDGStartStopCommand( STOP_DG_CMD ); } @@ -806,7 +808,8 @@ void cmdStartDGTrimmerHeater( void ) { dgTrimmerHeaterOn = TRUE; - dgCmdResp[ DG_CMD_START_TRIMMER_HEATER ].commandID = DG_CMD_NONE; + dgCmdResp[ DG_CMD_START_TRIMMER_HEATER ].commandID = DG_CMD_NONE; + sendDGStartStopTrimmerHeaterCommand( START_DG_CMD, dgTrimmerTempSet ); } @@ -822,6 +825,7 @@ { dgTrimmerHeaterOn = FALSE; dgCmdResp[ DG_CMD_STOP_TRIMMER_HEATER ].commandID = DG_CMD_NONE; + sendDGStartStopTrimmerHeaterCommand( STOP_DG_CMD, 0 ); } @@ -839,7 +843,8 @@ if ( resID < NUM_OF_DG_RESERVOIRS ) { dgActiveReservoirSet = resID; - dgCmdResp[ DG_CMD_SWITCH_RESERVOIR ].commandID = DG_CMD_NONE; + dgCmdResp[ DG_CMD_SWITCH_RESERVOIR ].commandID = DG_CMD_NONE; + sendDGSwitchReservoirCommand( (U32)resID ); } else @@ -862,6 +867,7 @@ if ( valveSettingID < NUM_OF_DG_VALVE_SETTTINGS ) { dgCmdResp[ DG_CMD_VALVE_SETTING ].commandID = DG_CMD_NONE; + sendDGChangeValveSettingCommand( (U32)valveSettingID ); } else @@ -881,7 +887,8 @@ void cmdStartDGFill( U32 fillToVolMl ) { dgCmdResp[ DG_CMD_START_FILL ].commandID = DG_CMD_NONE; - dgReservoirFillVolumeTargetSet = fillToVolMl; + dgReservoirFillVolumeTargetSet = fillToVolMl; + sendDGFillCommand( DG_CMD_START, fillToVolMl ); } @@ -896,6 +903,7 @@ { dgCmdResp[ DG_CMD_STOP_FILL ].commandID = DG_CMD_NONE; dgReservoirFillVolumeTargetSet = 0; + sendDGFillCommand( DG_CMD_STOP, 0 ); } @@ -915,7 +923,8 @@ dgCmdResp[ DG_CMD_START_DRAIN ].commandID = DG_CMD_NONE; payload.drainToVolumeML = drainToVolMl; payload.tareLoadCells = tareLoadCell; - dgReservoirDrainVolumeTargetSet = drainToVolMl; + dgReservoirDrainVolumeTargetSet = drainToVolMl; + sendDGDrainCommand( &payload ); } @@ -943,6 +952,7 @@ { BOOL start = TRUE; dgCmdResp[ DG_CMD_START_FLUSH ].commandID = DG_CMD_NONE; + sendDGStartFlushModeCommand( start ); } @@ -958,6 +968,7 @@ { BOOL start = FALSE; dgCmdResp[ DG_CMD_STOP_FLUSH ].commandID = DG_CMD_NONE; + sendDGStartFlushModeCommand( start ); } @@ -973,6 +984,7 @@ { BOOL start = TRUE; dgCmdResp[ DG_CMD_START_HEAT_DISINFECT ].commandID = DG_CMD_NONE; + sendDGStartHeatDisinfectModeCommand( start ); } @@ -988,6 +1000,7 @@ { BOOL start = FALSE; dgCmdResp[ DG_CMD_STOP_HEAT_DISINFECT ].commandID = DG_CMD_NONE; + sendDGStartHeatDisinfectModeCommand( start ); } @@ -1003,6 +1016,7 @@ { BOOL start = TRUE; dgCmdResp[ DG_CMD_START_CHEM_DISINFECT ].commandID = DG_CMD_NONE; + sendDGStartChemicalDisinfectModeCommand( start ); } @@ -1018,6 +1032,7 @@ { BOOL start = FALSE; dgCmdResp[ DG_CMD_STOP_CHEM_DISINFECT ].commandID = DG_CMD_NONE; + sendDGStartChemicalDisinfectModeCommand( start ); } Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r1240b612f790f931825aba86ec37f37eccce9336 -r78cee9347b3766ac7c14d413ed848be758c7e9cd --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 1240b612f790f931825aba86ec37f37eccce9336) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) @@ -362,6 +362,7 @@ U08 dpiErrorCtr = getFPGADialInPumpOcclusionErrorCounter(); U08 dpoErrorCtr = getFPGADialOutPumpOcclusionErrorCounter(); +#ifndef DISABLE_PRESSURE_CHECKS // Check for sensor errors if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_BP_OCCLUSION_SENSOR_ERROR, ( bpErrorCtr != lastBPErrorCtr ) ) ) { @@ -389,6 +390,7 @@ { activateAlarmNoData( ALARM_ID_HD_DPO_OCCLUSION_READ_TIMEOUT_ERROR ); } +#endif // Record occlusion sensor readings bloodPumpOcclusion.data = (U32)getFPGABloodPumpOcclusion(); Index: firmware/App/HDCommon.h =================================================================== diff -u -rab57180655892575252175a4310d97a1c8c46e74 -r78cee9347b3766ac7c14d413ed848be758c7e9cd --- firmware/App/HDCommon.h (.../HDCommon.h) (revision ab57180655892575252175a4310d97a1c8c46e74) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) @@ -39,7 +39,7 @@ // #define TASK_TIMING_OUTPUT_ENABLED 1 // Re-purposes alarm lamp pins for task timing #define DISABLE_ALARM_AUDIO 1 // Disable alarm audio // #define SKIP_POST 1 // Skip POST tests - all pass -// #define DONT_SKIP_NV_POST 1 // Do not skip NV Data POST + #define DONT_SKIP_NV_POST 1 // Do not skip NV Data POST // #define USE_LIBRARY_TIME_FUNCTIONS 1 // Use the C library functions mktime() and gmtime() for epoch<=>date conversions #define DISABLE_AIR_TRAP_LEVELING_ALARM 1 // Disable air trap level control alarms // #define DISABLE_3WAY_VALVES 1 // Disable 3-way valves @@ -51,9 +51,9 @@ // #define DISABLE_PUMP_FLOW_CHECKS 1 // Do not error on HD pump flow checks // #define DISABLE_PUMP_SPEED_CHECKS 1 // Do not error on HD pump speed checks // #define DISABLE_PUMP_DIRECTION_CHECKS 1 // Do not error on HD pump direction checks -// #define DISABLE_SYRINGE_PUMP 1 // Disable syringe pump functionality + #define DISABLE_SYRINGE_PUMP 1 // Disable syringe pump functionality #define ALWAYS_ALLOW_SYRINGE_PUMP_CMDS 1 // Allow syringe pump commands at any time except when pump is busy -// #define DISABLE_PRESSURE_CHECKS 1 // Do not error on HD pressure checks + #define DISABLE_PRESSURE_CHECKS 1 // Do not error on HD pressure checks // #define DISABLE_UF_ALARMS 1 // Do not error on HD ultrafiltration checks // #define DISABLE_VALVE_ALARMS 1 // Do not error on HD valve position #define DISABLE_CAL_CHECK 1 // Disable calibration checks Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -rab57180655892575252175a4310d97a1c8c46e74 -r78cee9347b3766ac7c14d413ed848be758c7e9cd --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision ab57180655892575252175a4310d97a1c8c46e74) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) @@ -173,9 +173,10 @@ // Skip the rest of the POSTs postState = POST_STATE_COMPLETED; testStatus = SELF_TEST_STATUS_PASSED; -#endif +#else testStatus = execAlarmAudioSelfTest(); postState = handlePOSTStatus( testStatus ); +#endif break; case POST_STATE_ALARM_LAMP: Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rab57180655892575252175a4310d97a1c8c46e74 -r78cee9347b3766ac7c14d413ed848be758c7e9cd --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision ab57180655892575252175a4310d97a1c8c46e74) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) @@ -44,7 +44,7 @@ // ********** private definitions ********** -#define DISINFECTS_DATA_PUB_INTERVAL ( 4 * MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Disinfects data publish interval in counts. +#define DISINFECTS_DATA_PUB_INTERVAL ( 1 * MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Disinfects data publish interval in counts. // ********** private data ********** @@ -260,84 +260,6 @@ /*********************************************************************//** * @brief - * The handleStandbyWait4TreatmentState function handles the wait for - * treatment state for standby mode. - * @details Inputs: treatStartReqReceived - * @details Outputs: treatment may be initiated - * @return next standby state - *************************************************************************/ -static HD_STANDBY_STATE_T handleStandbyWait4TreatmentState( void ) -{ - HD_STANDBY_STATE_T result = STANDBY_WAIT_FOR_TREATMENT_STATE; - - if ( TRUE == treatStartReqReceived ) - { - // Initialize treatment modes before starting a new treatment - initTreatParamsMode(); - initPreTreatmentMode(); - initTreatmentMode(); - initPostTreatmentMode(); - // Start treatment workflow with treatment parameters mode - requestNewOperationMode( MODE_TPAR ); - treatStartReqReceived = FALSE; - } - - return result; -} - -/*********************************************************************//** - * @brief - * The handleStandbyDGFlushState function handles the DG flush state for - * standby mode. - * @details Inputs: - * @details Outputs: - * @return next standby state - *************************************************************************/ -static HD_STANDBY_STATE_T handleStandbyDGFlushState( void ) -{ - HD_STANDBY_STATE_T result = STANDBY_DG_FLUSH_IN_PROGRESS_STATE; - - // TODO - implement w/ UI - - return result; -} - -/*********************************************************************//** - * @brief - * The handleStandbyDGHeatDisinfectState function handles the wait for - * treatment state for standby mode. - * @details Inputs: - * @details Outputs: - * @return next standby state - *************************************************************************/ -static HD_STANDBY_STATE_T handleStandbyDGHeatDisinfectState( void ) -{ - HD_STANDBY_STATE_T result = STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE; - - // TODO - implement w/ UI - - return result; -} - -/*********************************************************************//** - * @brief - * The handleStandbyDGChemDisinfectState function handles the wait for - * treatment state for standby mode. - * @details Inputs: - * @details Outputs: - * @return next standby state - *************************************************************************/ -static HD_STANDBY_STATE_T handleStandbyDGChemDisinfectState( void ) -{ - HD_STANDBY_STATE_T result = STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE; - - // TODO - implement w/ UI - - return result; -} - -/*********************************************************************//** - * @brief * The signalUserInitiateTreatment function handles user initiation of a * treatment. * @details Inputs: none @@ -576,8 +498,9 @@ else if ( DG_MODE_FLUS == getDGOpMode() ) { hasDisinfectCmdBeenSet = FALSE; + flushStartReqReceived = FALSE; dgDisinfectState = DG_DISINFECT_FLUSH_STATE; - currentStandbyState = STANDBY_DG_FLUSH_IN_PROGRESS_STATE; + state = STANDBY_DG_FLUSH_IN_PROGRESS_STATE; } } else if ( TRUE == heatDisinfectStartReqReceived ) @@ -590,8 +513,9 @@ else if ( DG_MODE_HEAT == getDGOpMode() ) { hasDisinfectCmdBeenSet = FALSE; + heatDisinfectStartReqReceived = FALSE; dgDisinfectState = DG_DISINFECT_HEAT_STATE; - currentStandbyState = STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE; + state = STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE; } } else if ( TRUE == chemDisinfectStartReqReceived ) @@ -604,8 +528,9 @@ else if ( DG_MODE_CHEM == getDGOpMode() ) { hasDisinfectCmdBeenSet = FALSE; + chemDisinfectStartReqReceived = FALSE; dgDisinfectState = DG_DISINFECT_CHEM_STATE; - currentStandbyState = STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE; + state = STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE; } } @@ -627,7 +552,7 @@ if ( getDGOpMode() != DG_MODE_FLUS ) { dgDisinfectState = DG_DISINFECT_NOT_RUNNING_STATE; - currentStandbyState = STANDBY_WAIT_FOR_TREATMENT_STATE; + state = STANDBY_WAIT_FOR_TREATMENT_STATE; } publishDisinfectData(); @@ -649,7 +574,7 @@ if ( getDGOpMode() != DG_MODE_HEAT ) { dgDisinfectState = DG_DISINFECT_NOT_RUNNING_STATE; - currentStandbyState = STANDBY_WAIT_FOR_TREATMENT_STATE; + state = STANDBY_WAIT_FOR_TREATMENT_STATE; } publishDisinfectData(); @@ -671,7 +596,7 @@ if ( getDGOpMode() != DG_MODE_CHEM ) { dgDisinfectState = DG_DISINFECT_NOT_RUNNING_STATE; - currentStandbyState = STANDBY_WAIT_FOR_TREATMENT_STATE; + state = STANDBY_WAIT_FOR_TREATMENT_STATE; } publishDisinfectData(); @@ -696,15 +621,15 @@ switch( currentStandbyState ) { case STANDBY_DG_FLUSH_IN_PROGRESS_STATE: - data.disinfectDGState = state.flushUIState; + data.disinfectDGFlushState = state.flushUIState; break; case STANDBY_DG_HEAT_DISINFECT_IN_PROGRESS_STATE: - data.disinfectDGState = state.heatDisinfectUIState; + data.disinfectDGHeatState = state.heatDisinfectUIState; break; case STANDBY_DG_CHEM_DISINFECT_IN_PROGRESS_STATE: - data.disinfectDGState = state.chemDisinfectUIState; + data.disinfectDGChemState = state.chemDisinfectUIState; break; } Index: firmware/App/Modes/ModeStandby.h =================================================================== diff -u -rb7318644527939f0b8b01bd3999a9c187c64f40e -r78cee9347b3766ac7c14d413ed848be758c7e9cd --- firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision b7318644527939f0b8b01bd3999a9c187c64f40e) +++ firmware/App/Modes/ModeStandby.h (.../ModeStandby.h) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) @@ -34,8 +34,10 @@ /// DG disinfects data publish typedef struct { - U32 disinfectDGState; ///< DG disinfect state - U32 disinfectSubModeHDState; ///< HD disinfect sub mode state + U32 disinfectSubModeHDState; ///< HD disinfect sub mode state. + U32 disinfectDGFlushState; ///< DG disinfect flush state. + U32 disinfectDGHeatState; ///< DG disinfect heat disinfect state. + U32 disinfectDGChemState; ///< DG disinfect chem disinfect state. } DISINFECTS_DATA_T; // ********** public function prototypes ********** Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rab57180655892575252175a4310d97a1c8c46e74 -r78cee9347b3766ac7c14d413ed848be758c7e9cd --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision ab57180655892575252175a4310d97a1c8c46e74) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 78cee9347b3766ac7c14d413ed848be758c7e9cd) @@ -1291,10 +1291,6 @@ handleChemDisinfectUIStateReadingFromDG( message ); break; - case MSG_ID_HD_SET_CALIBRATION_RECORD: - handleSetHDCalibrationRecord( message ); - break; - case MSG_ID_UI_HD_SET_RTC_REQUEST: handleUIClockSyncRequest( message ); break;