Index: firmware/App/Drivers/InternalADC.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -57,7 +57,7 @@ INT_ADC_NOT_USED, // 20 INT_ADC_NOT_USED, // 21 INT_ADC_24V_ACTUATORS, // 22 - INT_ADC_BACKUP_ALARM_CURRENT // 23 - No longer used - moved to FPGA. + INT_ADC_NOT_USED_2 // 23 }; const F32 ADC_CHANNEL_READ_TO_UNITS[ NUM_OF_INT_ADC_CHANNELS ] = @@ -74,14 +74,14 @@ 0.009420, // V - INT_ADC_24V_ACTUATORS_REG 0.000733, // V - INT_ADC_1_2V_PROCESSOR 0.001465, // V - INT_ADC_5V_SENSORS - 0.007326, // mA - INT_ADC_PRIMARY_ALARM_CURRENT_HG + 0.007324, // mA - INT_ADC_PRIMARY_ALARM_CURRENT_HG 0.001221, // V - INT_ADC_BOARD_THERMISTOR 0.000733, // V - INT_ADC_1_25_FPGA_ADC_REF 0.001465, // V - INT_ADC_3_3V 0.001465, // V - INT_ADC_5V_LOGIC - 0.073260, // mA - INT_ADC_PRIMARY_ALARM_CURRENT_LG + 0.073240, // mA - INT_ADC_PRIMARY_ALARM_CURRENT_LG 0.007106, // V - INT_ADC_24V_ACTUATORS - 0.073260, // mA - INT_ADC_BACKUP_ALARM_CURRENT + 0.0, // - INT_ADC_NOT_USED_2 0.000000, // V - INT_ADC_DUMMY }; Index: firmware/App/Drivers/InternalADC.h =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -58,7 +58,7 @@ INT_ADC_5V_LOGIC, ///< Internal ADC channel for 5V to logic INT_ADC_PRIMARY_ALARM_CURRENT_LG, ///< Internal ADC channel for primary alarm audio current low gain INT_ADC_24V_ACTUATORS, ///< Internal ADC channel for 24V to actuators - INT_ADC_BACKUP_ALARM_CURRENT, ///< Internal ADC channel for backup alarm audio current - No longer used - moved to FPGA. + INT_ADC_NOT_USED_2, ///< Not used INT_ADC_DUMMY, ///< Internal ADC channel - not used, needed to get even number of channels NUM_OF_INT_ADC_CHANNELS ///< Number of used internal ADC channels. } INT_ADC_CHANNEL_T; Index: firmware/App/Modes/ConsumableSelfTest.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Modes/ConsumableSelfTest.c (.../ConsumableSelfTest.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Modes/ConsumableSelfTest.c (.../ConsumableSelfTest.c) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -103,7 +103,7 @@ #endif // TODO: Check for DG straw door status to be open once DG door driver implemented - if ( TRUE == consumableInstallConfirmed ) + if ( TRUE == consumableInstallConfirmed ) // TODO - should we check that concentrate cap is off too? { consumableInstallConfirmed = FALSE; #ifndef _RELEASE_ @@ -114,20 +114,16 @@ else #endif { - currentConsumableSelfTestState = CONSUMABLE_SELF_TESTS_FILL_CMD_STATE; + if ( ( DG_MODE_GENE == getDGOpMode() ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getDGSubMode() ) ) + { + cmdStartDGFill( FILL_RESERVOIR_TO_VOLUME_ML, DEFAULT_TARGET_FILL_FLOW_RATE_LPM ); + currentConsumableSelfTestState = CONSUMABLE_SELF_TESTS_PRIME_STATE; + } } } break; - case CONSUMABLE_SELF_TESTS_FILL_CMD_STATE: - if ( ( DG_MODE_GENE == getDGOpMode() ) && ( DG_GEN_IDLE_MODE_STATE_FLUSH_WATER == getDGSubMode() ) ) - { - currentConsumableSelfTestState = CONSUMABLE_SELF_TESTS_WATER_QUALITY_CHECK_STATE; - cmdStartDGFill( FILL_RESERVOIR_TO_VOLUME_ML, DEFAULT_TARGET_FILL_FLOW_RATE_LPM ); - } - break; - - case CONSUMABLE_SELF_TESTS_WATER_QUALITY_CHECK_STATE: + case CONSUMABLE_SELF_TESTS_PRIME_STATE: if ( ( DG_MODE_FILL == getDGOpMode() ) && ( getDGSubMode() >= DG_FILL_MODE_STATE_TEST_BICARB_CONDUCTIVITY ) ) { currentConsumableSelfTestState = CONSUMABLE_SELF_TESTS_BICARB_PUMP_CHECK_STATE; Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -rda7e8c1b71db9273f83e9d0ba7d20e74e758a8ad -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision da7e8c1b71db9273f83e9d0ba7d20e74e758a8ad) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -124,7 +124,7 @@ *************************************************************************/ void initPreTreatmentMode( void ) { - currentPreTreatmentState = HD_PRE_TREATMENT_START_STATE; + currentPreTreatmentState = HD_PRE_TREATMENT_WATER_SAMPLE_STATE; currentReservoirMgmtState = PRE_TREATMENT_RESERVOIR_MGMT_START_STATE; setUFVolStatus = FALSE; patientConnectionConfirm = FALSE; @@ -196,6 +196,9 @@ doorClosedRequired( FALSE, FALSE ); + // Start pre-treatment mode in sample water state + transitionToSampleWater(); + return currentPreTreatmentState; } @@ -218,16 +221,6 @@ // execute mode state machine switch ( currentPreTreatmentState ) { - case HD_PRE_TREATMENT_START_STATE: -#ifndef _RELEASE_ - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_SAMPLE_WATER ) != SW_CONFIG_ENABLE_VALUE ) -#endif - { - transitionToSampleWater(); - } - currentPreTreatmentState = HD_PRE_TREATMENT_WATER_SAMPLE_STATE; - break; - case HD_PRE_TREATMENT_WATER_SAMPLE_STATE: currentPreTreatmentState = handleWaterSampleState(); break; @@ -652,27 +645,25 @@ if ( SAMPLE_WATER_COMPLETE_STATE == getSampleWaterState() ) { - { - cmdDGSampleWater( SAMPLE_WATER_CMD_END ); + cmdDGSampleWater( SAMPLE_WATER_CMD_END ); - if ( SELF_TEST_STATUS_PASSED == getSampleWaterResult() ) + if ( SELF_TEST_STATUS_PASSED == getSampleWaterResult() ) + { + if ( ( DG_MODE_STAN == dgOpMode ) && ( DG_STANDBY_MODE_STATE_IDLE == dgSubMode ) ) { - if ( ( DG_MODE_STAN == dgOpMode ) && ( DG_STANDBY_MODE_STATE_IDLE == dgSubMode ) ) - { - state = HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE; - cmdStartDG(); - transitionToConsumableSelfTest(); - } - else - { - cmdStopDG(); - } + state = HD_PRE_TREATMENT_SELF_TEST_CONSUMABLE_STATE; + cmdStartDG(); + transitionToConsumableSelfTest(); } else { - requestNewOperationMode( MODE_STAN ); + cmdStopDG(); } } + else + { + requestNewOperationMode( MODE_STAN ); + } } return state; Index: firmware/App/Modes/SampleWater.c =================================================================== diff -u -r0a4dcd288d4347b85baaa0b07da568b6add5eac7 -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Modes/SampleWater.c (.../SampleWater.c) (revision 0a4dcd288d4347b85baaa0b07da568b6add5eac7) +++ firmware/App/Modes/SampleWater.c (.../SampleWater.c) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -73,8 +73,12 @@ *************************************************************************/ void transitionToSampleWater( void ) { - cmdDGSampleWater( SAMPLE_WATER_CMD_FLUSH ); - +#ifndef _RELEASE_ + if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_SAMPLE_WATER ) != SW_CONFIG_ENABLE_VALUE ) +#endif + { + cmdDGSampleWater( SAMPLE_WATER_CMD_FLUSH ); + } initSampleWater(); } Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r775f8ad98cccfd06d712ab339d1d88e3e640803c -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 775f8ad98cccfd06d712ab339d1d88e3e640803c) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -258,7 +258,7 @@ useHeparin = ( ( bolusVol > 0.0 ) || ( hepRate > 0.0 ) ? TRUE : FALSE ); } - currentNoCartSelfTestsState = NO_CART_SELF_TESTS_START_STATE; + currentNoCartSelfTestsState = NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; runPumpStartTime = 0; havePumpsStartedForNCST = FALSE; pumpHomingRequestedForNCST = FALSE; @@ -296,10 +296,6 @@ // execute no cartridge self-tests state machine switch ( currentNoCartSelfTestsState ) { - case NO_CART_SELF_TESTS_START_STATE: - currentNoCartSelfTestsState = NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE; - break; - case NO_CART_SELF_TESTS_WAIT_FOR_DOOR_CLOSE_STATE: currentNoCartSelfTestsState = handleNoCartSelfTestsWaitForClosedDoor(); break; @@ -1120,7 +1116,7 @@ if ( TRUE == didTimeout( pressureSelfTestVenousTestStartTime, VENOUS_PRESSURE_SELF_TEST_MAX_TEST_TIME ) ) { - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE, venousPressure, VENOUS_PRESSURE_SELF_TEST_HIGH_LIMIT_MMHG ); + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_PRE_TREATMENT_DRY_PRESSURE_TEST_FAILURE, venousPressure, VENOUS_PRESSURE_SELF_TEST_FIRST_PASS_LIMIT_MMHG ); } if ( TRUE == doesAlarmStatusIndicateStop() ) Index: firmware/App/Services/AlarmMgmt.c =================================================================== diff -u -rfacca88de0d4c72d943b59bad9264a9b0a031ae5 -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision facca88de0d4c72d943b59bad9264a9b0a031ae5) +++ firmware/App/Services/AlarmMgmt.c (.../AlarmMgmt.c) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -251,8 +251,7 @@ { // No need to do anything if alarm is already active, but if condition was cleared then re-trigger alarm if ( ( FALSE == alarmIsActive[ alarm ] ) || - ( ( FALSE == alarmIsDetected[ alarm ] ) && - ( FALSE == ALARM_TABLE[ alarm ].alarmConditionClearImmed ) ) ) + ( ( FALSE == alarmIsDetected[ alarm ] ) && ( FALSE == ALARM_TABLE[ alarm ].alarmConditionClearImmed ) ) ) { // If alarm status was that no alarms currently active, set this alarm as top alarm until status formally updated later if ( ALARM_ID_NO_ALARM == alarmStatus.alarmTop ) @@ -1407,7 +1406,7 @@ break; default: - // TODO - s/w fault + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_HD_INVALID_ALARM_AUDIO_STATE, (U32)alarmAudioSelfTestState ) break; } Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -rda7e8c1b71db9273f83e9d0ba7d20e74e758a8ad -ra57994f752662abc0aaa8c2cf5c3af47ec2c5a20 --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision da7e8c1b71db9273f83e9d0ba7d20e74e758a8ad) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision a57994f752662abc0aaa8c2cf5c3af47ec2c5a20) @@ -180,6 +180,7 @@ SW_FAULT_ID_HD_AIR_PUMP_INVALID_MOTOR_STATE_SELECTED, SW_FAULT_ID_NVDATA_MANAGEMENT_OPS_TIMEOUT, // 150 SW_FAULT_ID_NVDATA_RTC_RAM_OPS_FAILURE, + SW_FAULT_ID_HD_INVALID_ALARM_AUDIO_STATE, NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T;