Index: firmware/App/Drivers/LevelSensors.c =================================================================== diff -u -r036a75d76ab01912646a480b935d97187a231a19 -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Drivers/LevelSensors.c (.../LevelSensors.c) (revision 036a75d76ab01912646a480b935d97187a231a19) +++ firmware/App/Drivers/LevelSensors.c (.../LevelSensors.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -80,7 +80,7 @@ AIR_TRAP_LEVEL_SENSORS_T airTrapLevelSensor; // Get latest raw level sensor states from FPGA - getFPGAAirTrapLevels( &lowAir, &highAir ); + getFPGAAirTrapLevels( &highAir, &lowAir ); // &lowAir, &highAir ); // TODO - restore proper sensor order when h/w orientation corrected rawLevelStates[ H17_LEVL ].data = (U32)( FALSE == lowAir ? AIR_TRAP_LEVEL_FLUID : AIR_TRAP_LEVEL_AIR ); rawLevelStates[ H16_LEVL ].data = (U32)( FALSE == highAir ? AIR_TRAP_LEVEL_FLUID : AIR_TRAP_LEVEL_AIR ); Index: firmware/App/Modes/ModeFault.c =================================================================== diff -u -r285b5d82539c96524c93703d52a66fff76fb64fc -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 285b5d82539c96524c93703d52a66fff76fb64fc) +++ firmware/App/Modes/ModeFault.c (.../ModeFault.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -18,6 +18,7 @@ #include "Messaging.h" #include "ModeFault.h" #include "OperationModes.h" +#include "Switches.h" #include "Utilities.h" /** @@ -62,7 +63,7 @@ initFaultMode(); // requestAlarmLampPattern( LAMP_PATTERN_FAULT ); // in case we get here before LED POST can take alarm lamp out of manual control. -// doorClosedRequired( FALSE, FALSE ); + doorClosedRequired( FALSE ); // syringeDetectionRequired( FALSE ); // setVenousBubbleDetectionEnabled( FALSE ); setCurrentSubState( NO_SUB_STATE ); Index: firmware/App/Modes/ModeService.c =================================================================== diff -u -r285b5d82539c96524c93703d52a66fff76fb64fc -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 285b5d82539c96524c93703d52a66fff76fb64fc) +++ firmware/App/Modes/ModeService.c (.../ModeService.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -23,7 +23,7 @@ #include "ModeService.h" //#include "NVDataMgmt.h" #include "OperationModes.h" -//#include "Switches.h" +#include "Switches.h" //#include "Valves.h" /** @@ -57,7 +57,7 @@ { initServiceMode(); -// doorClosedRequired( FALSE, FALSE ); + doorClosedRequired( FALSE ); // syringeDetectionRequired( FALSE ); setCurrentSubState( NO_SUB_STATE ); Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rdb8ff28e816a37e033e36b76ab5949be78114125 -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision db8ff28e816a37e033e36b76ab5949be78114125) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -23,6 +23,7 @@ #include "ModeTxParams.h" #include "ModeStandby.h" #include "OperationModes.h" +#include "Switches.h" #include "SystemCommTD.h" /** @@ -89,7 +90,7 @@ // setValvePosition( H1_VALV, VALVE_POSITION_A_INSERT_EJECT ); // setValvePosition( H19, VALVE_POSITION_A_INSERT_EJECT ); -// doorClosedRequired( FALSE, FALSE ); // door no longer required to be closed in standby mode +// doorClosedRequired( FALSE ); // door no longer required to be closed in standby mode // syringeDetectionRequired( FALSE ); // Request DD service record and usage information from DD @@ -183,7 +184,7 @@ // { // syringePumpVerifyForceSensorDACCalibration(); // homingInitiated = FALSE; // reset for next time -// doorClosedRequired( FALSE, FALSE ); // door no longer required to be closed in standby mode +// doorClosedRequired( FALSE ); // door no longer required to be closed in standby mode // state = STANDBY_WAIT_FOR_TREATMENT_STATE; // Go to wait for treatment state after above check // } // } Index: firmware/App/Modes/ModeTxParams.c =================================================================== diff -u -rdb8ff28e816a37e033e36b76ab5949be78114125 -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision db8ff28e816a37e033e36b76ab5949be78114125) +++ firmware/App/Modes/ModeTxParams.c (.../ModeTxParams.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -27,6 +27,7 @@ #include "OperationModes.h" #include "Pressures.h" #include "StateTxDialysis.h" +#include "Switches.h" #include "Utilities.h" #include "Valve3Way.h" #include "Valves.h" @@ -198,7 +199,7 @@ initTreatmentMode(); initDialysis(); -// doorClosedRequired( FALSE, FALSE ); + doorClosedRequired( FALSE ); setCurrentSubState( NO_SUB_STATE ); // Set user alarm recovery actions allowed in this mode Index: firmware/App/Modes/StateTxDialysis.c =================================================================== diff -u -re5bdea41a3ff7ccd3147a0ca1e0081cdb1fdbdbe -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision e5bdea41a3ff7ccd3147a0ca1e0081cdb1fdbdbe) +++ firmware/App/Modes/StateTxDialysis.c (.../StateTxDialysis.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -26,7 +26,7 @@ //#include "NVDataMgmt.h" #include "OperationModes.h" #include "StateTxDialysis.h" -//#include "Switches.h" +#include "Switches.h" #include "TaskGeneral.h" #include "Valves.h" @@ -105,7 +105,7 @@ U32 acidType = getTreatmentParameterU32( TREATMENT_PARAM_ACID_CONCENTRATE ); U32 bicbType = getTreatmentParameterU32( TREATMENT_PARAM_BICARB_CONCENTRATE ); -// doorClosedRequired( TRUE, TRUE ); + doorClosedRequired( TRUE ); // Set user alarm recovery actions allowed in this sub-mode setAlarmUserActionEnabled( ALARM_USER_ACTION_RESUME, TRUE ); Index: firmware/App/Monitors/Switches.c =================================================================== diff -u -r036a75d76ab01912646a480b935d97187a231a19 -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Monitors/Switches.c (.../Switches.c) (revision 036a75d76ab01912646a480b935d97187a231a19) +++ firmware/App/Monitors/Switches.c (.../Switches.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -79,8 +79,9 @@ /*********************************************************************//** * @brief * The execSwitches function executes the switches monitor executive. - * @details \b Inputs: switchesStatus - * @details \b Outputs: switchesStatus + * Switch state changes are debounced for 250ms before formalizing them. + * @details \b Inputs: switchesStatus[], switchDebounceStartTimes[] + * @details \b Outputs: switchesStatus[], switchDebounceStartTimes[] * @return none *************************************************************************/ void execSwitches( void ) @@ -89,7 +90,7 @@ OPN_CLS_STATE_T currentSwitchStates[ NUM_OF_SWITCHES ]; // Get current state of each switch - currentSwitchStates[ H9_SWCH ] = ( FALSE == getFPGAFrontDoorClosedStatus() ? STATE_OPEN : STATE_CLOSED ); + currentSwitchStates[ H9_SWCH ] = ( FALSE == getH9FrontDoorClosedStatus() ? STATE_OPEN : STATE_CLOSED ); // Debounce each switch for ( i = 0; i < NUM_OF_SWITCHES; i++ ) @@ -209,7 +210,7 @@ * The publishSwitchesData function broadcasts the switches data at the * publication interval. * @details \b Message \b Sent: MSG_ID_TD_SWITCHES_DATA - * @details \b Inputs: switchesDataPublicationCounter + * @details \b Inputs: switchesDataPublicationCounter, switchesStatus[] * @details \b Outputs: switchesDataPublicationCounter * @return none *************************************************************************/ Index: firmware/App/Services/FpgaTD.c =================================================================== diff -u -r82bb2222f791a434d22921e2fe4f5edd7e74776d -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 82bb2222f791a434d22921e2fe4f5edd7e74776d) +++ firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -59,8 +59,7 @@ #define FPGA_BACKUP_ALARM_AUDIO_CONVERT 0.4F ///< Converts backup (piezo) alarm audio ADC volts to amps. -#define H9_SWITCH_MASK 0x0010 ///< Front door switch bit mask. Bit 4 of the GPIO register. -#define PUMP_TRACK_SWITCH_MASK 0x0020 ///< Pump track switch bit mask. Bit 5 of the GPIO register. +#define H9_SWITCH_MASK 0x0001 ///< Front door switch bit mask. Bit 0 of the GPIO register. #define FPGA_AIRTRAP_LEVEL_LOW_H17_MASK 0x0008 ///< Bit mask for air trap lower level sensor. #define FPGA_AIRTRAP_LEVEL_HIGH_H16_MASK 0x0004 ///< Bit mask for air trap upper level sensor. @@ -1061,13 +1060,13 @@ } /*********************************************************************//** - * The getFPGAFrontDoorStatus function returns the FPGA front door status + * The getH9FrontDoorClosedStatus function returns the FPGA front door status * bit (0x10). * @details \b Inputs: fpgaSensorReadings * @details \b Outputs: none * @return TRUE if front door is closed, FALSE if not. *************************************************************************/ -BOOL getFPGAFrontDoorClosedStatus( void ) +BOOL getH9FrontDoorClosedStatus( void ) { BOOL result = TRUE; Index: firmware/App/Services/FpgaTD.h =================================================================== diff -u -r82bb2222f791a434d22921e2fe4f5edd7e74776d -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Services/FpgaTD.h (.../FpgaTD.h) (revision 82bb2222f791a434d22921e2fe4f5edd7e74776d) +++ firmware/App/Services/FpgaTD.h (.../FpgaTD.h) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -120,7 +120,7 @@ U32 getFPGAPBAADCTemperature( void ); U16 getFPGAInletFan1TogglePeriod( void ); -BOOL getFPGAFrontDoorClosedStatus( void ); +BOOL getH9FrontDoorClosedStatus( void ); /**@}*/ Index: firmware/App/Tasks/TaskGeneral.c =================================================================== diff -u -r82bb2222f791a434d22921e2fe4f5edd7e74776d -r50f4b79164155c1bc375dd3ff0e8588f934dc729 --- firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 82bb2222f791a434d22921e2fe4f5edd7e74776d) +++ firmware/App/Tasks/TaskGeneral.c (.../TaskGeneral.c) (revision 50f4b79164155c1bc375dd3ff0e8588f934dc729) @@ -202,13 +202,13 @@ #if 1 static U32 ctr = 0; static U32 sta = 0; - static BOOL start = TRUE; - static BOOL bpStart = FALSE; + static BOOL start = FALSE; + static BOOL bpStart = TRUE; static BOOL bpStop = FALSE; if ( FALSE == bpStart ) { - setBloodPumpTargetRPM( 1000, MOTOR_DIR_FORWARD ); + setBloodPumpTargetRPM( 1200, MOTOR_DIR_FORWARD ); homeEjector(); retractEjector(); bpStart = TRUE; @@ -224,7 +224,8 @@ // Get level sensor data readAirTrapLevelSensors(); - // Control blood pump + execSwitches(); + // Control blood pump execBloodFlowMonitor(); execBloodFlowController(); execEjectorController(); @@ -247,7 +248,7 @@ break; case 1: // look for air at low level and stop - if ( AIR_TRAP_LEVEL_AIR == getRawLevelSensorState( H17_LEVL ) ) + if ( AIR_TRAP_LEVEL_AIR == getRawLevelSensorState( H16_LEVL ) ) { // stop lowering level set3WayValveState( H13_VALV, VALVE_3WAY_COMMON_TO_CLOSED_STATE );