Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -re3c5eb0fcb29840433e2c46086146ae683533104 -rb2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision e3c5eb0fcb29840433e2c46086146ae683533104) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision b2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150) @@ -282,27 +282,25 @@ /*********************************************************************//** * @brief - * The testSetBloodLeakDataOverride function overrides the data + * The testSetBloodLeakStatusOverride function overrides the status * of the blood leak detector. * @details Inputs: none - * @details Outputs: bloodLeakStatus, bloodLeakState + * @details Outputs: bloodLeakStatus * @param none - * @param data override blood leak detector with this + * @param status override blood leak detector with this * @return TRUE if override successful, FALSE if not *************************************************************************/ -BOOL testSetBloodLeakDataOverride( BLOOD_LEAK_STATUS_T status, BLOOD_LEAK_STATES_T state ) +BOOL testSetBloodLeakStatusOverride( BLOOD_LEAK_STATUS_T status ) { BOOL result = FALSE; - if ( ( status < NUM_OF_BLOOD_LEAK_STATUS ) && ( state < NUM_OF_BLOOD_LEAK_STATES ) ) + if ( status < NUM_OF_BLOOD_LEAK_STATUS ) { if ( TRUE == isTestingActivated() ) { result = TRUE; bloodLeakStatus.ovData = (U32)status; bloodLeakStatus.override = OVERRIDE_KEY; - bloodLeakState.ovData = (U32)state; - bloodLeakState.override = OVERRIDE_KEY; } } @@ -311,14 +309,14 @@ /*********************************************************************//** * @brief - * The testResetBloodLeakDataOverride function resets the override of the - * blood leak detector data. + * The testResetBloodLeakStatusOverride function resets the override of the + * blood leak detector status. * @details Inputs: none - * @details Outputs: bloodLeakStatus, bloodLeakState + * @details Outputs: bloodLeakStatus * @param none * @return TRUE if reset successful, FALSE if not *************************************************************************/ -BOOL testResetBloodLeakDataOverride( void ) +BOOL testResetBloodLeakStatusOverride( void ) { BOOL result = FALSE; @@ -327,6 +325,54 @@ result = TRUE; bloodLeakStatus.override = OVERRIDE_RESET; bloodLeakStatus.ovData = bloodLeakStatus.ovInitData; + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testSetBloodLeakStateOverride function overrides the state + * of the blood leak detector. + * @details Inputs: none + * @details Outputs: bloodLeakState + * @param none + * @param state override blood leak detector with this + * @return TRUE if override successful, FALSE if not + *************************************************************************/ +BOOL testSetBloodLeakStateOverride( BLOOD_LEAK_STATES_T state ) +{ + BOOL result = FALSE; + + if ( state < NUM_OF_BLOOD_LEAK_STATES ) + { + if ( TRUE == isTestingActivated() ) + { + result = TRUE; + bloodLeakState.ovData = (U32)state; + bloodLeakState.override = OVERRIDE_KEY; + } + } + + return result; +} + +/*********************************************************************//** + * @brief + * The testResetBloodLeakStateOverride function resets the override of the + * blood leak detector state. + * @details Inputs: none + * @details Outputs: bloodLeakState + * @param none + * @return TRUE if reset successful, FALSE if not + *************************************************************************/ +BOOL testResetBloodLeakStateOverride( void ) +{ + BOOL result = FALSE; + + if ( TRUE == isTestingActivated() ) + { + result = TRUE; bloodLeakState.override = OVERRIDE_RESET; bloodLeakState.ovData = bloodLeakState.ovInitData; } Index: firmware/App/Controllers/BloodLeak.h =================================================================== diff -u -re3c5eb0fcb29840433e2c46086146ae683533104 -rb2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150 --- firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision e3c5eb0fcb29840433e2c46086146ae683533104) +++ firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision b2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150) @@ -62,10 +62,14 @@ BLOOD_LEAK_STATES_T getBloodLeakState( void ); BOOL testSetBloodLeakDataPublishIntervalOverride( U32 value ); -BOOL testResetBloodLeakDataPublishIntervalOverride( void ); -BOOL testSetBloodLeakDataOverride( BLOOD_LEAK_STATUS_T status, BLOOD_LEAK_STATES_T state ); -BOOL testResetBloodLeakDataOverride( void ); +BOOL testResetBloodLeakDataPublishIntervalOverride( void ); +BOOL testSetBloodLeakStatusOverride( BLOOD_LEAK_STATUS_T status); +BOOL testResetBloodLeakStatusOverride( void ); + +BOOL testSetBloodLeakStateOverride( BLOOD_LEAK_STATES_T state); +BOOL testResetBloodLeakStateOverride( void ); + /**@}*/ #endif Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -r97f231b6122d5c6d1215625bb3c3fa77f75ca0d8 -rb2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150 --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 97f231b6122d5c6d1215625bb3c3fa77f75ca0d8) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision b2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150) @@ -1454,9 +1454,12 @@ handleSetBloodLeakDataBroadcastIntervalOverrideRequest( message ); break; - case MSG_ID_HD_BLOOD_LEAK_DATA_OVERRIDE: - handleSetBloodLeakDataOverrideRequest( message ); + case MSG_ID_HD_BLOOD_LEAK_STATUS_OVERRIDE: + handleSetBloodLeakStatusOverrideRequest( message ); + case MSG_ID_HD_BLOOD_LEAK_STATE_OVERRIDE: + handleSetBloodLeakStateOverrideRequest( message ); + case MSG_ID_HD_SET_OP_MODE_REQUEST: handleTestSetOpModeRequest( message ); break; Index: firmware/App/Services/SystemCommMessages.c =================================================================== diff -u -r97f231b6122d5c6d1215625bb3c3fa77f75ca0d8 -rb2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150 --- firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision 97f231b6122d5c6d1215625bb3c3fa77f75ca0d8) +++ firmware/App/Services/SystemCommMessages.c (.../SystemCommMessages.c) (revision b2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150) @@ -4295,14 +4295,14 @@ /*********************************************************************//** * @brief - * The handleSetBloodLeakDataOverrideRequest function handles a request to - * override the blood leak detector data. + * The handleSetBloodLeakStatusOverrideRequest function handles a request to + * override the blood leak detector status. * @details Inputs: none * @details Outputs: message handled * @param message : a pointer to the message to handle * @return none *************************************************************************/ -void handleSetBloodLeakDataOverrideRequest( MESSAGE_T *message ) +void handleSetBloodLeakStatusOverrideRequest( MESSAGE_T *message ) { TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; BOOL result = FALSE; @@ -4313,11 +4313,11 @@ memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); if ( FALSE == payload.reset ) { - result = testSetBloodLeakDataOverride( ( BLOOD_LEAK_STATUS_T)( payload.state.u32 ), ( BLOOD_LEAK_STATES_T)( payload.state.u32 ) ); + result = testSetBloodLeakStatusOverride( (BLOOD_LEAK_STATUS_T)( payload.state.u32 ) ); } else { - result = testResetBloodLeakDataOverride(); + result = testResetBloodLeakStatusOverride(); } } @@ -4327,6 +4327,38 @@ /*********************************************************************//** * @brief + * The handleSetBloodLeakStateOverrideRequest function handles a request to + * override the blood leak detector state. + * @details Inputs: none + * @details Outputs: message handled + * @param message : a pointer to the message to handle + * @return none + *************************************************************************/ +void handleSetBloodLeakStateOverrideRequest( MESSAGE_T *message ) +{ + TEST_OVERRIDE_ARRAY_PAYLOAD_T payload; + BOOL result = FALSE; + + // Verify payload length + if ( sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) == message->hdr.payloadLen ) + { + memcpy( &payload, message->payload, sizeof( TEST_OVERRIDE_ARRAY_PAYLOAD_T ) ); + if ( FALSE == payload.reset ) + { + result = testSetBloodLeakStateOverride( (BLOOD_LEAK_STATES_T)( payload.state.u32 ) ); + } + else + { + result = testResetBloodLeakStateOverride(); + } + } + + // Respond to request + sendTestAckResponseMsg( (MSG_ID_T)message->hdr.msgID, result ); +} + +/*********************************************************************//** + * @brief * The handleHDSoftwareResetRequest function handles a request to reset the * HD firmware processor. * @details Inputs: none Index: firmware/App/Services/SystemCommMessages.h =================================================================== diff -u -r97f231b6122d5c6d1215625bb3c3fa77f75ca0d8 -rb2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150 --- firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision 97f231b6122d5c6d1215625bb3c3fa77f75ca0d8) +++ firmware/App/Services/SystemCommMessages.h (.../SystemCommMessages.h) (revision b2afbf7b9bb007d06c28a56cd4e61d3cd9bbe150) @@ -482,9 +482,12 @@ // MSG_ID_HD_BLOOD_LEAK_DATA_SEND_INTERVAL_OVERRIDE void handleSetBloodLeakDataBroadcastIntervalOverrideRequest( MESSAGE_T *message ); -// MSG_ID_HD_BLOOD_LEAK_DATA_OVERRIDE -void handleSetBloodLeakDataOverrideRequest( MESSAGE_T *message ); +// MSG_ID_HD_BLOOD_LEAK_STATUS_OVERRIDE +void handleSetBloodLeakStatusOverrideRequest( MESSAGE_T *message ); +// MSG_ID_HD_BLOOD_LEAK_STATE_OVERRIDE +void handleSetBloodLeakStateOverrideRequest( MESSAGE_T *message ); + // MSG_ID_SUPER_CLEAR_ALARMS_CMD void handleTestSuperClearAlarmsRequest( MESSAGE_T *message );