Index: firmware/App/Drivers/BubbleDetector.c =================================================================== diff -u -raf8485c010085b535a81e9c44426c60eea2535e6 -r37d4284f56e175716ea13ae56c621110fa96e53c --- firmware/App/Drivers/BubbleDetector.c (.../BubbleDetector.c) (revision af8485c010085b535a81e9c44426c60eea2535e6) +++ firmware/App/Drivers/BubbleDetector.c (.../BubbleDetector.c) (revision 37d4284f56e175716ea13ae56c621110fa96e53c) @@ -16,7 +16,8 @@ ***************************************************************************/ #include "BubbleDetector.h" -#include "FpgaTD.h" +#include "FpgaTD.h" +#include "Messaging.h" /** * @addtogroup BubbleDetector @@ -101,6 +102,52 @@ * TEST SUPPORT FUNCTIONS *************************************************************************/ -// TODO - Michael G, please add messaging and handler function for a bubble detector state override + +/*********************************************************************//** + * @brief + * The testBubbleDetectOverride function overrides the bubble detect state + * for a given bubble detector. + * @details \b Inputs: msTimerCount + * @details \b Outputs: alarmStartedAt[] + * @param message Override message from Dialin which includes an ID of + * the sensor to override and the state to override the sensor to. + * @return TRUE if override request is successful, FALSE if not + *************************************************************************/ +BOOL testBubbleDetectOverride( MESSAGE_T *message ) +{ + BOOL result = FALSE; + TEST_OVERRIDE_ARRAY_PAYLOAD_T override; + OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); + + // Verify tester has logged in with TD and override type is valid + if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) + { + U32 sensor = override.index; + + // Verify bubble detector index of override + if ( sensor < NUM_OF_BUBBLE_DETECTORS ) + { + if ( OVERRIDE_OVERRIDE == ovType ) + { + U32 value = override.state.u32; + + if ( value < NUM_OF_BUBBLE_DETECTION_STATES ) + { + result = TRUE; + currentBubbleState[ sensor ].ovData = value; + currentBubbleState[ sensor ].override = OVERRIDE_KEY; + } + } + else + { + result = TRUE; + currentBubbleState[ sensor ].override = OVERRIDE_RESET; + currentBubbleState[ sensor ].ovData = currentBubbleState[ sensor ].ovInitData; + } + } + } + + return result; +} /**@}*/ Index: firmware/App/Drivers/BubbleDetector.h =================================================================== diff -u -rf730082d809bc52c15b2d17b8fd0a8d535e5c21a -r37d4284f56e175716ea13ae56c621110fa96e53c --- firmware/App/Drivers/BubbleDetector.h (.../BubbleDetector.h) (revision f730082d809bc52c15b2d17b8fd0a8d535e5c21a) +++ firmware/App/Drivers/BubbleDetector.h (.../BubbleDetector.h) (revision 37d4284f56e175716ea13ae56c621110fa96e53c) @@ -51,6 +51,8 @@ void initBubbleDetector( void ); void readBubbleDetectors( void ); BUBBLE_STATE_T getBubbleDetectedState( BUBBLE_DETECTOR_T sensor ); + +BOOL testBubbleDetectOverride( MESSAGE_T *message ); /**@}*/ Index: firmware/App/Drivers/PressureSensor.c =================================================================== diff -u -r2ea913081834d23e3f84a040ea0d9d790d56da7b -r37d4284f56e175716ea13ae56c621110fa96e53c --- firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 2ea913081834d23e3f84a040ea0d9d790d56da7b) +++ firmware/App/Drivers/PressureSensor.c (.../PressureSensor.c) (revision 37d4284f56e175716ea13ae56c621110fa96e53c) @@ -16,6 +16,7 @@ ***************************************************************************/ #include "FpgaTD.h" +#include "Messaging.h" #include "PersistentAlarm.h" #include "PressureCommon.h" #include "PressureSensor.h" Index: firmware/App/Services/AlarmMgmtTD.c =================================================================== diff -u -r380b0afc95467d0861ff3aa2cdcde5d5d7ac85e7 -r37d4284f56e175716ea13ae56c621110fa96e53c --- firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 380b0afc95467d0861ff3aa2cdcde5d5d7ac85e7) +++ firmware/App/Services/AlarmMgmtTD.c (.../AlarmMgmtTD.c) (revision 37d4284f56e175716ea13ae56c621110fa96e53c) @@ -1266,17 +1266,17 @@ { BOOL result = FALSE; TEST_OVERRIDE_ARRAY_PAYLOAD_T override; - OVERRIDE_TYPE_T reset = getOverrideArrayPayloadFromMessage( message, &override ); + OVERRIDE_TYPE_T ovType = getOverrideArrayPayloadFromMessage( message, &override ); // Verify tester has logged in with TD and override type is valid - if ( ( TRUE == isTestingActivated() ) && ( reset != OVERRIDE_INVALID ) && ( reset < NUM_OF_OVERRIDE_TYPES ) ) + if ( ( TRUE == isTestingActivated() ) && ( ovType != OVERRIDE_INVALID ) && ( ovType < NUM_OF_OVERRIDE_TYPES ) ) { U32 alarmID = override.index; // Verify alarm index of override if ( alarmID < NUM_OF_ALARM_IDS ) { - if ( OVERRIDE_RESET_OVERRIDE == reset ) + if ( OVERRIDE_OVERRIDE == ovType ) { U32 value = override.state.u32; U32 tim = getMSTimerCount(); @@ -1298,7 +1298,8 @@ } return result; -} +} + /*********************************************************************//** * @brief * The testClearAllAlarms function clears all active alarms, even if they Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r380b0afc95467d0861ff3aa2cdcde5d5d7ac85e7 -r37d4284f56e175716ea13ae56c621110fa96e53c --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 380b0afc95467d0861ff3aa2cdcde5d5d7ac85e7) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 37d4284f56e175716ea13ae56c621110fa96e53c) @@ -17,6 +17,7 @@ #include // For memcpy() +#include "BubbleDetector.h" #include "Compatible.h" #include "Messaging.h" #include "OperationModes.h" @@ -68,13 +69,15 @@ /// Message handling function lookup table static const U16 MSG_FUNCTION_HANDLER_LOOKUP[] = { MSG_ID_TESTER_LOGIN_REQUEST, - MSG_ID_TD_SOFTWARE_RESET_REQUEST + MSG_ID_TD_SOFTWARE_RESET_REQUEST, + MSG_ID_TD_VENOUS_BUBBLE_OVERRIDE_REQUEST }; /// Message handling function table static const MsgFuncPtr MSG_FUNCTION_HANDLERS[] = { &handleTesterLogInRequest, - &handleTDSoftwareResetRequest + &handleTDSoftwareResetRequest, + &testBubbleDetectOverride }; #define NUM_OF_FUNCTION_HANDLERS (sizeof(MSG_FUNCTION_HANDLERS) / sizeof(MsgFuncPtr))