Index: firmware/App/Monitors/BloodLeak.c =================================================================== diff -u -r03d752c607e90f52e2f0b05a2ebd01283ed3f033 -r830213bc6dcc1a684610caf78c79d55f2cb41e93 --- firmware/App/Monitors/BloodLeak.c (.../BloodLeak.c) (revision 03d752c607e90f52e2f0b05a2ebd01283ed3f033) +++ firmware/App/Monitors/BloodLeak.c (.../BloodLeak.c) (revision 830213bc6dcc1a684610caf78c79d55f2cb41e93) @@ -1,3 +1,19 @@ +/************************************************************************** +* +* Copyright (c) 2025-2026 Diality Inc. - All Rights Reserved. +* +* THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN +* WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. +* +* @file BloodLeak.c +* +* @author (last) Dara Navaei +* @date (last) 05-Dec-2025 +* +* @author (original) Dara Navaei +* @date (original) 18-Aug-2025 +* +***************************************************************************/ #include // For pow function @@ -526,20 +542,23 @@ *************************************************************************/ BOOL isBloodLeakZeroingNeeded( void ) { - BOOL status = FALSE; - TD_OP_MODE_T opMode = getTDOpMode(); + BOOL status = FALSE; - if ( MODE_PRET == opMode ) + TD_MODE_SUB_MODE_T tdModes; + + getTDOperationMode( &tdModes ); + + if ( MODE_PRET == tdModes.tdMode ) { U32 intensity = getEmbModeInfoValue( I_EMB_MODE_CMD ); if ( ( intensity <= BLD_START_OF_TX_MIN_INTENSITY_DRIFT ) || ( intensity >= BLD_MAX_UPPER_INTENSITY_DRIFT ) ) { - SEND_EVENT_WITH_2_F32_DATA( DD_EVENT_BLOOD_LEAK_ZEROING_REQUIRED, intensity, opMode ) + SEND_EVENT_WITH_2_F32_DATA( DD_EVENT_BLOOD_LEAK_ZEROING_REQUIRED, intensity, tdModes.tdMode ) status = TRUE; } } - else if ( MODE_TREA == opMode ) + else if ( MODE_TREA == tdModes.tdMode ) { status |= isLowerRangeIntensityDriftZeroingNeeded(); status |= isUpperIntensityZeroingNeeded(); @@ -842,9 +861,13 @@ { BLOOD_LEAK_STATE_T state = BLOOD_LEAK_NORMAL_STATE; + TD_MODE_SUB_MODE_T tdModes; + + getTDOperationMode( &tdModes ); + bloodLeakStatus.data = getFPGABloodDetectProcessedStatus(); - switch ( getTDOpMode() ) + switch ( tdModes.tdMode ) { case MODE_TREA: case MODE_SERV: @@ -1939,7 +1962,7 @@ response.responseLen = responseLen; memcpy( response.responseBuffer, responseBuffer, responseLen ); - result = sendMessage( MSG_ID_DD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE, COMM_BUFFER_OUT_CAN_PC, (U08*)&response, sizeof( BLOOD_LEAK_EMB_MODE_RESP_T ) ); + result = sendMessage( MSG_ID_DD_SEND_BLOOD_LEAK_EMB_MODE_RESPONSE, COMM_BUFFER_OUT_DD_CAN_PC, (U08*)&response, sizeof( BLOOD_LEAK_EMB_MODE_RESP_T ) ); return result; } @@ -1949,6 +1972,7 @@ * TEST SUPPORT FUNCTIONS *************************************************************************/ + /*********************************************************************//** * @brief * The testBloodLeakDataPublishIntervalOverride function overrides the @@ -1994,12 +2018,15 @@ *************************************************************************/ BOOL testSetBloodLeak2EmbeddedMode( MESSAGE_T *message ) { - BOOL result = FALSE; - TD_OP_MODE_T mode = getTDOpMode(); + BOOL result = FALSE; + TD_MODE_SUB_MODE_T tdModes; + + getTDOperationMode( &tdModes ); + // Check if the mode is fault, service or standby before accepting a transition to // the embedded mode - if ( ( MODE_FAUL == mode ) || ( MODE_SERV == mode ) || ( MODE_STAN == mode ) ) + if ( ( MODE_FAUL == tdModes.tdMode ) || ( MODE_SERV == tdModes.tdMode ) || ( MODE_STAN == tdModes.tdMode ) ) { bloodLeakSignalEmbModeReq = TRUE; bloodLeakEmbModeRqstedCmd = CS_EMB_MODE_CMD;