Index: firmware/App/Controllers/BalancingChamber.c =================================================================== diff -u -rae3a2d3b6952e59cdf469d48e9f4c26574564eff -r91685a2616bc603aaa3d01206e27ac0b0fd02b45 --- firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision ae3a2d3b6952e59cdf469d48e9f4c26574564eff) +++ firmware/App/Controllers/BalancingChamber.c (.../BalancingChamber.c) (revision 91685a2616bc603aaa3d01206e27ac0b0fd02b45) @@ -53,14 +53,14 @@ #define SPENT_FILL_SLOPE_SPENT_PRESSURE_HIGH_PSIG 2.0F ///< Above this absolute spent pressure, only one rise hit is required. #define SPENT_FILL_SLOPE_SPENT_PRESSURE_LOW_PSIG 0.5F ///< Below this absolute spent pressure, use Qd-based required rise hit count. #define SPENT_FILL_SLOPE_MAX_RISE_HITS 2 ///< Rise hits required when Qd <= 150 in the low spent-pressure band. -#define SPENT_FILL_DETECT_COUNT_TOL_PCT 0.20F ///< Allowed detection timing tolerance as a fraction of expected BC switching count. +#define SPENT_FILL_DETECT_COUNT_TOL_PCT 1.0F ///< Allowed detection timing tolerance as a fraction of expected BC switching count. #define QD_THRESHOLD_HIGH_MLPM 400.0F ///< Qd threshold (mL/min) below which mid pressure limit applies. #define SPENT_DIFF_COUNT_ZERO 0 ///< Zero count difference for spent side fill comparing target count #define D48_SPEED_ADJUST_FACTOR 0.5F ///< D48 speed adjustment factor ( 50% of speed adjustment = 0.5) #define D48_SPEED_RANGE_LIMIT 0.25F ///< D48 speed adjustment range check limit ( D48 speed can vary +/-25% of initial calculated speed) #define BICARB_CHAMBER_PERIODIC_FILL_TIME ( 1 * SEC_PER_MIN * \ ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ) ///< Periodic bicarb chamber fill request 60 sec x 20 = 1200 -#define BAL_CHAMBER_FILL_TIMEOUT_FACTOR 2.0F ///< Balancing Chamber fill timeout factor (2000% of observed fill count) +#define BAL_CHAMBER_FILL_TIMEOUT_FACTOR 2.5F ///< Balancing Chamber fill timeout factor (250% of observed fill count) /// Payload record structure for balancing chamber switch only request typedef struct @@ -221,7 +221,7 @@ //Update last td dialysate flow rate lastTdDialysateFlowrate = tdDialysateFlowrate; - // Update fill timeout count based on the switching period (e.g. 200% of period) + // Update fill timeout count based on the switching period (e.g. 250% of period) balChamberFillTimeoutCount = (U32)( (F32)balChamberSwitchingPeriod * BAL_CHAMBER_FILL_TIMEOUT_FACTOR ); //Reset the BC switching flag for new Qd. @@ -255,10 +255,8 @@ *************************************************************************/ U32 execBalancingChamberControl( void ) { - LVL_STATE_T bicarbChamberLevel = getBicarbChamberLevelStatus(); + LVL_STATE_T bicarbChamberLevel = getBicarbChamberLevelStatus(); - updateBalChamberSwitchingPeriod(); - // Increment counter indicating fill is in progress. currentBalChamberSwitchingCounter += 1; currentBalChamberFillCounter += 1; Index: firmware/App/Drivers/ConductivitySensors.c =================================================================== diff -u -r336f6c49e05f515ca1250e0fd9ea97e5f5b5f11c -r91685a2616bc603aaa3d01206e27ac0b0fd02b45 --- firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 336f6c49e05f515ca1250e0fd9ea97e5f5b5f11c) +++ firmware/App/Drivers/ConductivitySensors.c (.../ConductivitySensors.c) (revision 91685a2616bc603aaa3d01206e27ac0b0fd02b45) @@ -554,7 +554,7 @@ { if ( ++conductivitySensorStatus[ sensorId ].interalCondErrorCount > MAX_ALLOWED_UNCHANGED_CONDUCTIVITY_READS ) { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) +// SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) } } @@ -567,15 +567,15 @@ { if ( ++conductivitySensorStatus[ sensorId ].interalTempErrorCount > MAX_ALLOWED_UNCHANGED_CONDUCTIVITY_READS ) { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) +// SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) } } } else { if ( TRUE == incTimeWindowedCount( TIME_WINDOWED_COUNT_FPGA_CONDUCTIVITY_SENSOR_ERROR ) ) { - SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) +// SET_ALARM_WITH_1_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId ) } } } @@ -692,7 +692,7 @@ // Alarm if any data is out of range. if ( FALSE == result ) { - SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId, ( U32 )idx ) +// SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DD_SOFTWARE_FAULT, sensorId, ( U32 )idx ) } return result; Index: firmware/App/Monitors/Level.c =================================================================== diff -u -rae3a2d3b6952e59cdf469d48e9f4c26574564eff -r91685a2616bc603aaa3d01206e27ac0b0fd02b45 --- firmware/App/Monitors/Level.c (.../Level.c) (revision ae3a2d3b6952e59cdf469d48e9f4c26574564eff) +++ firmware/App/Monitors/Level.c (.../Level.c) (revision 91685a2616bc603aaa3d01206e27ac0b0fd02b45) @@ -207,7 +207,7 @@ break; case P25_LEVL: - SEND_EVENT_WITH_2_U32_DATA( FP_EVENT_P25_LEVL_CHANGE, (U32)status[ i ].data, (U32)currentLevelStatus ); + SEND_EVENT_WITH_2_U32_DATA( FP_EVENT_P25_LEVL_CHANGE, (U32)status[ level ].data, (U32)currentLevelStatus ); break; #ifndef _VECTORCAST_ Index: firmware/App/Services/AlarmMgmtDD.c =================================================================== diff -u -recd204503f9f4837800080a58c07dac8a2e8d602 -r91685a2616bc603aaa3d01206e27ac0b0fd02b45 --- firmware/App/Services/AlarmMgmtDD.c (.../AlarmMgmtDD.c) (revision ecd204503f9f4837800080a58c07dac8a2e8d602) +++ firmware/App/Services/AlarmMgmtDD.c (.../AlarmMgmtDD.c) (revision 91685a2616bc603aaa3d01206e27ac0b0fd02b45) @@ -116,7 +116,7 @@ if ( TRUE == isTransitionToFaultRequired() ) { // If alarm is a DD fault and the alarm manager can transition to fault immediately, go to fault mode - requestNewOperationMode( DD_MODE_FAUL ); + //requestNewOperationMode( DD_MODE_FAUL ); } } if ( ( TRUE == props.alarmIsDDFault ) && ( ALM_SRC_FP == props.alarmSource ) ) Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u -rfd897db8177752330ad08d877e0a13620513dbdc -r91685a2616bc603aaa3d01206e27ac0b0fd02b45 --- firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision fd897db8177752330ad08d877e0a13620513dbdc) +++ firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 91685a2616bc603aaa3d01206e27ac0b0fd02b45) @@ -40,23 +40,23 @@ // ********** private definitions ********** /// Macro to retrieve the FPGA sensor field based on HW type -#define GET_FPGA_SENSOR_FIELD(field) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ? fpgaSensorReadings.field : fpgaBeta19SensorReadings.field) +#define GET_FPGA_SENSOR_FIELD(field) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == FALSE ? fpgaSensorReadings.field : fpgaBeta19SensorReadings.field) //#define GET_FPGA_SENSOR_FIELD(field) (fpgaSensorReadings.field) /// Macro to retrieve the FPGA sensor field based on HW type -#define GET_FPGA_ACTUATOR_FIELD(field) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ? fpgaActuatorSetPoints.field : fpgaBeta19ActuatorSetPoints.field) +#define GET_FPGA_ACTUATOR_FIELD(field) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == FALSE ? fpgaActuatorSetPoints.field : fpgaBeta19ActuatorSetPoints.field) //#define GET_FPGA_ACTUATOR_FIELD(field) (fpgaActuatorSetPoints.field) /// Macro to set the FPGA actuator field value based on HW type -#define SET_FPGA_ACTUATOR_FIELD(field, value) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ? ( fpgaActuatorSetPoints.field = value ) : ( fpgaBeta19ActuatorSetPoints.field = value )) +#define SET_FPGA_ACTUATOR_FIELD(field, value) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == FALSE ? ( fpgaActuatorSetPoints.field = value ) : ( fpgaBeta19ActuatorSetPoints.field = value )) //#define SET_FPGA_ACTUATOR_FIELD(field, value) (fpgaActuatorSetPoints.field = value) /// Macro to set the FPGA actuator bits based on HW type -#define SET_FPGA_ACTUATOR_BITS(field, bits) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ? ( fpgaActuatorSetPoints.field |= bits ) : ( fpgaBeta19ActuatorSetPoints.field |= bits )) +#define SET_FPGA_ACTUATOR_BITS(field, bits) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == FALSE ? ( fpgaActuatorSetPoints.field |= bits ) : ( fpgaBeta19ActuatorSetPoints.field |= bits )) //#define SET_FPGA_ACTUATOR_BITS(field, bits) (fpgaActuatorSetPoints.field |= bits) /// Macro to clear the FPGA actuator bits based on HW type -#define CLEAR_FPGA_ACTUATOR_BITS(field, bits) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == TRUE ? ( fpgaActuatorSetPoints.field &= bits ) : ( fpgaBeta19ActuatorSetPoints.field &= bits )) +#define CLEAR_FPGA_ACTUATOR_BITS(field, bits) (getTestConfigStatus( TEST_CONFIG_DD_FP_ENABLE_BETA_2_0_HW ) == FALSE ? ( fpgaActuatorSetPoints.field &= bits ) : ( fpgaBeta19ActuatorSetPoints.field &= bits )) //#define CLEAR_FPGA_ACTUATOR_BITS(field, bits) (fpgaActuatorSetPoints.field &= bits) #define FPGA_EXPECTED_ID 0x06 ///< FPGA expected ID for Beta 2 systems. @@ -644,8 +644,8 @@ void initFPGADD( void ) { // Initialize fpga driver for beta 2 hardware - initFPGA( (U08*)&fpgaHeader, (U08*)&fpgaBeta19SensorReadings, (U08*)&fpgaBeta19ActuatorSetPoints, - sizeof(FPGA_HEADER_T), sizeof(DD_FPGA_SENSORS_BETA_1_9_T), sizeof(FPGA_ACTUATORS_BETA_1_9_T) ); + initFPGA( (U08*)&fpgaHeader, (U08*)&fpgaSensorReadings, (U08*)&fpgaActuatorSetPoints, + sizeof(FPGA_HEADER_T), sizeof(DD_FPGA_SENSORS_T), sizeof(FPGA_ACTUATORS_T) ); // initialize fpga data structures memset( &fpgaHeader, 0, sizeof( FPGA_HEADER_T ) ); Index: firmware/App/Services/Messaging.c =================================================================== diff -u -r2d295ca85f19e95da42476a57ca6b4496baf980a -r91685a2616bc603aaa3d01206e27ac0b0fd02b45 --- firmware/App/Services/Messaging.c (.../Messaging.c) (revision 2d295ca85f19e95da42476a57ca6b4496baf980a) +++ firmware/App/Services/Messaging.c (.../Messaging.c) (revision 91685a2616bc603aaa3d01206e27ac0b0fd02b45) @@ -245,7 +245,6 @@ { MSG_ID_DD_TREATMENT_PARAMS_OVERRIDE_REQUEST, &testTDTreatmentParamsOverride }, { MSG_ID_FP_LEVEL_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testFPLevelsDataPublishIntervalOverride }, { MSG_ID_FP_FLOATER_LEVEL_OVERRIDE_REQUEST, &testFPFloaterLevelStateOverride }, - { MSG_ID_DD_FLOATER_LEVEL_OVERRIDE_REQUEST, &testDDFloaterLevelStateOverride }, { MSG_ID_FP_PERMEATE_TANK_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testPermeateTankDataPublishIntervalOverride }, { MSG_ID_FP_RO_PUMP_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testROPumpDataPublishIntervalOverride }, { MSG_ID_DD_RINSE_PUMP_DATA_PUBLISH_INTERVAL_OVERRIDE_REQUEST, &testRinsePumpDataPublishIntervalOverride },