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 ); Index: firmware/App/Modes/ModeTreatment.c =================================================================== diff -u -rf3b83f75a19b975ad1abead662c8151a2907ac00 -r915d478dd9485e5475ba3ddd842f227009bc46a8 --- firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision f3b83f75a19b975ad1abead662c8151a2907ac00) +++ firmware/App/Modes/ModeTreatment.c (.../ModeTreatment.c) (revision 915d478dd9485e5475ba3ddd842f227009bc46a8) @@ -779,19 +779,20 @@ // set overall result - are changes accepted? respRecord.accepted = result; - // if changes accepted, set new pressure limits and read back for transmit to UI. + // if changes accepted, set new pressure limits if ( TRUE == result ) { setTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT, data->artLowLimit ); setTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT, data->artHighLimit ); setTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT, data->venLowLimit ); setTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT, data->venHighLimit ); - respRecord.artLowLimit = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT ); - respRecord.artHighLimit = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT ); - respRecord.venLowLimit = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT ); - respRecord.venHighLimit = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); } + // read back limits for transmit to UI. + respRecord.artLowLimit = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_LOW_LIMIT ); + respRecord.artHighLimit = getTreatmentParameterS32( TREATMENT_PARAM_ART_PRESSURE_HIGH_LIMIT ); + respRecord.venLowLimit = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_LOW_LIMIT ); + respRecord.venHighLimit = getTreatmentParameterS32( TREATMENT_PARAM_VEN_PRESSURE_HIGH_LIMIT ); // send response sendChangePressureLimitsChangeResponse( &respRecord ); Index: firmware/App/Modes/ModeTreatmentParams.h =================================================================== diff -u -rf3b83f75a19b975ad1abead662c8151a2907ac00 -r915d478dd9485e5475ba3ddd842f227009bc46a8 --- firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision f3b83f75a19b975ad1abead662c8151a2907ac00) +++ firmware/App/Modes/ModeTreatmentParams.h (.../ModeTreatmentParams.h) (revision 915d478dd9485e5475ba3ddd842f227009bc46a8) @@ -32,7 +32,7 @@ // ********** public definitions ********** -#define MIN_PRESSURE_ALARM_LIMIT_DELTA_MMHG ( 25 ) ///< Minimum pressure alarm limit delta (in mmHg) +#define MIN_PRESSURE_ALARM_LIMIT_DELTA_MMHG ( 30 ) ///< Minimum pressure alarm limit delta (in mmHg) /// Record structure for a treatment parameters payload. typedef struct