Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -1059,7 +1059,9 @@ if ( lastBloodPumpDirectionCount != dirErrorCnt ) { lastBloodPumpDirectionCount = dirErrorCnt; +#ifndef DISABLE_PUMP_DIRECTION_CHECKS SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR, (U32)HD_PUMP_BLOOD_PUMP ) +#endif } bpMCDir = ( getMeasuredBloodPumpMCSpeed() >= 0.0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -1087,7 +1087,9 @@ if ( lastDialInPumpDirectionCount != dirErrorCnt ) { lastDialInPumpDirectionCount = dirErrorCnt; +#ifndef DISABLE_PUMP_DIRECTION_CHECKS SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR, (U32)HD_PUMP_DIALYSATE_INLET_PUMP ) +#endif } dipMCDir = ( getMeasuredDialInPumpMCSpeed() >= 0.0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); Index: firmware/App/Controllers/DialOutFlow.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -798,7 +798,9 @@ if ( lastDialOutPumpDirectionCount != dirErrorCnt ) { lastDialOutPumpDirectionCount = dirErrorCnt; +#ifndef DISABLE_PUMP_DIRECTION_CHECKS SET_ALARM_WITH_1_U32_DATA( ALARM_ID_HD_PUMP_DIRECTION_STATUS_ERROR, (U32)HD_PUMP_DIALYSATE_OUTLET_PUMP ) +#endif } dopMCDir = ( getMeasuredDialOutPumpMCSpeed() >= 0.0 ? MOTOR_DIR_FORWARD : MOTOR_DIR_REVERSE ); Index: firmware/App/HDCommon.h =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -24,8 +24,8 @@ #define HD_VERSION_MAJOR 0 #define HD_VERSION_MINOR 6 -#define HD_VERSION_MICRO 5 -#define HD_VERSION_BUILD 16 +#define HD_VERSION_MICRO 0 +#define HD_VERSION_BUILD 68 // ********** development build switches ********** @@ -55,6 +55,7 @@ #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_UF_ALARMS 1 // Do not error on HD ultrafiltration checks + #define DISABLE_DIALYSATE_TEMP_CHECK 1 // Disable dialysate temperature check // #define DISABLE_VALVE_ALARMS 1 // Do not error on HD valve position #define SKIP_CAL_CHECK 1 // #define RUN_PUMPS_OPEN_LOOP 1 // BP and DPi pumps will be run open loop (no flow sensor feedback) Index: firmware/App/Modes/ModeInitPOST.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Modes/ModeInitPOST.c (.../ModeInitPOST.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -136,7 +136,6 @@ case POST_STATE_FW_INTEGRITY: testStatus = execIntegrityTest(); - testStatus = SELF_TEST_STATUS_PASSED; postState = handlePOSTStatus( testStatus ); break; Index: firmware/App/Modes/ModePreTreat.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Modes/ModePreTreat.c (.../ModePreTreat.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -376,6 +376,10 @@ case ALARM_ACTION_END_TREATMENT: if ( HD_PRE_TREATMENT_PRIME_STATE > currentPreTreatmentState ) { + if ( HD_PRE_TREATMENT_WATER_SAMPLE_STATE == currentPreTreatmentState ) + { + cmdDGSampleWater( SAMPLE_WATER_CMD_END ); + } requestNewOperationMode( MODE_STAN ); } else Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -610,6 +610,8 @@ activateAlarmNoData( ALARM_ID_TREATMENT_STOPPED_BY_USER ); } + checkDialysateTemperature(); + // Treatment mode state machine switch ( currentTreatmentState ) { Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -1647,6 +1647,10 @@ handleTestValvesCurrentOverrideRequest( message ); break; + case MSG_ID_HD_VALVES_POSITION_COUNT_OVERRIDE: + handleTestValvesPositionCountOverrideRequest( message ); + break; + case MSG_ID_HD_MONITORED_VOLTAGES_SEND_INTERVAL_OVERRIDE: handleTestMonitoredVoltagesSendIntervalOverrideRequest( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r8466e63f95f65a3ffb18c3af85ac99328e41167b -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 8466e63f95f65a3ffb18c3af85ac99328e41167b) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -3205,7 +3205,7 @@ TEMPERATURE_SENSORS_DATA_T payload; memcpy( &payload, message->payload, sizeof( TEMPERATURE_SENSORS_DATA_T ) ); - setDialysateTemperatureReadings( payload.inletDialysate, payload.outletRedundant ); + setDialysateTemperatureReadings( payload.TDi, payload.TRo ); } // TODO - what to do if invalid payload length? // TODO - how to know if DG stops sending these? @@ -6176,6 +6176,7 @@ if ( sizeof( TEST_OVERRIDE_PAYLOAD_T ) == message->hdr.payloadLen ) { memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) { result = testSetBatteryRemainingPercentOverride( payload.state.u32 ); Index: firmware/App/Services/WatchdogMgmt.c =================================================================== diff -u -rd27dcf1fbbc9651636f211028917a1c0702bb56a -r2e21b8a4e52e0d1f94389acf424b5033362b63f1 --- firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision d27dcf1fbbc9651636f211028917a1c0702bb56a) +++ firmware/App/Services/WatchdogMgmt.c (.../WatchdogMgmt.c) (revision 2e21b8a4e52e0d1f94389acf424b5033362b63f1) @@ -175,19 +175,21 @@ { F32 v24 = getIntADCVoltageConverted( INT_ADC_24V_ACTUATORS ); F32 audioCurrent = getFPGABackupAlarmAudioCurrent(); - + // Verify 24V is down when w.d. expired if ( v24 > MAX_24V_LEVEL_ON_WATCHDOG_EXPIRED ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 2.0, v24 ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } +#ifndef DISABLE_ALARM_AUDIO // Verify backup alarm audio is on when w.d. expired else if ( audioCurrent < MIN_BACKUP_ALARM_CURRENT_MA ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_WATCHDOG_POST_TEST_FAILED, 3.0, audioCurrent ); watchdogSelfTestStatus = SELF_TEST_STATUS_FAILED; } +#endif } else {