Index: firmware/App/Drivers/BloodLeakDriver.c =================================================================== diff -u -r6f7ada05f12562eef3d0135168b37cdabf7e3eae -rb2436685ec42e879781b0bc1348ba80f333196bb --- firmware/App/Drivers/BloodLeakDriver.c (.../BloodLeakDriver.c) (revision 6f7ada05f12562eef3d0135168b37cdabf7e3eae) +++ firmware/App/Drivers/BloodLeakDriver.c (.../BloodLeakDriver.c) (revision b2436685ec42e879781b0bc1348ba80f333196bb) @@ -1,11 +1,27 @@ -#include "BloodLeakDriver.h" +/************************************************************************** +* +* 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 BloodLeakDriver.c +* +* @author (last) Dara Navaei +* @date (last) 10-Sep-2024 +* +* @author (original) Dara Navaei +* @date (original) 10-Sep-2024 +* +***************************************************************************/ -#include #include +#include #include #include "AlarmMgmtDD.h" #include "BloodLeak.h" +#include "BloodLeakDriver.h" #include "Messaging.h" #include "Timers.h" #include "Utilities.h" @@ -44,7 +60,7 @@ #define DATA_PUBLISH_COUNTER_START_COUNT 60 ///< Data publish counter start count. #define BLOOD_LEAK_DETECT_RECOVERY_MIN_TIME_MS ( 2 * MS_PER_SECOND ) ///< Blood leak blood detect recovery minimum time in milliseconds. -// Embedded mode defines +/// Embedded mode defines #define BLOOD_LEAK_EMB_MODE_CMD_SEQ_LENGTH 6 ///< Blood leak embedded mode command sequence length. #define BLOOD_LEAK_EMB_MODE_RQST_RX_LENGTH 2 ///< Blood leak embedded mode request new Rx data length. #define BLOOD_LEAK_EMB_MODE_COMM_ACTIVE_HIGH 5 ///< Blood leak embedded mode communication active high command. @@ -135,14 +151,13 @@ U32 responseLen; ///< Blood leak response length. U08 responseBuffer[ BLOOD_LEAK_EMB_MODE_RESP_BUFFER_LEN ]; ///< Blood leak response buffer. } BLOOD_LEAK_EMB_MODE_RESP_T; -//#pragma pack(pop) +#pragma pack(pop) // ********** private data ********** static BLOOD_LEAK_STATE_T bloodLeakState; static U32 bloodLeakUARTCmdIndex; static U32 bloodLeakSetPointSeqLength; static U08 bloodLeakSetPointSequence[ BLOOD_LEAK_SET_POINT_SEQ_MAX_LENGTH ][ 2 ]; -//static U32 blooadLeakRecoveryStartTimeMS; // Embedded mode variables static BOOL bloodLeakSignalEmbModeReq; ///< Blood leak signal embedded mode has been requested. @@ -160,8 +175,6 @@ static U08 bloodLeakEmbModeCmdQRearIndex; ///< Blood leak embedded mode command queue rear index. static U08 bloodLeakEmbModeCmdQFrontIndex; ///< Blood leak embedded mode command queue front index. static U08 bloodLeakEmbModeCmdQCount; ///< Blood leak embedded mode command queue count. -//static BOOL bloodLeakEmbModeHasZeroBeenRqustd; ///< Blood leak embedded mode flag to indicate zero has been requested. -//static U32 bloodLeakEmbModeCmdEnqueueCount; ///< Blood leak embedded mode command enqueue count. static U32 bloodLeakEmbModeInfoCmdEnqLastTimeStamp; ///< Blood leak embedded mode informative command (i.e. I, V, D) timer. static U32 bloodLeakEmbModeInfoCmdCounter; ///< Blood leak embedded mode informative command counter. static OVERRIDE_U32_T bloodLeakEmbModeIntensityOverride; ///< Blood leak embedded mode intensity override. @@ -181,7 +194,7 @@ /*********************************************************************//** * @brief - * The initBloodLeak function initializes the Blood Leak module. + * The initBloodLeakDriver function initializes the Blood Leak module. * @details \b Inputs: none * @details \b Outputs: bloodLeakState, bloodLeakStatus, bloodLeakSelfTestStatus, * bloodLeakUARTCmdIndex, bloodLeakSetPointSequence @@ -196,40 +209,26 @@ * bloodLeakZeroingStatus * @return none *************************************************************************/ -void initBloodLeak( void ) +void initBloodLeakDriver( void ) { // Initialize the embedded mode specifications initEmbModeSpecs(); bloodLeakEmbModeRespIndex = 0; - //bloodLeakExitNormalRequested = FALSE; bloodLeakEmbModeCmdSeqLength = 0; bloodLeakEmbModeHasRxRqstBeenSent = FALSE; bloodLeakEmbModeCmdQFrontIndex = 0; bloodLeakEmbModeCmdQRearIndex = 0; bloodLeakEmbModeCmdQCount = 0; - //bloodLeakEmbModeHasZeroBeenRqustd = FALSE; - //bloodLeakEmbModeCmdEnqueueCount = 0; bloodLeakEmbModeInfoCmdEnqLastTimeStamp = getMSTimerCount(); bloodLeakEmbModeInfoCmdCounter = 0; - //bloodLeakRecoveryStartTimeMS = getMSTimerCount(); - // Initialize the blood leak embedded mode response buffer memset( bloodLeakEmbModeRespBuffer, 0x0, BLOOD_LEAK_EMB_MODE_RESP_BUFFER_LEN ); // Initialize the blood leak embedded mode command sequence memset( bloodLeakEmbModeCmdSeq, 0x0, BLOOD_LEAK_EMB_MODE_CMD_SEQ_LENGTH ); -// bloodLeakZeroingStatus.zeroingDriftIntervalTimeMS.data = BLD_ZERO_MIN_INTERVAL_MS; -// bloodLeakZeroingStatus.zeroingDriftIntervalTimeMS.ovInitData = BLD_ZERO_MIN_INTERVAL_MS; -// bloodLeakZeroingStatus.zeroingDriftIntervalTimeMS.ovData = 0; -// bloodLeakZeroingStatus.zeroingDriftIntervalTimeMS.override = 0; -// bloodLeakZeroingStatus.zeroingUpperRangeIntervalTimeMS.data = BLD_UPPER_INTENSITY_INTERVAL_MS; -// bloodLeakZeroingStatus.zeroingUpperRangeIntervalTimeMS.ovInitData = BLD_UPPER_INTENSITY_INTERVAL_MS; -// bloodLeakZeroingStatus.zeroingUpperRangeIntervalTimeMS.ovData = 0; -// bloodLeakZeroingStatus.zeroingUpperRangeIntervalTimeMS.override = 0; - // Enqueue the commands to set the embedded mode and request the set point of the blood leak sensor enqueueEmbModeCmd( CS_EMB_MODE_CMD ); enqueueEmbModeCmd( D_EMB_MODE_CMD ); @@ -267,7 +266,6 @@ } } - /*********************************************************************//** * @brief * The handleBloodLeakEmbModeWaitForCommandState function handles the wait for @@ -1217,5 +1215,4 @@ return result; } - /**@}*/ Index: firmware/App/Drivers/BloodLeakDriver.h =================================================================== diff -u -r6f7ada05f12562eef3d0135168b37cdabf7e3eae -rb2436685ec42e879781b0bc1348ba80f333196bb --- firmware/App/Drivers/BloodLeakDriver.h (.../BloodLeakDriver.h) (revision 6f7ada05f12562eef3d0135168b37cdabf7e3eae) +++ firmware/App/Drivers/BloodLeakDriver.h (.../BloodLeakDriver.h) (revision b2436685ec42e879781b0bc1348ba80f333196bb) @@ -1,5 +1,20 @@ +/************************************************************************** +* +* 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 BloodLeakDriver.c +* +* @author (last) Dara Navaei +* @date (last) 10-Sep-2024 +* +* @author (original) Dara Navaei +* @date (original) 10-Sep-2024 +* +***************************************************************************/ - #ifndef __BLOODLEAKDRIVER_H__ #define __BLOODLEAKDRIVER_H__ @@ -18,6 +33,7 @@ // ********** public definitions ********** +#pragma pack(push,1) /// Blood leak detector data publish typedef struct { @@ -32,10 +48,11 @@ U32 driftInRangeStatus; ///< Blood leak detector drift in range status. U32 driftUpperRangeStatus; ///< Blood leak detector drift upper range status. } BLOOD_LEAK_DATA_T; +#pragma pack(pop) // ********** public function prototypes ********** -void initBloodLeak( void ); +void initBloodLeakDriver( void ); void execBloodLeakEmbModeCommand( void ); // Embedded mode command queue Index: firmware/App/Monitors/BloodLeak.c =================================================================== diff -u -r6f7ada05f12562eef3d0135168b37cdabf7e3eae -rb2436685ec42e879781b0bc1348ba80f333196bb --- firmware/App/Monitors/BloodLeak.c (.../BloodLeak.c) (revision 6f7ada05f12562eef3d0135168b37cdabf7e3eae) +++ firmware/App/Monitors/BloodLeak.c (.../BloodLeak.c) (revision b2436685ec42e879781b0bc1348ba80f333196bb) @@ -1,5 +1,20 @@ +/************************************************************************** +* +* 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) 10-Sep-2024 +* +* @author (original) Dara Navaei +* @date (original) 10-Sep-2024 +* +***************************************************************************/ - #include // For pow function #include // For memset and strlen #include // For sprintf @@ -172,36 +187,17 @@ static OVERRIDE_U32_T bloodLeakDataPublishInterval = { BLOOD_LEAK_PUB_INTERVAL, BLOOD_LEAK_PUB_INTERVAL, 0, 0 }; ///< Interval (in ms) at which to publish blood leak data to CAN bus. static U32 bloodLeakDataPublicationCounter; ///< Timer counter used to schedule blood leak data publication to CAN bus. -//static U32 bloodLeakUARTCmdIndex; ///< Blood leak UART command index. -//static U32 bloodLeakSetPointSeqLength; ///< Blood leak set point sequence actual length. static U08 bloodLeakSetPointSequence[ BLOOD_LEAK_SET_POINT_SEQ_MAX_LENGTH ][ 2 ]; ///< Blood leak set point sequence array. -//static HD_BLOOD_LEAK_SENSOR_CAL_RECORD_T bloodLeakCalRecord; ///< Blood leak calibration record structure. // TODO uncomment static BOOL bloodLeakExitNormalRequested; ///< Blood leak exit normal state requested. static U32 bloodLeakRecoveryStartTimeMS; ///< Blood leak recovery start time in milliseconds. static BLOOD_LEAK_ZEROING_STATUS_T bloodLeakZeroingStatus; ///< Blood leak zeroing status. // Embedded mode variables -//static BOOL bloodLeakSignalEmbModeReq; ///< Blood leak signal embedded mode has been requested. -//static U08 bloodLeakEmbModeRqstedCmd; ///< Blood leak signal embedded mode requested command. -//static U08 bloodLeakEmbModeCmdSeq[ BLOOD_LEAK_EMB_MODE_CMD_SEQ_LENGTH ][ 2 ]; ///< Blood leak embedded mode command sequence. -static BLOOD_LEAK_EMB_MODE_STATE_T bloodLeakEmbModeSubstate; ///< Blood leak embedded mode state. -//static U32 bloodLeakEmbModeOpsStartTime; ///< Blood leak embedded mode operations start time. -//static U16 bloodLeakEmbModeSetPoint; ///< Blood leak embedded mode set point command. +static BLOOD_LEAK_EMB_MODE_STATE_T bloodLeakEmbModeSubstate; ///< Blood leak embedded mode state. ///< Blood leak embedded mode set point command. static EMB_MODE_CMD_T bloodLeakEmbModeCmd[ NUM_OF_EMB_CMDS ]; ///< Blood leak embedded mode commands. -//static U08 bloodLeakEmbModeRespBuffer[ BLOOD_LEAK_EMB_MODE_RESP_BUFFER_LEN ]; ///< Blood leak embedded mode response buffer. -//static U32 bloodLeakEmbModeRespIndex; ///< Blood leak embedded mode response buffer index. -//static U32 bloodLeakEmbModeCmdSeqLength; ///< Blood leak embedded mode command sequence length. -//static BOOL bloodLeakEmbModeHasRxRqstBeenSent; ///< Blood leak embedded mode Rx request has been sent signal. static U08 bloodLeakEmbModeCmdQ[ BLOOD_LEAK_EMB_MODE_CMD_Q_MAX_SIZE ]; ///< Blood leak embedded mode command queue. -//static U08 bloodLeakEmbModeCmdQRearIndex; ///< Blood leak embedded mode command queue rear index. -//static U08 bloodLeakEmbModeCmdQFrontIndex; ///< Blood leak embedded mode command queue front index. -//static U08 bloodLeakEmbModeCmdQCount; ///< Blood leak embedded mode command queue count. static BOOL bloodLeakEmbModeHasZeroBeenRqustd; ///< Blood leak embedded mode flag to indicate zero has been requested. -static U32 bloodLeakEmbModeCmdEnqueueCount; ///< Blood leak embedded mode command enqueue count. -//static U32 bloodLeakEmbModeInfoCmdEnqLastTimeStamp; ///< Blood leak embedded mode informative command (i.e. I, V, D) timer. -//static U32 bloodLeakEmbModeInfoCmdCounter; ///< Blood leak embedded mode informative command counter. -//static OVERRIDE_U32_T bloodLeakEmbModeIntensityOverride; ///< Blood leak embedded mode intensity override. -//static OVERRIDE_U32_T bloodLeakEmbModeDetectOverride; ///< Blood leak embedded mode blood detect override. +static U32 bloodLeakEmbModeCmdEnqueueCount; ///< Blood leak embedded mode command enqueue count // ********** private function prototypes ********** @@ -219,7 +215,6 @@ static void processBloodLeakIntensityData( void ); static BOOL isLowerRangeIntensityDriftZeroingNeeded( void ); static BOOL isUpperIntensityZeroingNeeded( void ); -//static BOOL sendBloodLeakEmbeddedModeCommandResponse( U08 cmd, U32 responseLen, U08 *responseBuffer ); /*********************************************************************//** * @brief @@ -250,24 +245,11 @@ bloodLeakStatus.ovData = BLOOD_LEAK_NOT_DETECTED; bloodLeakStatus.override = OVERRIDE_RESET; bloodLeakSelfTestStatus = SELF_TEST_STATUS_IN_PROGRESS; - //bloodLeakUARTCmdIndex = 0; - //bloodLeakSetPointSeqLength = 0; bloodLeakPersistenceCtr = 0; - //bloodLeakSignalEmbModeReq = FALSE; - //bloodLeakEmbModeRqstedCmd = NU_EMB_MODE_CMD; bloodLeakEmbModeSubstate = BLOOD_LEAK_EMB_MODE_WAIT_FOR_COMAND_STATE; - //bloodLeakEmbModeOpsStartTime = 0; - //bloodLeakEmbModeRespIndex = 0; bloodLeakExitNormalRequested = FALSE; - //bloodLeakEmbModeCmdSeqLength = 0; - //bloodLeakEmbModeHasRxRqstBeenSent = FALSE; - //bloodLeakEmbModeCmdQFrontIndex = 0; - //bloodLeakEmbModeCmdQRearIndex = 0; - //bloodLeakEmbModeCmdQCount = 0; bloodLeakEmbModeHasZeroBeenRqustd = FALSE; bloodLeakEmbModeCmdEnqueueCount = 0; - //bloodLeakEmbModeInfoCmdEnqLastTimeStamp = getMSTimerCount(); - //bloodLeakEmbModeInfoCmdCounter = 0; bloodLeakRecoveryStartTimeMS = getMSTimerCount(); // Set the blood leak embedded mode command queue to zero @@ -345,8 +327,6 @@ break; } - //enqueueInfoEmbModeCmds(); - // Publish blood leak data if due publishBloodLeakData(); } @@ -452,14 +432,14 @@ return bloodLeakSelfTestStatus; } -///*********************************************************************//** -// * @brief -// * The isBloodLeakZeroingNeeded function checks whether blood leak zeroing -// * is needed in terms of drift. -// * @details \b Inputs: none -// * @details \b Outputs: none -// * @return TRUE if blood leak zeroing is needed otherwise, FALSE -// *************************************************************************/ +/*********************************************************************//** + * @brief + * The isBloodLeakZeroingNeeded function checks whether blood leak zeroing + * is needed in terms of drift. + * @details \b Inputs: none + * @details \b Outputs: none + * @return TRUE if blood leak zeroing is needed otherwise, FALSE + *************************************************************************/ BOOL isBloodLeakZeroingNeeded( void ) { BOOL status = FALSE; @@ -1056,7 +1036,6 @@ return status; } -<<<<<<< Updated upstream /*********************************************************************//** * @brief * The sendBloodLeakEmbeddedModeCommandResponse function sends out @@ -1197,3 +1176,4 @@ /**@}*/ + Index: firmware/App/Monitors/BloodLeak.h =================================================================== diff -u -r6f7ada05f12562eef3d0135168b37cdabf7e3eae -rb2436685ec42e879781b0bc1348ba80f333196bb --- firmware/App/Monitors/BloodLeak.h (.../BloodLeak.h) (revision 6f7ada05f12562eef3d0135168b37cdabf7e3eae) +++ firmware/App/Monitors/BloodLeak.h (.../BloodLeak.h) (revision b2436685ec42e879781b0bc1348ba80f333196bb) @@ -1,5 +1,20 @@ +/************************************************************************** +* +* 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.h +* +* @author (last) Dara Navaei +* @date (last) 10-Sep-2024 +* +* @author (original) Dara Navaei +* @date (original) 10-Sep-2024 +* +***************************************************************************/ - #ifndef __BLOODLEAK_H__ #define __BLOODLEAK_H__ @@ -18,31 +33,6 @@ * @{ */ -// ********** public definitions ********** - -/// Enumeration of blood leak detector status. -//typedef enum BloodLeakDetectorStatus -//{ -// BLOOD_LEAK_DETECTED = 0, ///< Blood leak detector senses blood. -// BLOOD_LEAK_NOT_DETECTED, ///< Blood leak detector does not sense any blood. -// NUM_OF_BLOOD_LEAK_STATUS ///< Number of blood leak detector status. -//} BLOOD_LEAK_STATUS_T; - -/// Blood leak detector data publish -//typedef struct -//{ -// U32 bloodLeakStatus; ///< Blood leak detector status. -// U32 bloodLeakState; ///< Blood leak detector state. -// U32 bloodLeakPersistentCounter; ///< Blood leak detector persistent counter. -// U32 bloodLeakSerialCommState; ///< Blood leak detector serial communication state. -// U32 bloodLeakIntensity; ///< Blood leak detector intensity. -// U32 bloodLeakDetect; ///< Blood leak detector detect. -// F32 bloodLeakIntensityMovingAvg; ///< Blood leak detector intensity moving average. -// U32 bloodLeakTimeSinceZeroMS; ///< Blood leak detector time since last zero in milliseconds. -// U32 driftInRangeStatus; ///< Blood leak detector drift in range status. -// U32 driftUpperRangeStatus; ///< Blood leak detector drift upper range status. -//} BLOOD_LEAK_DATA_T; - // ********** public function prototypes ********** void initBloodLeak( void );