Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -rf3b83f75a19b975ad1abead662c8151a2907ac00 -r915d478dd9485e5475ba3ddd842f227009bc46a8 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision f3b83f75a19b975ad1abead662c8151a2907ac00) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 915d478dd9485e5475ba3ddd842f227009bc46a8) @@ -243,8 +243,17 @@ // TODO - any filtering required??? - // convert arterial pressure to mmHg - arterialPressure.data = ARTERIAL_PRESSURE_V_PER_BIT * ( (F32)(artPres) / ( ARTERIAL_PRESSURE_SENSITIVITY * ARTERIAL_PRESSURE_V_BIAS ) ); + // convert arterial pressure to mmHg if no alarm + if ( 0 == artPresAlarm ) + { + arterialPressure.data = ARTERIAL_PRESSURE_V_PER_BIT * ( (F32)(artPres) / ( ARTERIAL_PRESSURE_SENSITIVITY * ARTERIAL_PRESSURE_V_BIAS ) ); + } + else + { +#ifndef DISABLE_PRESSURE_CHECKS + SET_ALARM_WITH_1_U32_DATA( ALARM_ID_ARTERIAL_PRESSURE_SENSOR_FAULT, (U32)artPresAlarm ) +#endif + } // convert venous pressure to PSI venPresPSI = ( (F32)(venPres - VENOUS_PRESSURE_OFFSET) * (VENOUS_PRESSURE_MAX - VENOUS_PRESSURE_MIN) / (F32)VENOUS_PRESSURE_SCALE ) + VENOUS_PRESSURE_MIN; @@ -265,15 +274,7 @@ } } - // check for arterial pressure sensor alarm - if ( artPresAlarm != 0 ) - { -#ifndef DISABLE_PRESSURE_CHECKS - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_ARTERIAL_PRESSURE_SENSOR_FAULT, (U32)artPresAlarm ) -#endif - } - - // check for venous pressure sensor alarm + // check for venous pressure sensor alarm or in wrong (cmd) mode if ( ( VENOUS_PRESSURE_DIAG_CONDITION == venPresStatus ) || ( VENOUS_PRESSURE_CMD_MODE == venPresStatus ) ) { #ifndef DISABLE_PRESSURE_CHECKS @@ -317,7 +318,7 @@ F32 artLowLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT ); F32 artHighLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT ); - if ( artPres < artLowLimit ) // TODO - add persistence (code & requirement) + if ( artPres < artLowLimit ) { #ifndef DISABLE_PRESSURE_CHECKS checkPersistentAlarm( PERSISTENT_ALARM_ARTERIAL_PRESSURE_LOW, TRUE, artPres, artLowLimit ); @@ -358,7 +359,7 @@ F32 venLowLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT ); F32 venHighLimit = (F32)getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); - if ( venPres < venLowLimit ) // TODO - add persistence (code & requirement) + if ( venPres < venLowLimit ) { #ifndef DISABLE_PRESSURE_CHECKS checkPersistentAlarm( PERSISTENT_ALARM_VENOUS_PRESSURE_LOW, TRUE, venPres, venLowLimit );