Index: firmware/App/HDCommon.h =================================================================== diff -u -rd951c4a673f308306d48650182c3af3814e9ab4b -raa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119 --- firmware/App/HDCommon.h (.../HDCommon.h) (revision d951c4a673f308306d48650182c3af3814e9ab4b) +++ firmware/App/HDCommon.h (.../HDCommon.h) (revision aa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119) @@ -33,14 +33,14 @@ #ifndef _RELEASE_ #ifndef _VECTORCAST_ // #define USING_DEBUGGER 1 // Want to be able to use the debugger and have break points -// #define BOARD_WITH_NO_HARDWARE 1 -// #define RUN_WITHOUT_DG 1 // Run HD w/o DG +// #define BOARD_WITH_NO_HARDWARE 1 // Target is a PCB w/ no hardware + #define RUN_WITHOUT_DG 1 // Run HD w/o DG // #define SIMULATE_UI 1 // Build w/o requirement that UI be there // #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 - #define DISABLE_AIR_TRAP_LEVELING 1 // Disable air trap level control +// #define DONT_SKIP_NV_POST 1 // Do not skip NV Data POST +// #define DISABLE_AIR_TRAP_LEVELING 1 // Disable air trap level control // #define DISABLE_3WAY_VALVES 1 // Disable 3-way valves // #define TST_3WAY_VALVES_ALWAYS_OPEN 1 // After POST and homing, open all 4 valves #define DISABLE_ACCELS 1 // Disable accelerometer POST and monitoring @@ -55,11 +55,11 @@ #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 + #define DISABLE_CAL_CHECK 1 // Disable calibration checks // #define RUN_PUMPS_OPEN_LOOP 1 // BP and DPi pumps will be run open loop (no flow sensor feedback) // #define RAW_FLOW_SENSOR_DATA 1 // Test build will not filter flow sensor data // #define READ_FPGA_ASYNC_DATA 1 // Test build reads non-priority register page every other time -// #define EMC_TEST_BUILD 1 // EMC test build - HD/DG run separately but connected, HD pumps toggle on/off w/ stop button + #define EMC_TEST_BUILD 1 // EMC test build - HD/DG run separately but connected, HD pumps toggle on/off w/ stop button #define ALARMS_DEBUG 1 // Triggered alarms sent to debug UART #define SKIP_PRIMING 1 // Skip Pre-treatment Prime #define SKIP_WET_SELF_TESTS 1 // Skip Pre-treatment prime wet self-tests Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -rba15d3e6250e8cd3cd3ef39cb64a93f91c3caba2 -raa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision ba15d3e6250e8cd3cd3ef39cb64a93f91c3caba2) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision aa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119) @@ -96,35 +96,32 @@ { if ( stop != button_state ) { - toggle = INC_WRAP( toggle, 0, 3 ); + toggle = INC_WRAP( toggle, 0, 2 ); switch ( toggle ) { case 0: // Pumps and valves off + setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + setDialOutPumpTargetRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); break; - case 1: // Pumps on, valves off + case 1: // Pumps off, valves in pos A + setValvePosition( VDI, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( VDO, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( VBA, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( VBV, VALVE_POSITION_A_INSERT_EJECT ); + break; + + case 2: // Pumps on, valves in pos A setBloodPumpTargetFlowRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialOutPumpTargetRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); break; - case 2: // Pumps on, valves on - setValvePosition( VDI, VALVE_POSITION_B_OPEN ); - setValvePosition( VDO, VALVE_POSITION_B_OPEN ); - setValvePosition( VBA, VALVE_POSITION_B_OPEN ); - setValvePosition( VBV, VALVE_POSITION_B_OPEN ); - break; - - case 3: // Pumps off, valves on - setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - setDialOutPumpTargetRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - break; - default: // Should not get here, reset if we do toggle = 0; setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -r6419179374edcd65da462de84e8aeaefb7e20320 -raa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 6419179374edcd65da462de84e8aeaefb7e20320) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision aa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119) @@ -147,6 +147,10 @@ homeDialInPump(); homeDialOutPump(); #ifdef EMC_TEST_BUILD + setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); + setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); + setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); + setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); startAirTrapControl(); #endif break; @@ -160,44 +164,43 @@ // TODO - test code if ( TRUE == stop ) { +#ifndef EMC_TEST_BUILD treatStartReqReceived = FALSE; setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); requestNewOperationMode( MODE_TPAR ); -#ifdef EMC_TEST_BUILD +#else if ( stop != button_state ) { toggle = INC_WRAP( toggle, 0, 3 ); switch ( toggle ) { case 0: // Pumps and valves off + setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + setDialOutPumpTargetRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setValvePosition( VDI, VALVE_POSITION_C_CLOSE ); setValvePosition( VDO, VALVE_POSITION_C_CLOSE ); setValvePosition( VBA, VALVE_POSITION_C_CLOSE ); setValvePosition( VBV, VALVE_POSITION_C_CLOSE ); break; - case 1: // Pumps on, valves off - setBloodPumpTargetFlowRate( 200, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); + case 1: // Pumps off, valves in pos A + setValvePosition( VDI, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( VDO, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( VBA, VALVE_POSITION_A_INSERT_EJECT ); + setValvePosition( VBV, VALVE_POSITION_A_INSERT_EJECT ); + break; + + case 2: // Pumps on, valves in pos A + setBloodPumpTargetFlowRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialInPumpTargetFlowRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); setDialOutPumpTargetRate( 500, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); break; - case 2: // Pumps on, valves on - setValvePosition( VDI, VALVE_POSITION_B_OPEN ); - setValvePosition( VDO, VALVE_POSITION_B_OPEN ); - setValvePosition( VBA, VALVE_POSITION_B_OPEN ); - setValvePosition( VBV, VALVE_POSITION_B_OPEN ); - break; - case 3: // Pumps off, valves on - setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - setDialOutPumpTargetRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); - break; - default: // Should not get here, reset if we do toggle = 0; setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_OPEN_LOOP ); Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r6419179374edcd65da462de84e8aeaefb7e20320 -raa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 6419179374edcd65da462de84e8aeaefb7e20320) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision aa0c1b0150e1eeb2ff5f7cac8715ecacb6aca119) @@ -943,8 +943,10 @@ if ( TRUE == didTimeout( timeOfLastDGCheckIn, DG_COMM_TIMEOUT_IN_MS ) ) { +#ifndef RUN_WITHOUT_DG activateAlarmNoData( ALARM_ID_DG_COMM_TIMEOUT ); dgIsCommunicating = FALSE; +#endif } } }