Index: firmware/App/Controllers/BloodFlow.h =================================================================== diff -u -r20d0c02f453b6dae1884fb1b5ba542053852ffc1 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision 20d0c02f453b6dae1884fb1b5ba542053852ffc1) +++ firmware/App/Controllers/BloodFlow.h (.../BloodFlow.h) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -14,30 +14,30 @@ * @date (original) 07-Nov-2019 * ***************************************************************************/ - -#ifndef __BLOOD_FLOW_H__ -#define __BLOOD_FLOW_H__ - -#include "HDCommon.h" - -/** - * @defgroup BloodFlow BloodFlow - * @brief Blood Pump & Blood Flow controller/monitor module. Monitors the - * blood flow rate and controls the blood pump. - * - * @addtogroup BloodFlow - * @{ - */ - -// ********** public definitions ********** - -#define MAX_SET_BLOOD_FLOW_RATE 500 ///< Maximum blood flow rate (in mL/min). + +#ifndef __BLOOD_FLOW_H__ +#define __BLOOD_FLOW_H__ + +#include "HDCommon.h" + +/** + * @defgroup BloodFlow BloodFlow + * @brief Blood Pump & Blood Flow controller/monitor module. Monitors the + * blood flow rate and controls the blood pump. + * + * @addtogroup BloodFlow + * @{ + */ + +// ********** public definitions ********** + +#define MAX_SET_BLOOD_FLOW_RATE 500 ///< Maximum blood flow rate (in mL/min). #define MIN_SET_BLOOD_FLOW_RATE 100 ///< Minimum blood flow rate (in mL/min). -#define SALINE_BOLUS_FLOW_RATE 150 ///< Saline bolus flow rate (in mL/min). +#define SALINE_BOLUS_FLOW_RATE 250 ///< Saline bolus flow rate (in mL/min). -#define VOLUME_PER_BP_MOTOR_REV_ML 0.216F ///< Theoretical volume (mL) of blood/saline volume per motor revolution. +#define VOLUME_PER_BP_MOTOR_REV_ML 0.216F ///< Theoretical volume (mL) of blood/saline volume per motor revolution. #define BP_HALL_EDGE_COUNTS_PER_REV 48 ///< Number of hall sensor edge counts per motor revolution. - + /// Payload record structure for a blood pump data message. typedef struct { @@ -53,49 +53,49 @@ U32 rotorHall; ///< Rotor hall in counts. } BLOOD_PUMP_STATUS_PAYLOAD_T; -// ********** public function prototypes ********** - -void initBloodFlow( void ); -void execBloodFlowMonitor( void ); -void execBloodFlowController( void ); - +// ********** public function prototypes ********** + +void initBloodFlow( void ); +void execBloodFlowMonitor( void ); +void execBloodFlowController( void ); + BOOL setBloodPumpTargetFlowRate( U32 flowRate, MOTOR_DIR_T dir, PUMP_CONTROL_MODE_T mode ); -BOOL setBloodPumpTargetRPM( U32 rpm, MOTOR_DIR_T dir ); -void signalBloodPumpHardStop( void ); -void signalBloodPumpRotorHallSensor( void ); +BOOL setBloodPumpTargetRPM( U32 rpm, MOTOR_DIR_T dir ); +void signalBloodPumpHardStop( void ); +void signalBloodPumpRotorHallSensor( void ); BOOL homeBloodPump( void ); U32 getBloodPumpMotorCount( void ); U32 getBloodPumpRotorCount( void ); BOOL isBloodPumpRunning( void ); BOOL isBloodPumpRampComplete( void ); -void resetBloodPumpRotorCount( void ); - -SELF_TEST_STATUS_T execBloodFlowTest( void ); +void resetBloodPumpRotorCount( void ); -S32 getTargetBloodFlowRate( void ); -F32 getMeasuredBloodFlowRate( void ); +SELF_TEST_STATUS_T execBloodFlowTest( void ); + +S32 getTargetBloodFlowRate( void ); +F32 getMeasuredBloodFlowRate( void ); F32 getMeasuredBloodPumpRotorSpeed( void ); F32 getMeasuredBloodPumpSpeed( void ); F32 getMeasuredBloodPumpMCSpeed( void ); F32 getMeasuredBloodPumpMCCurrent( void ); -BOOL testSetBloodFlowDataPublishIntervalOverride( U32 value ); -BOOL testResetBloodFlowDataPublishIntervalOverride( void ); -BOOL testSetTargetBloodFlowRateOverride( S32 value, U32 bloodPumpControlMode ); -BOOL testSetMeasuredBloodFlowRateOverride( F32 value ); -BOOL testResetMeasuredBloodFlowRateOverride( void ); -BOOL testSetMeasuredBloodPumpRotorSpeedOverride( F32 value ); -BOOL testResetMeasuredBloodPumpRotorSpeedOverride( void ); -BOOL testSetMeasuredBloodPumpSpeedOverride( F32 value ); -BOOL testResetMeasuredBloodPumpSpeedOverride( void ); -BOOL testSetMeasuredBloodPumpMCSpeedOverride( F32 value ); -BOOL testResetMeasuredBloodPumpMCSpeedOverride( void ); -BOOL testSetMeasuredBloodPumpMCCurrentOverride( F32 value ); -BOOL testResetMeasuredBloodPumpMCCurrentOverride( void ); +BOOL testSetBloodFlowDataPublishIntervalOverride( U32 value ); +BOOL testResetBloodFlowDataPublishIntervalOverride( void ); +BOOL testSetTargetBloodFlowRateOverride( S32 value, U32 bloodPumpControlMode ); +BOOL testSetMeasuredBloodFlowRateOverride( F32 value ); +BOOL testResetMeasuredBloodFlowRateOverride( void ); +BOOL testSetMeasuredBloodPumpRotorSpeedOverride( F32 value ); +BOOL testResetMeasuredBloodPumpRotorSpeedOverride( void ); +BOOL testSetMeasuredBloodPumpSpeedOverride( F32 value ); +BOOL testResetMeasuredBloodPumpSpeedOverride( void ); +BOOL testSetMeasuredBloodPumpMCSpeedOverride( F32 value ); +BOOL testResetMeasuredBloodPumpMCSpeedOverride( void ); +BOOL testSetMeasuredBloodPumpMCCurrentOverride( F32 value ); +BOOL testResetMeasuredBloodPumpMCCurrentOverride( void ); BOOL testSetBloodPumpRotorCountOverride( U32 value ); BOOL testResetBloodPumpRotorCountOverride( void ); BOOL testSetBloodPumpTargetDutyCycle( F32 value ); - -/**@}*/ - -#endif + +/**@}*/ + +#endif Index: firmware/App/Controllers/PresOccl.c =================================================================== diff -u -r8121bf62592934e01f365a973ac813c3d4748cda -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 8121bf62592934e01f365a973ac813c3d4748cda) +++ firmware/App/Controllers/PresOccl.c (.../PresOccl.c) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -79,7 +79,7 @@ #define VENOUS_PRESSURE_MAX_MMHG ( 2000.0F ) ///< Maximum venous pressure reading (in mmHg) for range check. #define VENOUS_PRESSURE_MIN_MMHG ( -1500.0F ) ///< Minimum venous pressure reading (in mmHg) for range check. #define VENOUS_PRESSURE_LIMIT_MAX_MMHG ( 400.0F ) ///< Maximum venous pressure limit (in mmHg). -#define VENOUS_PRESSURE_LIMIT_MIN_MMHG ( 20.0F ) ///< Minimum venous pressure limit (in mmHg). +#define VENOUS_PRESSURE_LIMIT_MIN_MMHG ( 0.0F ) ///< Minimum venous pressure limit (in mmHg). #define VENOUS_PRESSURE_OCCL_OFFSET_MMHG ( 50.0F ) ///< Venous pressure occlusion threshold offset from max alarm limit (in mmHg). #define VENOUS_PRESSURE_EXEMPTION_PERIOD ( ( 2 * MS_PER_SECOND ) / \ TASK_GENERAL_INTERVAL ) ///< Venous pressure low exemption period (in task interval) after fill for all blood flow rate Index: firmware/App/Modes/BloodPrime.c =================================================================== diff -u -r736cc5b56cc9c784ab1d8fc8687a73d190c35759 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision 736cc5b56cc9c784ab1d8fc8687a73d190c35759) +++ firmware/App/Modes/BloodPrime.c (.../BloodPrime.c) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -39,7 +39,7 @@ #define MIN_RAMP_TIME_SEC 60 ///< Minimum ramp time for blood prime (in seconds). /// Initial flow rate for blood pump when starting blood prime operation. -#define BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN 100 +#define BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN 250 /// Interval at which blood prime ramping is controlled. static const U32 BLOOD_PRIME_RAMPING_INTERVAL = ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ); @@ -85,6 +85,8 @@ void initBloodPrime( void ) { U32 setBPRate = getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ); + F32 rampRateSpan = 0.0F; + F32 estRampSeconds = 0.0F; bloodPrimeState = BLOOD_PRIME_RAMP_STATE; bloodPrimeRampControlTimerCtr = 0; @@ -94,22 +96,16 @@ bloodPrimeTargetVolume_mL = (F32)TUBING_BLOOD_PRIME_VOLUME_ML + (F32)getDialyzerBloodVolume(); bloodPrimeRampFlowRate_mL_min = (F32)BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN; + // Calculate BP ramp step size - if ( setBPRate <= BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ) + rampRateSpan = (F32)( setBPRate - BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ); + estRampSeconds = ( ( bloodPrimeTargetVolume_mL / (F32)setBPRate + bloodPrimeTargetVolume_mL / (F32)BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ) / 2.0 ) * (F32)SEC_PER_MIN; + + if ( estRampSeconds < (F32)MIN_RAMP_TIME_SEC ) { - bloodPrimeRampStep_mL = 0.0; + estRampSeconds = (F32)MIN_RAMP_TIME_SEC; } - else - { - F32 rampRateSpan = (F32)( setBPRate - BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ); - F32 estRampSeconds = ( ( bloodPrimeTargetVolume_mL / (F32)setBPRate + bloodPrimeTargetVolume_mL / (F32)BLOOD_PRIME_INIT_BP_FLOW_RATE_ML_MIN ) / 2.0 ) * (F32)SEC_PER_MIN; - - if ( estRampSeconds < (F32)MIN_RAMP_TIME_SEC ) - { - estRampSeconds = (F32)MIN_RAMP_TIME_SEC; - } - bloodPrimeRampStep_mL = rampRateSpan / estRampSeconds; - } + bloodPrimeRampStep_mL = rampRateSpan / estRampSeconds; } /*********************************************************************//** Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -rec17ff0ee8477fde41197b5cadb5b665cf56fd75 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision ec17ff0ee8477fde41197b5cadb5b665cf56fd75) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -42,7 +42,7 @@ #define MAX_TOTAL_ADDITIONAL_RINSEBACK_VOLUME_ML 300.0F ///< Maximum total additional rinseback volume allowed : all additionals (in mL). #define TARGET_ADDITIONAL_RINSEBACK_VOLUME_ML 50.0F ///< Target rinseback volume for an additional volume request (in mL). #define RINSEBACK_FLOW_RATE_ADJ_ML_MIN 25 ///< Adjustment amount (in mL/min) to apply when user requests increase/decrease in flow rate. -#define DEFAULT_RINSEBACK_FLOW_RATE_ML_MIN 200 ///< Default rinseback flow rate (in mL/min). +#define DEFAULT_RINSEBACK_FLOW_RATE_ML_MIN 250 ///< Default rinseback flow rate (in mL/min). #define MIN_RINSEBACK_FLOW_RATE_ML_MIN 100 ///< Minimum rinseback flow rate (in mL/min). #define MAX_RINSEBACK_FLOW_RATE_ML_MIN 300 ///< Maximum rinseback flow rate (in mL/min). #define DEFAULT_FILL_RESERVOIR_TO_VOLUME_ML 1500 ///< default Fill reservoir to this volume (in mL). Index: firmware/App/Modes/TreatmentEnd.c =================================================================== diff -u -r736cc5b56cc9c784ab1d8fc8687a73d190c35759 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 736cc5b56cc9c784ab1d8fc8687a73d190c35759) +++ firmware/App/Modes/TreatmentEnd.c (.../TreatmentEnd.c) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -36,8 +36,6 @@ /// Interval at which treatment end progress is to be published to UI. #define TREATMENT_END_DATA_PUBLISH_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) -/// Target flow rate for blood while waiting for user to initiate final rinseback. -#define TX_END_BP_FLOW_RATE_ML_MIN 100 /// Max time to wait for user to initiate final rinseback. static const U32 TX_END_TIMEOUT_MS = ( ( 10 * 60 * MS_PER_SECOND ) / TASK_GENERAL_INTERVAL ); @@ -149,7 +147,7 @@ setValvePosition( VBA, VALVE_POSITION_B_OPEN ); setValvePosition( VBV, VALVE_POSITION_B_OPEN ); // Start blood pump at Tx End slow flow rate - setBloodPumpTargetFlowRate( TX_END_BP_FLOW_RATE_ML_MIN, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); + setBloodPumpTargetFlowRate( getTreatmentParameterU32( TREATMENT_PARAM_BLOOD_FLOW ), MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); bloodSittingTimerCtr = 0; // Continue air trap leveling control startAirTrapControl(); Index: vectorcast/Hercules_RM46_HD_Project/environment/AIRTRAP/AIRTRAP.tst =================================================================== diff -u -r3c83df47e1ceb95e736322f79d85b707fdeac099 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- vectorcast/Hercules_RM46_HD_Project/environment/AIRTRAP/AIRTRAP.tst (.../AIRTRAP.tst) (revision 3c83df47e1ceb95e736322f79d85b707fdeac099) +++ vectorcast/Hercules_RM46_HD_Project/environment/AIRTRAP/AIRTRAP.tst (.../AIRTRAP.tst) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -721,6 +721,7 @@ TEST.VALUE:AirTrap.<>.pendingStopAirTrapController:0 TEST.VALUE:AirTrap.handleAirTrapValveClosedState.return:AIR_TRAP_VALVE_CLOSED_STATE TEST.VALUE:AirTrap.getAirTrapLevel.return:AIR_TRAP_LEVEL_FLUID +TEST.VALUE:uut_prototype_stubs.getValveAirTrapStatus.return:STATE_OPEN TEST.EXPECTED:AirTrap.handleAirTrapValveClosedState.return:AIR_TRAP_VALVE_CLOSED_STATE TEST.END @@ -1187,32 +1188,6 @@ -- Subprogram: handleAirTrapValveOpenState --- Test Case: handleAirTrapValveOpenState.001 -TEST.UNIT:AirTrap -TEST.SUBPROGRAM:handleAirTrapValveOpenState -TEST.NEW -TEST.NAME:handleAirTrapValveOpenState.001 -TEST.MCDC_BASIS_PATH:4 of 4 -TEST.NOTES: -This is an automatically generated test case. - Test Path 4 - (1) if ((1) == pendingStopAirTrapController) ==> FALSE - (2) if ((AIR_TRAP_LEVEL_FLUID) == getAirTrapLevel(AIR_TRAP_LEVEL_SENSOR_UPPER)) ==> TRUE - Row number 1 forms a pair with Row 2 for Condition #2, subcondition "a". - Condition a ==> TRUE - Test Case Generation Notes: -TEST.END_NOTES: -TEST.STUB:AirTrap.getAirTrapLevel -TEST.STUB:AirTrap.getRawAirTrapLevel -TEST.VALUE:AirTrap.<>.pendingStopAirTrapController:0 -TEST.VALUE:AirTrap.handleAirTrapValveOpenState.return:AIR_TRAP_VALVE_OPEN_STATE -TEST.VALUE:AirTrap.getAirTrapLevel.return:AIR_TRAP_LEVEL_FLUID -TEST.VALUE:AirTrap.getRawAirTrapLevel.return:AIR_TRAP_LEVEL_FLUID -TEST.VALUE:uut_prototype_stubs.setValveAirTrap.state:STATE_CLOSED -TEST.EXPECTED:AirTrap.<>.pendingStopAirTrapController:0 -TEST.EXPECTED:AirTrap.handleAirTrapValveOpenState.return:AIR_TRAP_VALVE_CLOSED_STATE -TEST.END - -- Test Case: handleAirTrapValveOpenState_GoToClosed TEST.UNIT:AirTrap TEST.SUBPROGRAM:handleAirTrapValveOpenState @@ -1223,6 +1198,7 @@ TEST.VALUE:AirTrap.<>.airTrapLevels[AIR_TRAP_LEVEL_SENSOR_UPPER].data:1 TEST.VALUE:AirTrap.<>.pendingStartAirTrapController:0 TEST.VALUE:AirTrap.<>.pendingStopAirTrapController:1 +TEST.VALUE:uut_prototype_stubs.isBloodPumpRunning.return:1 TEST.EXPECTED:AirTrap.<>.pendingStopAirTrapController:0 TEST.END @@ -1253,6 +1229,58 @@ TEST.EXPECTED:AirTrap.handleAirTrapValveOpenState.return:AIR_TRAP_MANUAL_CONTROL_STATE TEST.END +-- Test Case: handleAirTrapValveOpenState_blood_pump_not_running +TEST.UNIT:AirTrap +TEST.SUBPROGRAM:handleAirTrapValveOpenState +TEST.NEW +TEST.NAME:handleAirTrapValveOpenState_blood_pump_not_running +TEST.MCDC_BASIS_PATH:4 of 4 +TEST.NOTES: +This is an automatically generated test case. + Test Path 4 + (1) if ((1) == pendingStopAirTrapController) ==> FALSE + (2) if ((AIR_TRAP_LEVEL_FLUID) == getAirTrapLevel(AIR_TRAP_LEVEL_SENSOR_UPPER)) ==> TRUE + Row number 1 forms a pair with Row 2 for Condition #2, subcondition "a". + Condition a ==> TRUE + Test Case Generation Notes: +TEST.END_NOTES: +TEST.STUB:AirTrap.getAirTrapLevel +TEST.STUB:AirTrap.getRawAirTrapLevel +TEST.VALUE:AirTrap.<>.pendingStopAirTrapController:0 +TEST.VALUE:AirTrap.handleAirTrapValveOpenState.return:AIR_TRAP_VALVE_OPEN_STATE +TEST.VALUE:AirTrap.getAirTrapLevel.return:AIR_TRAP_LEVEL_FLUID +TEST.VALUE:AirTrap.getRawAirTrapLevel.return:AIR_TRAP_LEVEL_FLUID +TEST.VALUE:uut_prototype_stubs.setValveAirTrap.state:STATE_CLOSED +TEST.EXPECTED:AirTrap.<>.pendingStopAirTrapController:0 +TEST.EXPECTED:AirTrap.handleAirTrapValveOpenState.return:AIR_TRAP_VALVE_CLOSED_STATE +TEST.END + +-- Test Case: handleAirTrapValveOpenState_blood_pump_running +TEST.UNIT:AirTrap +TEST.SUBPROGRAM:handleAirTrapValveOpenState +TEST.NEW +TEST.NAME:handleAirTrapValveOpenState_blood_pump_running +TEST.NOTES: +This is an automatically generated test case. + Test Path 4 + (1) if ((1) == pendingStopAirTrapController) ==> FALSE + (2) if ((AIR_TRAP_LEVEL_FLUID) == getAirTrapLevel(AIR_TRAP_LEVEL_SENSOR_UPPER)) ==> TRUE + Row number 1 forms a pair with Row 2 for Condition #2, subcondition "a". + Condition a ==> TRUE + Test Case Generation Notes: +TEST.END_NOTES: +TEST.STUB:AirTrap.getAirTrapLevel +TEST.STUB:AirTrap.getRawAirTrapLevel +TEST.VALUE:AirTrap.<>.pendingStopAirTrapController:0 +TEST.VALUE:AirTrap.handleAirTrapValveOpenState.return:AIR_TRAP_VALVE_OPEN_STATE +TEST.VALUE:AirTrap.getAirTrapLevel.return:AIR_TRAP_LEVEL_FLUID +TEST.VALUE:AirTrap.getRawAirTrapLevel.return:AIR_TRAP_LEVEL_FLUID +TEST.VALUE:uut_prototype_stubs.isBloodPumpRunning.return:1 +TEST.VALUE:uut_prototype_stubs.setValveAirTrap.state:STATE_CLOSED +TEST.EXPECTED:AirTrap.<>.pendingStopAirTrapController:0 +TEST.EXPECTED:AirTrap.handleAirTrapValveOpenState.return:AIR_TRAP_VALVE_CLOSED_STATE +TEST.END + -- Subprogram: initAirTrap -- Test Case: initAirTrap_NominalPath Index: vectorcast/Hercules_RM46_HD_Project/environment/BLOODPRIME/BLOODPRIME.tst =================================================================== diff -u -r143ab6b8f95977e266eba6439689d561811437b7 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- vectorcast/Hercules_RM46_HD_Project/environment/BLOODPRIME/BLOODPRIME.tst (.../BLOODPRIME.tst) (revision 143ab6b8f95977e266eba6439689d561811437b7) +++ vectorcast/Hercules_RM46_HD_Project/environment/BLOODPRIME/BLOODPRIME.tst (.../BLOODPRIME.tst) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -190,47 +190,36 @@ -- Subprogram: initBloodPrime --- Test Case: initBloodPrime.001 +-- Test Case: initBloodPrime_<_60_seconds TEST.UNIT:BloodPrime TEST.SUBPROGRAM:initBloodPrime TEST.NEW -TEST.NAME:initBloodPrime.001 -TEST.VALUE:BloodPrime.<>.bloodPrimeRampStep_mL:42.0 -TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.return:80 +TEST.NAME:initBloodPrime_<_60_seconds +TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.param:TREATMENT_PARAM_BLOOD_FLOW +TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.return:350 +TEST.VALUE:uut_prototype_stubs.getDialyzerBloodVolume.return:100 TEST.EXPECTED:BloodPrime.<>.bloodPrimeState:BLOOD_PRIME_RAMP_STATE -TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampStep_mL:0.0 +TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampFlowRate_mL_min:250.0 +TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampStep_mL:1.66667 +TEST.EXPECTED:BloodPrime.<>.bloodPrimeTargetVolume_mL:206.6 +TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampControlTimerCtr:0 +TEST.EXPECTED:BloodPrime.<>.bloodPrimePublishTimerCtr:18 TEST.END --- Test Case: initBloodPrime.002 +-- Test Case: initBloodPrime_>_60_seconds TEST.UNIT:BloodPrime TEST.SUBPROGRAM:initBloodPrime TEST.NEW -TEST.NAME:initBloodPrime.002 -TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.return:1000 -TEST.EXPECTED:BloodPrime.<>.bloodPrimeState:BLOOD_PRIME_RAMP_STATE -TEST.END - --- Test Case: initBloodPrime.003 -TEST.UNIT:BloodPrime -TEST.SUBPROGRAM:initBloodPrime -TEST.NEW -TEST.NAME:initBloodPrime.003 -TEST.MCDC_BASIS_PATH:2 of 4 -TEST.NOTES: -This is an automatically generated test case. - Test Path 2 - (1) if (setBPRate <= (100)) ==> TRUE - Row number 1 forms a pair with Row 2 for Condition #1, subcondition "a". - Condition a ==> TRUE - Test Case Generation Notes: -TEST.END_NOTES: -TEST.VALUE:BloodPrime.<>.bloodPrimeRampStep_mL:45.0 +TEST.NAME:initBloodPrime_>_60_seconds TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.param:TREATMENT_PARAM_BLOOD_FLOW -TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.return:120 -TEST.VALUE:uut_prototype_stubs.getDialyzerBloodVolume.return:82 +TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.return:350 +TEST.VALUE:uut_prototype_stubs.getDialyzerBloodVolume.return:400 TEST.EXPECTED:BloodPrime.<>.bloodPrimeState:BLOOD_PRIME_RAMP_STATE -TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampStep_mL:0.192808 -TEST.EXPECTED:uut_prototype_stubs.getTreatmentParameterU32.param:TREATMENT_PARAM_BLOOD_FLOW +TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampFlowRate_mL_min:250.0 +TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampStep_mL:0.959556 +TEST.EXPECTED:BloodPrime.<>.bloodPrimeTargetVolume_mL:506.6 +TEST.EXPECTED:BloodPrime.<>.bloodPrimeRampControlTimerCtr:0 +TEST.EXPECTED:BloodPrime.<>.bloodPrimePublishTimerCtr:18 TEST.END -- Subprogram: publishBloodPrimeData Index: vectorcast/Hercules_RM46_HD_Project/environment/BUBBLE/BUBBLE.tst =================================================================== diff -u -r202a7e6c312e5dc5b85c0d2a30689c6d35a4358b -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- vectorcast/Hercules_RM46_HD_Project/environment/BUBBLE/BUBBLE.tst (.../BUBBLE.tst) (revision 202a7e6c312e5dc5b85c0d2a30689c6d35a4358b) +++ vectorcast/Hercules_RM46_HD_Project/environment/BUBBLE/BUBBLE.tst (.../BUBBLE.tst) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -928,19 +928,11 @@ TEST.SUBPROGRAM:testSetBubbleStatusOverride TEST.NEW TEST.NAME:testSetBubbleStatusOverride.003 -TEST.MCDC_BASIS_PATH:4 of 4 -TEST.NOTES: -This is an automatically generated test case. - Test Path 4 - (1) if (status < (NUM_OF_BUBBLE_STATUS)) ==> TRUE - (2) if ((1) == isTestingActivated()) ==> TRUE - Row number 1 forms a pair with Row 2 for Condition #2, subcondition "a". - Condition a ==> TRUE - Test Case Generation Notes: -TEST.END_NOTES: -TEST.VALUE:Bubble.testSetBubbleStatusOverride.status:<> -TEST.VALUE:Bubble.testSetBubbleStatusOverride.bubble:<> +TEST.VALUE:Bubble.testSetBubbleStatusOverride.status:BUBBLE_NOT_DETECTED +TEST.VALUE:Bubble.testSetBubbleStatusOverride.bubble:ADV TEST.VALUE:uut_prototype_stubs.isTestingActivated.return:1 +TEST.EXPECTED:Bubble.<>.bubblesStatus[ADV].ovData:1 +TEST.EXPECTED:Bubble.<>.bubblesStatus[ADV].override:0xCCC33C33 TEST.EXPECTED:Bubble.testSetBubbleStatusOverride.return:1 TEST.END @@ -949,6 +941,14 @@ TEST.SUBPROGRAM:testSetBubbleStatusOverride TEST.NEW TEST.NAME:testSetBubbleStatusOverride.004 +TEST.IMPORT_FAILURES: +(E) @LINE: 960 TEST.VALUE:Bubble.testSetBubbleStatusOverride.status:BUBBLE_NOT_DETECTED + >>> Warning: Value already set + >>> Previous value <> ignored +(E) @LINE: 961 TEST.VALUE:Bubble.testSetBubbleStatusOverride.bubble:NUM_OF_BUBBLES + >>> Warning: Value already set + >>> Previous value <> ignored +TEST.END_IMPORT_FAILURES: TEST.NOTES: This is an automatically generated test case. Test Path 2 @@ -959,6 +959,7 @@ TEST.END_NOTES: TEST.VALUE:Bubble.testSetBubbleStatusOverride.status:BUBBLE_NOT_DETECTED TEST.VALUE:Bubble.testSetBubbleStatusOverride.bubble:NUM_OF_BUBBLES +TEST.VALUE:uut_prototype_stubs.isTestingActivated.return:1 TEST.EXPECTED:Bubble.testSetBubbleStatusOverride.return:0 TEST.END Index: vectorcast/Hercules_RM46_HD_Project/environment/DIALYSIS/DIALYSIS.tst =================================================================== diff -u -rfb714597ad515d3774d69b94808f065788504724 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- vectorcast/Hercules_RM46_HD_Project/environment/DIALYSIS/DIALYSIS.tst (.../DIALYSIS.tst) (revision fb714597ad515d3774d69b94808f065788504724) +++ vectorcast/Hercules_RM46_HD_Project/environment/DIALYSIS/DIALYSIS.tst (.../DIALYSIS.tst) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -1872,7 +1872,7 @@ TEST.EXPECTED:Dialysis.<>.currentSalineBolusState:SALINE_BOLUS_STATE_WAIT_FOR_PUMPS_STOP TEST.EXPECTED:Dialysis.<>.bolusSalineLastVolumeTimeStamp:1000000 TEST.EXPECTED:Dialysis.handleSalineBolusWait4Pumps2Stop.return:SALINE_BOLUS_STATE_IN_PROGRESS -TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:150 +TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:250 TEST.EXPECTED:uut_prototype_stubs.setDialInPumpTargetFlowRate.flowRate:250 TEST.EXPECTED:uut_prototype_stubs.setValvePosition.valve:VDI,VDO,VBA TEST.EXPECTED:uut_prototype_stubs.setValvePosition.position:(3)VALVE_POSITION_C_CLOSE Index: vectorcast/Hercules_RM46_HD_Project/environment/PRESOCCL/PRESOCCL.tst =================================================================== diff -u -rc52b3819ee809d95afab1ebfe871091ca0dd5e1a -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- vectorcast/Hercules_RM46_HD_Project/environment/PRESOCCL/PRESOCCL.tst (.../PRESOCCL.tst) (revision c52b3819ee809d95afab1ebfe871091ca0dd5e1a) +++ vectorcast/Hercules_RM46_HD_Project/environment/PRESOCCL/PRESOCCL.tst (.../PRESOCCL.tst) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -2368,7 +2368,7 @@ TEST.EXPECTED:PresOccl.<>.currentArterialMaxLimit:100 TEST.EXPECTED:PresOccl.<>.currentArterialMinLimit:-300 TEST.EXPECTED:PresOccl.<>.currentVenousMaxLimit:400 -TEST.EXPECTED:PresOccl.<>.currentVenousMinLimit:20 +TEST.EXPECTED:PresOccl.<>.currentVenousMinLimit:0 TEST.END -- Test Case: determineArtVenPressureLimits.002 @@ -4519,7 +4519,7 @@ TEST.EXPECTED:PresOccl.<>.currentArterialMaxLimit:100 TEST.EXPECTED:PresOccl.<>.currentArterialMinLimit:-300 TEST.EXPECTED:PresOccl.<>.currentVenousMaxLimit:400 -TEST.EXPECTED:PresOccl.<>.currentVenousMinLimit:20 +TEST.EXPECTED:PresOccl.<>.currentVenousMinLimit:0 TEST.END -- Subprogram: signalInitiatePressureStabilization Index: vectorcast/Hercules_RM46_HD_Project/environment/RINSEBACK/RINSEBACK.tst =================================================================== diff -u -r5cd07dbbd59e5a5d901dc620cdf2ae26e912444b -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- vectorcast/Hercules_RM46_HD_Project/environment/RINSEBACK/RINSEBACK.tst (.../RINSEBACK.tst) (revision 5cd07dbbd59e5a5d901dc620cdf2ae26e912444b) +++ vectorcast/Hercules_RM46_HD_Project/environment/RINSEBACK/RINSEBACK.tst (.../RINSEBACK.tst) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -1947,7 +1947,7 @@ TEST.EXPECTED:Rinseback.<>.rinsebackAdditionalTimerCtr:0 TEST.EXPECTED:Rinseback.<>.additionalRinsebackRequested:0 TEST.EXPECTED:Rinseback.<>.recircRequested:0 -TEST.EXPECTED:Rinseback.setupForRinsebackDelivery.rate:200 +TEST.EXPECTED:Rinseback.setupForRinsebackDelivery.rate:250 TEST.EXPECTED:Rinseback.handleRinsebackStoppedState.return:RINSEBACK_RUN_ADDITIONAL_STATE TEST.END Index: vectorcast/Hercules_RM46_HD_Project/environment/TREATMENTEND/TREATMENTEND.tst =================================================================== diff -u -r1ca641496cdacfdb77dcfc82c8284c3b7afe4610 -r887e9a3dfbce1255c6469d33e49afe191af21d25 --- vectorcast/Hercules_RM46_HD_Project/environment/TREATMENTEND/TREATMENTEND.tst (.../TREATMENTEND.tst) (revision 1ca641496cdacfdb77dcfc82c8284c3b7afe4610) +++ vectorcast/Hercules_RM46_HD_Project/environment/TREATMENTEND/TREATMENTEND.tst (.../TREATMENTEND.tst) (revision 887e9a3dfbce1255c6469d33e49afe191af21d25) @@ -110,7 +110,7 @@ TEST.NAME:execTreatmentEnd.007 TEST.STUB:TreatmentEnd.handleTxEndWait4RinsebackState TEST.VALUE:TreatmentEnd.<>.txEndTimerCtr:1000000000 -TEST.VALUE:TreatmentEnd.<>.txEndAlarmRinsebackRequested:TRUE +TEST.VALUE:TreatmentEnd.<>.txEndAlarmRinsebackRequested:MACRO=TRUE TEST.VALUE:TreatmentEnd.handleTxEndWait4RinsebackState.return:TREATMENT_END_WAIT_FOR_RINSEBACK_STATE TEST.EXPECTED:TreatmentEnd.<>.treatmentEndState:TREATMENT_END_WAIT_FOR_RINSEBACK_STATE TEST.END @@ -648,10 +648,12 @@ TEST.VALUE:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:100 TEST.VALUE:uut_prototype_stubs.setBloodPumpTargetFlowRate.dir:MOTOR_DIR_FORWARD TEST.VALUE:uut_prototype_stubs.setBloodPumpTargetFlowRate.mode:PUMP_CONTROL_MODE_CLOSED_LOOP +TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.param:TREATMENT_PARAM_BLOOD_FLOW +TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.return:450 TEST.VALUE:uut_prototype_stubs.setValvePosition.valve:VBA,VBV TEST.VALUE:uut_prototype_stubs.setValvePosition.position:VALVE_POSITION_B_OPEN TEST.EXPECTED:TreatmentEnd.<>.bloodSittingTimerCtr:0 -TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:100 +TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:450 TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.dir:MOTOR_DIR_FORWARD TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.mode:PUMP_CONTROL_MODE_CLOSED_LOOP TEST.EXPECTED:uut_prototype_stubs.setValvePosition.valve:VBA,VBV @@ -753,11 +755,13 @@ TEST.VALUE:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:100 TEST.VALUE:uut_prototype_stubs.setBloodPumpTargetFlowRate.dir:MOTOR_DIR_FORWARD TEST.VALUE:uut_prototype_stubs.setBloodPumpTargetFlowRate.mode:PUMP_CONTROL_MODE_CLOSED_LOOP +TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.param:TREATMENT_PARAM_BLOOD_FLOW +TEST.VALUE:uut_prototype_stubs.getTreatmentParameterU32.return:450 TEST.VALUE:uut_prototype_stubs.setValvePosition.valve:VDI,VDO,VBA,VBV TEST.VALUE:uut_prototype_stubs.setValvePosition.position:(2)VALVE_POSITION_C_CLOSE,(2)VALVE_POSITION_B_OPEN TEST.EXPECTED:uut_prototype_stubs.setAlarmUserActionEnabled.action:ALARM_USER_ACTION_RESUME,ALARM_USER_ACTION_RINSEBACK,ALARM_USER_ACTION_END_TREATMENT TEST.EXPECTED:uut_prototype_stubs.setAlarmUserActionEnabled.enabled:0,(2)1 -TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:100 +TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.flowRate:450 TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.dir:MOTOR_DIR_FORWARD TEST.EXPECTED:uut_prototype_stubs.setBloodPumpTargetFlowRate.mode:PUMP_CONTROL_MODE_CLOSED_LOOP TEST.EXPECTED:uut_prototype_stubs.setValvePosition.valve:VDI,VDO,VBA,VBV