Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -r7d229e65a33d587e2e5b03b4ce06e814012686e4 -r6222c779385d5e3c3723eec889d75a900ff62070 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 7d229e65a33d587e2e5b03b4ce06e814012686e4) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 6222c779385d5e3c3723eec889d75a900ff62070) @@ -601,7 +601,7 @@ { NO_CART_SELF_TESTS_STATE_T state = NO_CART_SELF_TESTS_LEAK_DETECTORS_STATE; - if ( TRUE == getFPGABloodLeakDetectorStatus() ) + if ( TRUE == noFPGABloodLeakDetected() ) { setFPGASensorTest( BLOOD_LEAK_NORMAL_OPERATION ); state = NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE; Index: firmware/App/Modes/SelfTests.h =================================================================== diff -u -r7d229e65a33d587e2e5b03b4ce06e814012686e4 -r6222c779385d5e3c3723eec889d75a900ff62070 --- firmware/App/Modes/SelfTests.h (.../SelfTests.h) (revision 7d229e65a33d587e2e5b03b4ce06e814012686e4) +++ firmware/App/Modes/SelfTests.h (.../SelfTests.h) (revision 6222c779385d5e3c3723eec889d75a900ff62070) @@ -41,6 +41,7 @@ void execNoCartSelfTests( void ); BOOL isNoCartSelfTestsPassed( void ); +void transitionToDrySelfTests(); void execDrySelfTests( void ); BOOL isDrySelfTestsPassed( void ); Index: firmware/App/Services/FPGA.c =================================================================== diff -u -r0156a87e7751e4379b879e5e3ca2dde2f7c02e2f -r6222c779385d5e3c3723eec889d75a900ff62070 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision 0156a87e7751e4379b879e5e3ca2dde2f7c02e2f) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 6222c779385d5e3c3723eec889d75a900ff62070) @@ -81,9 +81,9 @@ #define FPGA_AIRTRAP_LEVEL_LOW_MASK 0x0008 ///< Bit mask for air trap lower level sensor. #define FPGA_AIRTRAP_LEVEL_HIGH_MASK 0x0004 ///< Bit mask for air trap upper level sensor. -#define FPGA_FLUID_LEAK_STATE_MASK 0x0040 ///< Bit mask for fluid leak detector. -#define FPGA_BLOOD_LEAK_STATE_MASK 0x1000 ///< Bit mask for blood leak detector. -#define FPGA_BLOOD_LEAK_ZERO_STATE_MASK 0x2000 ///< Bit mask for blood leak detector zero. +#define FPGA_FLUID_LEAK_STATE_MASK 0x0040 ///< Bit mask for fluid leak detector. +#define FPGA_BLOOD_LEAK_STATE_MASK 0x1000 ///< Bit mask for blood leak detector. +#define FPGA_BLOOD_LEAK_ZERO_STATE_MASK 0x2000 ///< Bit mask for blood leak detector zero. #define FPGA_ADA_INPUT_STATUS_MASK 0x0001 ///< Bit mask for arterial air bubble detector input status. #define FPGA_ADV_INPUT_STATUS_MASK 0x0002 ///< Bit mask for venous air bubble detector input status. @@ -1489,36 +1489,51 @@ /*********************************************************************//** * @brief - * The noFluidLeakDetected function returns TRUE if no fluid leak has been + * The noFPGAFluidLeakDetected function returns TRUE if no fluid leak has been * detected (dry) and FALSE if a fluid leak has been detected (wet). * @details Inputs: fpgaSensorReadings * @details Outputs: none - * @return noFluidLeakDetected + * @return noFPGAFluidLeakDetected *************************************************************************/ BOOL noFPGAFluidLeakDetected( void ) { - U16 noFluidLeakDetected = fpgaSensorReadings.fpgaGPIO & FPGA_FLUID_LEAK_STATE_MASK; + U16 noFPGAFluidLeakDetected = fpgaSensorReadings.fpgaGPIO & FPGA_FLUID_LEAK_STATE_MASK; - return ( 0 == noFluidLeakDetected ? FALSE : TRUE ); + return ( 0 == noFPGAFluidLeakDetected ? FALSE : TRUE ); } /*********************************************************************//** * @brief - * The noBloodLeakDetected function returns TRUE if no blood leak has been + * The noFPGABloodLeakDetected function returns TRUE if no blood leak has been * detected (dry) and FALSE if a blood leak has been detected. * @details Inputs: fpgaSensorReadings * @details Outputs: none - * @return noBloodLeakDetected + * @return noFPGABloodLeakDetected *************************************************************************/ BOOL noFPGABloodLeakDetected( void ) { - U16 noBloodLeakDetected = fpgaSensorReadings.fpgaGPIO & FPGA_BLOOD_LEAK_STATE_MASK; + U16 noFPGABloodLeakDetected = fpgaSensorReadings.fpgaGPIO & FPGA_BLOOD_LEAK_STATE_MASK; - return ( 0 == noBloodLeakDetected ? FALSE : TRUE ); + return ( 0 == noFPGABloodLeakDetected ? FALSE : TRUE ); } /*********************************************************************//** * @brief + * The FPGABloodLeakZeroDetected function returns TRUE if blood leak zeroing has + * been detected and FALSE if no blood leak zeroing has been detected. + * @details Inputs: fpgaSensorReadings + * @details Outputs: none + * @return FPGABloodLeakZeroDetected + *************************************************************************/ +BOOL FPGABloodLeakZeroDetected( void ) +{ + U16 FPGABloodLeakZeroDetected = fpgaSensorReadings.fpgaGPIO & FPGA_BLOOD_LEAK_ZERO_STATE_MASK; + + return ( 0 == FPGABloodLeakZeroDetected ? FALSE : TRUE ); +} + +/*********************************************************************//** + * @brief * The setValveDialyzerInletPosition function sets the position of VDi * in counts * @details Inputs: fpgaActuatorSetPoints