Index: firmware/.gitignore =================================================================== diff -u -r414926670899f626810b758dd43f2fe875098519 -r242ad36c7a1ec4ee5012c9f009899f9e0bd87628 --- firmware/.gitignore (.../.gitignore) (revision 414926670899f626810b758dd43f2fe875098519) +++ firmware/.gitignore (.../.gitignore) (revision 242ad36c7a1ec4ee5012c9f009899f9e0bd87628) @@ -34,6 +34,7 @@ /.metadata/ /Debug/ /Release/ +/.launches/ # Ignore symbolically linked folders # The linked folders do not need "/" Fisheye: Tag 242ad36c7a1ec4ee5012c9f009899f9e0bd87628 refers to a dead (removed) revision in file `firmware/.launches/HD.launch'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 242ad36c7a1ec4ee5012c9f009899f9e0bd87628 refers to a dead (removed) revision in file `firmware/.launches/SeanTest.launch'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 242ad36c7a1ec4ee5012c9f009899f9e0bd87628 refers to a dead (removed) revision in file `firmware/.launches/VCAST_DEBUG.launch'. Fisheye: No comparison available. Pass `N' to diff? Index: firmware/App/Controllers/BloodLeak.c =================================================================== diff -u -r66dda999c5736ecec046197ff1c843c01f6aecc5 -r242ad36c7a1ec4ee5012c9f009899f9e0bd87628 --- firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 66dda999c5736ecec046197ff1c843c01f6aecc5) +++ firmware/App/Controllers/BloodLeak.c (.../BloodLeak.c) (revision 242ad36c7a1ec4ee5012c9f009899f9e0bd87628) @@ -26,6 +26,7 @@ #include "SystemCommMessages.h" #include "TaskPriority.h" #include "Timers.h" +#include "Utilities.h" /** * @addtogroup BloodLeak @@ -79,7 +80,7 @@ #define BLOOD_LEAK_EMB_MODE_STOP_WRITE_INDEX 3 ///< Blood leak embedded mode stop write to FIFO index. #define BLOOD_LEAK_EMB_MODE_ACTIVE_HIGH_INDEX 4 ///< Blood leak embedded mode active high command index. #define BLOOD_LEAK_EMB_MODE_REQUEST_RX_INDEX 0 ///< Blood leak embedded mode request Rx to read index. -#define BLOOD_LEAK_EMB_MODE_CMD_Q_MAX_SIZE 10 ///< Blood leak embedded mode command queue maximum size. +#define BLOOD_LEAK_EMB_MODE_CMD_Q_MAX_SIZE 12 ///< Blood leak embedded mode command queue maximum size. #define BLOOD_LEAK_EMB_MODE_ZERO_CMD_RQRD_Q 5 ///< Blood leak embedded mode zero command required queue count. #define BLOOD_LEAK_EMB_MODE_NUM_OF_RETRIES 3 ///< Blood leak embedded mode number of retries to enqueue. @@ -265,6 +266,13 @@ getNVRecord2Driver( GET_CAL_BLOOD_LEAK_SENSOR, (U08*)&bloodLeakCalRecord, length, 0, ALARM_ID_HD_BLOOD_LEAK_INVALID_CAL_RECORD ); } + if ( bloodLeakState >= BLOOD_LEAK_INIT_STATE ) + { + enqueueEmbModeCmd( I_EMB_MODE_CMD ); + enqueueEmbModeCmd( V_EMB_MODE_CMD ); + enqueueEmbModeCmd( D_EMB_MODE_CMD ); + } + switch( bloodLeakState ) { case BLOOD_LEAK_WAIT_FOR_POST_STATE: @@ -771,6 +779,10 @@ // Clear the response buffer to able to receive fresh data memset( bloodLeakEmbModeRespBuffer, 0x0, BLOOD_LEAK_EMB_MODE_RESP_BUFFER_LEN ); break; + + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_BLOOD_LEAK_INVALID_EMB_MODE_CMD_SELECTED, bloodLeakEmbModeRqstedCmd ) + break; } } @@ -830,6 +842,10 @@ } bloodLeakUARTCmdIndex++; break; + + default: + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_HD_SOFTWARE_FAULT, SW_FAULT_ID_BLOOD_LEAK_INVALID_EMB_MODE_CMD_SELECTED, bloodLeakEmbModeRqstedCmd ) + break; } if ( ( bloodLeakEmbModeRqstedCmd != CS_EMB_MODE_CMD ) && ( bloodLeakUARTCmdIndex - 1 > BLOOD_LEAK_EMB_MODE_RESET_INDEX ) && @@ -1186,16 +1202,11 @@ { BLOOD_LEAK_DATA_T data; - data.bloodLeakStatus = (U32)getBloodLeakStatus(); - data.bloodLeakState = (U32)bloodLeakState; - data.bloodLeakZeroStatusCounter = (U32)getFPGABloodLeakZeroStatusCounter(); - data.bloodLeakCounter = (U32)getFPGABloodLeakCounter(); - data.bloodLeakZeroedStatus = (U32)getFPGABloodLeakZeroedStatus(); - data.bloodLeakDetectSetPoint = (U32)getFPGABloodLeakDetectSetPoint(); - data.bloodLeakDetectLevel = (U32)getFPGABloodLeakDetectLevel(); - data.bloodLeakStCount = (U32)getFPGABloodLeakStCount(); - data.bloodLeakLEDIntesity = (U32)getFPGABloodLeakLEDIntensity(); - data.bloodLeakRegisterCounter = (U32)getFPGABloodLeakRegisterCounter(); + data.bloodLeakStatus = (U32)getBloodLeakStatus(); + data.bloodLeakState = (U32)bloodLeakState; + data.bloodLeakDetectSetPoint = bloodLeakEmbModeCmd[ D_EMB_MODE_CMD ].commandResp; + data.bloodLeakDetectLevel = bloodLeakEmbModeCmd[ V_EMB_MODE_CMD ].commandResp; + data.bloodLeakLEDIntesity = bloodLeakEmbModeCmd[ I_EMB_MODE_CMD ].commandResp; broadcastData( MSG_ID_HD_BLOOD_LEAK_DATA, COMM_BUFFER_OUT_CAN_HD_BROADCAST, (U08*)&data, sizeof( BLOOD_LEAK_DATA_T ) ); bloodLeakDataPublicationTimerCounter = 0; Index: firmware/App/Controllers/BloodLeak.h =================================================================== diff -u -r66dda999c5736ecec046197ff1c843c01f6aecc5 -r242ad36c7a1ec4ee5012c9f009899f9e0bd87628 --- firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision 66dda999c5736ecec046197ff1c843c01f6aecc5) +++ firmware/App/Controllers/BloodLeak.h (.../BloodLeak.h) (revision 242ad36c7a1ec4ee5012c9f009899f9e0bd87628) @@ -46,14 +46,9 @@ { U32 bloodLeakStatus; ///< Blood leak detector status U32 bloodLeakState; ///< Blood leak detector state - U32 bloodLeakZeroStatusCounter; ///< Blood leak zero status counter - U32 bloodLeakCounter; ///< Blood leak counter - U32 bloodLeakZeroedStatus; ///< Blood leak zeroed status U32 bloodLeakDetectSetPoint; ///< Blood leak detect set point U32 bloodLeakDetectLevel; ///< Blood leak detect level - U32 bloodLeakStCount; ///< Blood leak st count U32 bloodLeakLEDIntesity; ///< Blood leak LED intensity - U32 bloodLeakRegisterCounter; ///< Blood leak register counter } BLOOD_LEAK_DATA_T; // ********** public function prototypes ********** Index: firmware/App/Services/AlarmMgmtSWFaults.h =================================================================== diff -u -r66dda999c5736ecec046197ff1c843c01f6aecc5 -r242ad36c7a1ec4ee5012c9f009899f9e0bd87628 --- firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 66dda999c5736ecec046197ff1c843c01f6aecc5) +++ firmware/App/Services/AlarmMgmtSWFaults.h (.../AlarmMgmtSWFaults.h) (revision 242ad36c7a1ec4ee5012c9f009899f9e0bd87628) @@ -173,6 +173,7 @@ SW_FAULT_ID_WRITE_USAGE_INFO_TO_NV_FAILURE, SW_FAULT_ID_INVALID_NV_RECORD_SELECTED, SW_FAULT_ID_BLOOD_LEAK_ENQUEUE_FAILURE, + SW_FAULT_ID_BLOOD_LEAK_INVALID_EMB_MODE_CMD_SELECTED, // 145 NUM_OF_SW_FAULT_IDS } SW_FAULT_ID_T; Index: firmware/App/Services/FPGA.c =================================================================== diff -u -rb9300084966f27ebd166962121c5217f5cd30eb0 -r242ad36c7a1ec4ee5012c9f009899f9e0bd87628 --- firmware/App/Services/FPGA.c (.../FPGA.c) (revision b9300084966f27ebd166962121c5217f5cd30eb0) +++ firmware/App/Services/FPGA.c (.../FPGA.c) (revision 242ad36c7a1ec4ee5012c9f009899f9e0bd87628) @@ -1974,87 +1974,6 @@ /*********************************************************************//** * @brief - * The noFPGABloodLeakDetected function returns TRUE if no blood leak has been - * detected and FALSE if a blood leak has been detected. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return noFPGABloodLeakDetected - *************************************************************************/ -BOOL noFPGABloodLeakDetected( void ) -{ - U16 noFPGABloodLeakDetected = fpgaSensorReadings.fpgaGPIO & FPGA_BLOOD_LEAK_STATUS_MASK; - - return ( 0 == noFPGABloodLeakDetected ? TRUE : FALSE ); -} - -/*********************************************************************//** - * @brief - * The setFPGABloodLeakZero function sets the Blood Leak detector into - * zeroing mode via the FPGA. - * @details Inputs: none - * @details Outputs: fpgaActuatorSetPoints - * @return none - *************************************************************************/ -void setFPGABloodLeakZero( void ) -{ - fpgaActuatorSetPoints.fpgaSensorTest |= FPGA_BLOOD_LEAK_ZERO_CMD; -} - -/*********************************************************************//** - * @brief - * The clearFPGABloodLeakZero function clears the Blood Leak detector from - * zeroing mode via the FPGA. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return none - *************************************************************************/ -void clearFPGABloodLeakZero( void ) -{ - fpgaActuatorSetPoints.fpgaSensorTest &= ~FPGA_BLOOD_LEAK_ZERO_CMD; -} - -/*********************************************************************//** - * @brief - * The setFPGABloodLeakSelfTest function sets the Blood Leak detector into - * self-test mode via the FPGA. - * @details Inputs: none - * @details Outputs: fpgaActuatorSetPoints - * @return: none - *************************************************************************/ -void setFPGABloodLeakSelfTest( void ) -{ - fpgaActuatorSetPoints.fpgaSensorTest |= FPGA_BLOOD_LEAK_SELF_TEST_CMD; -} - -/*********************************************************************//** - * @brief - * The clearFPGABloodLeakSelfTest function clears the Blood Leak detector from - * self-test mode via the FPGA. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return none - *************************************************************************/ -void clearFPGABloodLeakSelfTest( void ) -{ - fpgaActuatorSetPoints.fpgaSensorTest &= ~FPGA_BLOOD_LEAK_SELF_TEST_CMD; -} - -/*********************************************************************//** - * @brief - * The getFPGABloodLeakZeroStatus function returns the blood leak sensor's - * zero status bit. - * @details Inputs: fpgaSensorReadings - * @details Outputs: none - * @return blood leak sensor zero status bit - *************************************************************************/ -U08 getFPGABloodLeakZeroStatus( void ) -{ - U08 zeroStatus = (U08)( ( fpgaSensorReadings.fpgaGPIO & FPGA_BLOOD_LEAK_ZERO_STATE_MASK ) >> FPAG_BLOOD_LEAK_ZERO_BIT_INDEX ); - return zeroStatus; -} - -/*********************************************************************//** - * @brief * The getFPGABloodLeakStatus function returns the blood leak sensor's * blood detection status bit. * @details Inputs: fpgaSensorReadings Index: firmware/App/Services/FPGA.h =================================================================== diff -u -r8b73263b38f449dacc0795c67a7cf6240cb79026 -r242ad36c7a1ec4ee5012c9f009899f9e0bd87628 --- firmware/App/Services/FPGA.h (.../FPGA.h) (revision 8b73263b38f449dacc0795c67a7cf6240cb79026) +++ firmware/App/Services/FPGA.h (.../FPGA.h) (revision 242ad36c7a1ec4ee5012c9f009899f9e0bd87628) @@ -123,12 +123,6 @@ BOOL noFPGAFluidLeakDetected( void ); -BOOL noFPGABloodLeakDetected( void ); // TODO remove -void setFPGABloodLeakZero( void ); -void clearFPGABloodLeakZero( void ); -void setFPGABloodLeakSelfTest( void ); -void clearFPGABloodLeakSelfTest( void ); -U08 getFPGABloodLeakZeroStatus( void ); U08 getFPGABloodLeakStatus( void ); void setFPGABloodLeakUARTControl( U08 value );