Index: firmware/App/Monitors/BloodLeak.c =================================================================== diff -u -rc07917caced76b53a0ed8f35167fac6f9d8310a4 -rf4a8565c7edec12094b8a737ed7b8cd3424a9208 --- firmware/App/Monitors/BloodLeak.c (.../BloodLeak.c) (revision c07917caced76b53a0ed8f35167fac6f9d8310a4) +++ firmware/App/Monitors/BloodLeak.c (.../BloodLeak.c) (revision f4a8565c7edec12094b8a737ed7b8cd3424a9208) @@ -8,7 +8,7 @@ * @file BloodLeak.c * * @author (last) Dara Navaei -* @date (last) 22-Oct-2025 +* @date (last) 05-Dec-2025 * * @author (original) Dara Navaei * @date (original) 18-Aug-2025 @@ -542,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(); @@ -858,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: @@ -1481,8 +1488,6 @@ data.driftInRangeStatus = bloodLeakZeroingStatus.driftInRangeStatus; data.driftUpperRangeStatus = bloodLeakZeroingStatus.driftUpperRangeStatus; - data.TEMP_REMOVE_VARIABLE = (U32)get_TEMP_REMOVE_STATUS(); - bloodLeakDataPublicationCounter = 0; broadcastData( MSG_ID_DD_BLOOD_LEAK_DATA, COMM_BUFFER_OUT_CAN_DD_BROADCAST, (U08*)&data, sizeof( BLOOD_LEAK_DATA_T ) ); @@ -2013,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;