Index: firmware/App/Modes/SelfTests.c =================================================================== diff -u -rd52b27c2797b07f6aba2e05c8ba24156b820fdbc -r6417c75d0c2a9643bcdb797065dbcde59e1dc734 --- firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision d52b27c2797b07f6aba2e05c8ba24156b820fdbc) +++ firmware/App/Modes/SelfTests.c (.../SelfTests.c) (revision 6417c75d0c2a9643bcdb797065dbcde59e1dc734) @@ -32,9 +32,12 @@ // ********** private definitions ********** -#define PUMP_RUN_SELF_TEST_TIME ( 15 * MS_PER_SECOND ) ///< Self-test time to run pumps in ms. -#define PUMP_SELF_TEST_FLOW_RATE 100 ///< Self-test pump flow rate. +#define PUMP_RUN_SELF_TEST_TIME ( 15 * MS_PER_SECOND ) ///< Self-test time to run pumps in ms. +#define PUMP_SELF_TEST_FLOW_RATE 100 ///< Self-test pump flow rate. +#define BLOOD_LEAK_SELF_TEST_SET 0x1 ///< Initiate blood leak self-test. +#define BLOOD_LEAK_NORMAL_OPERATION 0x0 ///< Return blood leak to normal operation. + /// No cartridge self-tests state machine. typedef enum No_Cart_Self_Tests_State { @@ -165,13 +168,22 @@ signalBloodPumpHardStop(); signalDialInPumpHardStop(); signalDialOutPumpHardStop(); + + setFPGASensorTest( BLOOD_LEAK_SELF_TEST_SET ); currentNoCartSelfTestsState = NO_CART_SELF_TESTS_LEAK_DETECTORS_STATE; } break; case NO_CART_SELF_TESTS_LEAK_DETECTORS_STATE: - // TODO: Implement self tests - currentNoCartSelfTestsState = NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE; + if ( TRUE == getFPGABloodLeakDetectorStatus() ) + { + setFPGASensorTest( BLOOD_LEAK_NORMAL_OPERATION ); + currentNoCartSelfTestsState = NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE; + } + else + { + result = SELF_TEST_STATUS_FAILED; + } break; case NO_CART_SELF_TESTS_BOARD_TEMPERATURE_STATE: