Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -ra4e46c97c83207cc4babf4caad15160ff329507b -rfff308d96794e7df7e91149173c3760ff3fda10c --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision a4e46c97c83207cc4babf4caad15160ff329507b) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision fff308d96794e7df7e91149173c3760ff3fda10c) @@ -137,8 +137,9 @@ static F32 dialInFlowCalGain = 1.0; ///< dialysate flow calibration gain. static F32 dialInFlowCalOffset = 0.0; ///< dialysate flow calibration offset. -static OVERRIDE_U32_T dialInFlowDataPublishInterval = { DIAL_IN_FLOW_DATA_PUB_INTERVAL, DIAL_IN_FLOW_DATA_PUB_INTERVAL, DIAL_IN_FLOW_DATA_PUB_INTERVAL, 0 }; ///< interval (in ms) at which to publish dialIn flow data to CAN bus -static OVERRIDE_S32_T targetDialInFlowRate = { 0, 0, 0, 0 }; ///< requested dialIn flow rate +/// interval (in ms) at which to publish dialIn flow data to CAN bus +static OVERRIDE_U32_T dialInFlowDataPublishInterval = { DIAL_IN_FLOW_DATA_PUB_INTERVAL, DIAL_IN_FLOW_DATA_PUB_INTERVAL, DIAL_IN_FLOW_DATA_PUB_INTERVAL, 0 }; +static S32 targetDialInFlowRate = 0; ///< requested dialIn flow rate static OVERRIDE_F32_T measuredDialInFlowRate = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet flow rate static OVERRIDE_F32_T dialInPumpRotorSpeedRPM = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet pump rotor speed static OVERRIDE_F32_T dialInPumpSpeedRPM = { 0.0, 0.0, 0.0, 0 }; ///< measured dialysate inlet pump motor speed @@ -246,7 +247,7 @@ if ( flowRate <= MAX_DIAL_IN_FLOW_RATE ) { resetDialInFlowMovingAverage(); - targetDialInFlowRate.data = ( dir == MOTOR_DIR_FORWARD ? (S32)flowRate : (S32)flowRate * -1 ); + targetDialInFlowRate = ( dir == MOTOR_DIR_FORWARD ? (S32)flowRate : (S32)flowRate * -1 ); dialInPumpDirection = dir; dialInPumpControlMode = mode; // set PWM duty cycle target to an estimated initial target to ramp to based on target flow rate - then we'll control to flow when ramp completed @@ -301,7 +302,7 @@ *************************************************************************/ void signalDialInPumpHardStop( void ) { - targetDialInFlowRate.data = 0; + targetDialInFlowRate = 0; stopDialInPump(); dialInPumpState = DIAL_IN_PUMP_OFF_STATE; dialInPumpPWMDutyCyclePct = 0.0; @@ -446,7 +447,7 @@ DIAL_IN_PUMP_STATE_T result = DIAL_IN_PUMP_OFF_STATE; // if we've been given a flow rate, setup ramp up and transition to ramp up state - if ( getTargetDialInFlowRate() != 0 ) + if ( targetDialInFlowRate != 0 ) { // set initial PWM duty cycle dialInPumpPWMDutyCyclePctSet = DIP_PWM_ZERO_OFFSET + MAX_DIAL_IN_PUMP_PWM_STEP_UP_CHANGE; @@ -475,7 +476,7 @@ DIAL_IN_PUMP_STATE_T result = DIAL_IN_PUMP_RAMPING_UP_STATE; // have we been asked to stop the dialIn pump? - if ( 0 == getTargetDialInFlowRate() ) + if ( 0 == targetDialInFlowRate ) { // start ramp down to stop dialInPumpPWMDutyCyclePctSet -= MAX_DIAL_IN_PUMP_PWM_STEP_DN_CHANGE; @@ -567,7 +568,7 @@ { if ( dialInPumpControlModeSet == PUMP_CONTROL_MODE_CLOSED_LOOP ) { - F32 tgtFlow = (F32)getTargetDialInFlowRate(); + F32 tgtFlow = (F32)targetDialInFlowRate; F32 actFlow = getMeasuredDialInFlowRate(); F32 newPWM; @@ -675,27 +676,19 @@ return result; } - -/*********************************************************************//** - * @brief - * The getTargetDialInFlowRate function gets the current target dialIn flow - * rate. - * @details - * Inputs : targetDialInFlowRate - * Outputs : none - * @return the current target dialIn flow rate (in mL/min). - *************************************************************************/ + +/*********************************************************************//** + * @brief + * The getTargetDialInFlowRate function gets the target dialIn flow rate. + * @details + * Inputs : measuredDialInFlowRate + * Outputs : none + * @return the current dialIn target flow rate (in mL/min). + *************************************************************************/ S32 getTargetDialInFlowRate( void ) { - S32 result = targetDialInFlowRate.data; - - if ( OVERRIDE_KEY == targetDialInFlowRate.override ) - { - result = targetDialInFlowRate.ovData; - } - - return result; -} + return targetDialInFlowRate; +} /*********************************************************************//** * @brief @@ -817,7 +810,7 @@ // publish dialIn flow data on interval if ( ++dialInFlowDataPublicationTimerCounter >= getPublishDialInFlowDataInterval() ) { - S32 flowStPt = (S32)getTargetDialInFlowRate(); + S32 flowStPt = targetDialInFlowRate; F32 measFlow = getMeasuredDialInFlowRate(); F32 measRotSpd = getMeasuredDialInPumpRotorSpeed(); F32 measSpd = getMeasuredDialInPumpSpeed(); @@ -983,7 +976,7 @@ static void checkDialInPumpSpeeds( void ) { F32 measMotorSpeed = getMeasuredDialInPumpSpeed(); - S32 cmdRate = getTargetDialInFlowRate(); + S32 cmdRate = targetDialInFlowRate; // check for pump running while commanded off if ( 0 == cmdRate ) @@ -1325,7 +1318,7 @@ } if ( ctrlMode < NUM_OF_PUMP_CONTROL_MODES ) { - targetDialInFlowRate.data = value; + targetDialInFlowRate = value; result = setDialInPumpTargetFlowRate( abs(value), dir, (PUMP_CONTROL_MODE_T)ctrlMode ); } }