Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r29a2c3c7d7618489c0ada9f98e1d30226b455392 -r2a3a47ca90ad19851a30c52f6999a56d5f578783 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 29a2c3c7d7618489c0ada9f98e1d30226b455392) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 2a3a47ca90ad19851a30c52f6999a56d5f578783) @@ -388,7 +388,6 @@ F32 venTemp = getTemperatureValue( TEMPSENSOR_VENOUS_PRESSURE_SENSOR ); U08 venReadCtr = getFPGAVenousPressureReadCounter(); -#ifndef USE_PBO_AS_PBA if ( ( ARTERIAL_PRESSURE_NORMAL_OP == artPresStatus ) && ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_ENABLE_DVT_ARTERIAL_PRESSURE_SENSOR ) ) ) { @@ -402,7 +401,6 @@ // Record arterial pressure sensor read counter for next time around lastArterialPressureReadCtr = artReadCtr; - // TODO if this is the right way, change the #defines to arterial arterialPressure.data = ( (F32)(rawArterialPres - ARTERIAL_PRESSURE_OFFSET) * (ARTERIAL_PRESSURE_MAX_PSI - ARTERIAL_PRESSURE_MIN_PSI) / (F32)ARTERIAL_PRESSURE_SCALE ) + ARTERIAL_PRESSURE_MIN_PSI; arterialPressure.data = arterialPressure.data * PSI_TO_MMHG; @@ -414,9 +412,8 @@ U08 artErrorCtr = getFPGAArterialPressureErrorCounter(); // Check for stale arterial pressure reading - // TODO why is this alarm venous pressure sensor? // TODO I think we should check the change of the error count not if it is greater than 0? - if ( FALSE == isPersistentAlarmTriggered( ALARM_ID_HD_VENOUS_PRESSURE_READ_TIMEOUT_ERROR, ( lastArterialPressureReadCtr == artReadCtr || artErrorCtr > 0 ) ) ) + if ( FALSE == isPersistentAlarmTriggered( ALARM_ID_HD_ARTERIAL_PRESSURE_READ_TIMEOUT_ERROR, ( lastArterialPressureReadCtr == artReadCtr || artErrorCtr > 0 ) ) ) { arterialPressure.data = ARTERIAL_PRESSURE_V_PER_BIT * ( rawArterialPres / ( ARTERIAL_PRESSURE_SENSITIVITY * ARTERIAL_PRESSURE_V_BIAS ) ) + getF32OverrideValue( &arterialPressureOffset ); @@ -443,8 +440,10 @@ } // Record venous pressure sensor read counter for next time around lastVenousPressureReadCtr = venReadCtr; + // Convert venous pressure to PSI and then mmHg venPresPSI = ( (F32)(venPres - VENOUS_PRESSURE_OFFSET) * (VENOUS_PRESSURE_MAX_PSI - VENOUS_PRESSURE_MIN_PSI) / (F32)VENOUS_PRESSURE_SCALE ) + VENOUS_PRESSURE_MIN_PSI; + // Convert venous pressure from PSI to mmHg if sensor status is normal if ( VENOUS_PRESSURE_NORMAL_OP == venPresStatus ) { @@ -453,7 +452,9 @@ // If venous pressure sensor status is not normal, fault else { +#ifndef _RELEASE_ if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_PRESSURE_CHECKS ) != SW_CONFIG_ENABLE_VALUE ) +#endif { // SET_ALARM_WITH_1_U32_DATA( ALARM_ID_VENOUS_PRESSURE_SENSOR_FAULT, (U32)venPresStatus ) // TODO - persistence? YES, need persistence - getting a stale data status. OR maybe speed up ADC in FPGA. } @@ -466,10 +467,6 @@ { SET_ALARM_WITH_1_F32_DATA( ALARM_ID_VENOUS_PRESSURE_SENSOR_FAULT, venTemp ) } -#else - arterialPressure.data = ( ( (F32)(venPres - VENOUS_PRESSURE_OFFSET) * (VENOUS_PRESSURE_MAX_PSI - VENOUS_PRESSURE_MIN_PSI) / (F32)VENOUS_PRESSURE_SCALE ) + VENOUS_PRESSURE_MIN_PSI ) * PSI_TO_MMHG; - venousPressure.data = 100.0; -#endif // Filter inline pressure readings filterInlinePressureReadings( getMeasuredArterialPressure(), getMeasuredVenousPressure() ); @@ -525,7 +522,8 @@ { F32 artPres = getFilteredArterialPressure(); - if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_ARTERIAL_PRESSURE_CHECK ) != SW_CONFIG_ENABLE_VALUE ) + // DEBUG_DENALI. FOR MAKING SURE THE ARTERIAL PRESSURE CHEKC DOES NOT LOOSE THE RACE + /*if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_ARTERIAL_PRESSURE_CHECK ) != SW_CONFIG_ENABLE_VALUE ) { // Check arterial pressure is in range if ( TRUE == isPersistentAlarmTriggered( ALARM_ID_HD_ARTERIAL_PRESSURE_OUT_OF_RANGE, @@ -563,7 +561,7 @@ isPersistentAlarmTriggered( ALARM_ID_ARTERIAL_PRESSURE_LOW, FALSE ); isPersistentAlarmTriggered( ALARM_ID_ARTERIAL_PRESSURE_HIGH, FALSE ); } - } + }*/ } /*********************************************************************//** @@ -871,15 +869,18 @@ { SELF_TEST_STATUS_T result = SELF_TEST_STATUS_PASSED; -#ifndef DISABLE_OCCLUSION_SELF_TEST - U32 const bpPressure = getMeasuredBloodPumpOcclusion(); - - if ( ( bpPressure <= CARTRIDGE_LOADED_THRESHOLD ) || ( bpPressure >= OCCLUSION_CARTRIDGE_LOADED_PRESSURE_READING_MAX ) ) +#ifndef _RELEASE_ + if ( getSoftwareConfigStatus( SW_CONFIG_DISABLE_OCCLUSION_SELF_TEST ) != SW_CONFIG_ENABLE_VALUE ) +#endif { - activateAlarmNoData( ALARM_ID_NO_CARTRIDGE_LOADED ); - result = SELF_TEST_STATUS_FAILED; + U32 const bpPressure = getMeasuredBloodPumpOcclusion(); + + if ( ( bpPressure <= CARTRIDGE_LOADED_THRESHOLD ) || ( bpPressure >= OCCLUSION_CARTRIDGE_LOADED_PRESSURE_READING_MAX ) ) + { + activateAlarmNoData( ALARM_ID_NO_CARTRIDGE_LOADED ); + result = SELF_TEST_STATUS_FAILED; + } } -#endif return result; }