Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -r9d03872a4b47b119f8416e2f78c0f24f6fb525e5 -r1c7149a0ff9ea2497c7765128ba24404fd49a30c --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 9d03872a4b47b119f8416e2f78c0f24f6fb525e5) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 1c7149a0ff9ea2497c7765128ba24404fd49a30c) @@ -1,14 +1,14 @@ /************************************************************************** * -* Copyright (c) 2019-2022 Diality Inc. - All Rights Reserved. +* Copyright (c) 2020-2022 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 AirTrap.c * * @author (last) Dara Navaei -* @date (last) 04-Jan-2022 +* @date (last) 01-Mar-2022 * * @author (original) Sean Nash * @date (original) 16-Sep-2020 @@ -37,7 +37,8 @@ /// Persistence period for illegal level sensors fault. static const U32 AIR_TRAP_ILLEGAL_LEVELS_PERSISTENCE = ( MS_PER_SECOND * 2 / TASK_PRIORITY_INTERVAL ); /// Volume (in mL) of venous portion of blood circuit line. TODO - get actual volume from Systems. -#define VENOUS_LINE_VOLUME_ML ( 200.0 ) +#define VENOUS_LINE_VOLUME_ML ( 200.0F ) +#define DATA_PUBLISH_COUNTER_START_COUNT 7 ///< Data publish counter start count. /// Defined states for the air trap controller state machine. typedef enum AirTrap_States @@ -52,7 +53,7 @@ // ********** private data ********** static AIR_TRAP_STATE_T airTrapControllerState; ///< Current state of air trap controller state machine. -static U32 airTrapDataPublicationTimerCounter = 0; ///< Used to schedule air trap data publication to CAN bus. +static U32 airTrapDataPublicationTimerCounter; ///< Used to schedule air trap data publication to CAN bus. /// Interval (in ms) at which to publish air trap data to CAN bus. static OVERRIDE_U32_T airTrapDataPublishInterval = { AIR_TRAP_DATA_PUB_INTERVAL, AIR_TRAP_DATA_PUB_INTERVAL, 0, 0 }; @@ -84,7 +85,7 @@ U32 i; resetAirTrap(); - airTrapIllegalLevelSensorsCtr = 0; + airTrapIllegalLevelSensorsCtr = DATA_PUBLISH_COUNTER_START_COUNT; for ( i = 0; i < NUM_OF_AIR_TRAP_LEVEL_SENSORS; i++ ) { @@ -182,10 +183,14 @@ ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_UPPER ) ) ) { if ( ++airTrapIllegalLevelSensorsCtr >= AIR_TRAP_ILLEGAL_LEVELS_PERSISTENCE ) + { -#ifndef DISABLE_ILLEGAL_AIR_TRAP_ALARM - activateAlarmNoData( ALARM_ID_AIR_TRAP_ILLEGAL_LEVELS ); +#ifndef _RELEASE_ + if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_ILLEGAL_AIR_TRAP_ALARM ) != SW_CONFIG_ENABLE_VALUE ) #endif + { + activateAlarmNoData( ALARM_ID_AIR_TRAP_ILLEGAL_LEVELS ); + } } } else @@ -215,9 +220,12 @@ if ( TRUE == didTimeout( fillStartTime, fillTimeoutMS ) ) { -#ifndef DISABLE_AIR_TRAP_LEVELING_ALARM - activateAlarmNoData( ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT ); +#ifndef _RELEASE_ + if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_AIR_TRAP_LEVELING_ALARM ) != SW_CONFIG_ENABLE_VALUE ) #endif + { + activateAlarmNoData( ALARM_ID_AIR_TRAP_FILL_DURING_TREATMENT ); + } } } }