Index: firmware/App/Controllers/DialOutFlow.c =================================================================== diff -u -r89a95cb8fbc537f1c7a5448a05788342f7319c01 -r5a8668a1a04cfa46b1a0aeece4f527ebbf26a106 --- firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision 89a95cb8fbc537f1c7a5448a05788342f7319c01) +++ firmware/App/Controllers/DialOutFlow.c (.../DialOutFlow.c) (revision 5a8668a1a04cfa46b1a0aeece4f527ebbf26a106) @@ -41,29 +41,19 @@ #define MAX_DIAL_OUT_FLOW_RATE 500 // mL/min #define MIN_DIAL_OUT_FLOW_RATE 100 // mL/min -#define DIP_P_COEFFICIENT 0.0002 // P term for dialIn pump control -#define DIP_I_COEFFICIENT 0.00002 // I term for dialIn pump control +#define DOP_P_COEFFICIENT 0.0002 // P term for dialOut pump control +#define DOP_I_COEFFICIENT 0.00002 // I term for dialOut pump control #define MAX_DIAL_OUT_PUMP_PWM_DUTY_CYCLE 0.88 // controller will error if PWM duty cycle > 90%, so set max to 88% #define MIN_DIAL_OUT_PUMP_PWM_DUTY_CYCLE 0.12 // controller will error if PWM duty cycle < 10%, so set min to 12% -#define DIP_CONTROL_INTERVAL ( 500 / TASK_GENERAL_INTERVAL ) // interval (ms/task time) at which the dialIn pump is controlled +#define DOP_CONTROL_INTERVAL ( 500 / TASK_GENERAL_INTERVAL ) // interval (ms/task time) at which the dialOut pump is controlled -#define DIP_MAX_CURR_WHEN_STOPPED_MA 150.0 // motor controller current should not exceed this when pump should be stopped -#define DIP_MIN_CURR_WHEN_RUNNING_MA 150.0 // motor controller current should always exceed this when pump should be running -#define DIP_MAX_CURR_WHEN_RUNNING_MA 1000.0 // motor controller current should not exceed this when pump should be running -#define DIP_MAX_CURR_ERROR_DURATION_MS 2000 // motor controller current errors persisting beyond this duration will trigger an alarm +#define DOP_MAX_CURR_WHEN_STOPPED_MA 150.0 // motor controller current should not exceed this when pump should be stopped +#define DOP_MIN_CURR_WHEN_RUNNING_MA 150.0 // motor controller current should always exceed this when pump should be running +#define DOP_MAX_CURR_WHEN_RUNNING_MA 1000.0 // motor controller current should not exceed this when pump should be running +#define DOP_MAX_CURR_ERROR_DURATION_MS 2000 // motor controller current errors persisting beyond this duration will trigger an alarm -#define DIP_REV_PER_LITER 124.0 // rotor revolutions per liter -#define DIP_ML_PER_MIN_TO_PUMP_RPM_FACTOR ( DIP_REV_PER_LITER / ML_PER_LITER ) -#define DIP_GEAR_RATIO 32.0 // dialIn pump motor to dialIn pump gear ratio -#define DIP_MOTOR_RPM_TO_PWM_DC_FACTOR 0.0003717 // ~27 BP motor RPM = 1% PWM duty cycle -#define DIP_PWM_ZERO_OFFSET 0.1 // 10% PWM duty cycle = zero speed -#define DIP_PWM_FROM_ML_PER_MIN(rate) ( (rate) * DIP_ML_PER_MIN_TO_PUMP_RPM_FACTOR * DIP_GEAR_RATIO * DIP_MOTOR_RPM_TO_PWM_DC_FACTOR + DIP_PWM_ZERO_OFFSET ) -#define DIAL_IN_PUMP_ADC_FULL_SCALE_V 3.0 // BP analog signals are 0-3V (while int. ADC ref V is 3.3V) -#define DIAL_IN_PUMP_ADC_MID_PT_BITS ( (F32)( INT_ADC_FULL_SCALE_BITS >> 1 ) * ( DIAL_IN_PUMP_ADC_FULL_SCALE_V / INT_ADC_REF_V ) ) -#define SIGN_FROM_12_BIT_VALUE(v) ( (S16)(v) - (S16)DIAL_IN_PUMP_ADC_MID_PT_BITS ) - #define DIAL_OUT_FLOW_SAMPLE_FREQ ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) // dialOut pump stop and direction macros @@ -78,6 +68,7 @@ #define SET_DOP_DIR() gioSetBit( gioPORTA, STOP_DO_PUMP_GIO_PORT_PIN, PIN_SIGNAL_HIGH ) #define CLR_DOP_DIR() gioSetBit( gioPORTA, STOP_DO_PUMP_GIO_PORT_PIN, PIN_SIGNAL_LOW ) + typedef enum DialOutFlow_Measured_Signals { DIALOUT_LOAD_CELL_WEIGHT = 0, @@ -93,19 +84,11 @@ static U32 dialOutFlowDataPublicationTimerCounter = 5; // used to schedule dialIn flow data publication to CAN bus -DATA_DECL( U32, DialOutFlowDataPub, dialOutFlowDataPublishInterval, DIAL_OUT_FLOW_DATA_PUB_INTERVAL, DIAL_OUT_FLOW_DATA_PUB_INTERVAL ); // interval (in ms) at which to publish dialIn flow data to CAN bus -DATA_DECL( S32, TargetDialOutFlowRate, targetDialOutFlowRate, 0, 0 ); // requested dialIn flow rate -DATA_DECL( F32, MeasuredDialOutFlowRate, measuredDialOutFlowRate, 0.0, 0.0 ); // measured dialIn flow rate -DATA_DECL( F32, MeasuredDialOutPumpRotorSpeed, dialOutPumpRotorSpeedRPM, 0.0, 0.0 );// measured dialIn pump rotor speed -DATA_DECL( F32, MeasuredDialOutPumpSpeed, dialOutPumpSpeedRPM, 0.0, 0.0 ); // measured dialIn pump motor speed -DATA_DECL( F32, MeasuredDialOutPumpMCSpeed, adcDialOutPumpMCSpeedRPM, 0.0, 0.0 ); // measured dialIn pump motor controller speed -DATA_DECL( F32, MeasuredDialOutPumpMCCurrent, adcDialOutPumpMCCurrentmA, 0.0, 0.0 );// measured dialIn pump motor controller current - // Rx values -static U32 rxTotalTargetVolumeInMl; +static F32 rxTotalTargetVolumeInMl; static U32 rxTargetTimeInSamples; -static U32 rxTargetFlowRate; -static F32 targetVolumeRatePerSample; +static F32 rxInitialTargetFlowRatePWM; +static F32 targetVolumeUFRatePerSample; // Variables used in loop @@ -122,6 +105,10 @@ static F32 sentPWM; +// Pump variables +static F32 dialOutPumpSpeedInRPM; +static F32 dialOutPumpCurrentInMA; + // ********** private function prototypes ********** static DIALOUT_FLOW_STATE_T handleDialOutFlowStopState( void ); @@ -134,64 +121,101 @@ static void setDialOutPumpDirection( MOTOR_DIR_T dir ); +static void publishDialOutFlowData( void ); -static void publishDialOutFlowData( void ); -static DATA_GET_PROTOTYPE( U32, getPublishDialOutFlowDataInterval ); +/************************************************************************* + * @brief setDialOutFlowNewState + * The setDialOutNew function changes the state to STOP, PAUSE or RUN. + * + * @param isNewBag is TRUE, if at the start of the new state a new bag will + * be used. + * @return none + *************************************************************************/ +void setDialOutFlowNewState( DIALOUT_FLOW_STATE_T newState , BOOL isNewBag ) { -void startDialOut( BOOL isNewBag ) -{ - if( isNewBag ) + switch( newState ) { - bagStartVolumeInMl = 0.0; - } -} + case DIALOUT_FLOW_RUN_UF_STATE: + case DIALOUT_FLOW_PAUSE_UF_STATE: + if( isNewBag ) + { + bagStartVolumeInMl = 0.0; + } + break; -void stopDialOut( void ) -{ + case DIALOUT_FLOW_STOP_STATE: + break; -} + default: + break; + } -void pauseDialOut( void ) -{ - + dialOutFlowState = newState; } +/************************************************************************* + * @brief setControlSignalPWM + * The setControlSignalPWM function set the PWM of the out flow pump. + * + * @param newPWM a fraction of between 0.0 and 1.0. + * @return none + *************************************************************************/ static void setControlSignalPWM( F32 newPWM ) { - F32 roundOffSet = newPWM != 0.0 ? FLOAT_TO_INT_ROUNDUP_OFFSET : 0.0; - etpwmSetCmpA( etpwmREG3, (U32)( (S32)( ( newPWM * (F32)(etpwmREG3->TBPRD) ) + roundOffSet) ) ); + etpwmSetCmpA( etpwmREG3, (U16)( FLOAT_TO_INT_WITH_ROUND( newPWM * (F32)(etpwmREG3->TBPRD) ) ) ); } +/************************************************************************* + * @brief updateTargetVolume + * The updateTargetVolume function updates the next sample for total target + * volume based on rate of UF + * + * @param newPWM a fraction of between 0.0 and 1.0. + * @return none + *************************************************************************/ static void updateTargetVolume( void ) { - rxTotalTargetVolumeInMl += targetVolumeRatePerSample; + rxTotalTargetVolumeInMl += targetVolumeUFRatePerSample; } - -BOOL setDialOutFlowRxTotalVolumeAndRxTime( U32 rxTotaVolumeInMl, U32 rxTotalTimeInMinutes, U32 rxFlowRate) +/************************************************************************* + * @brief setDialOutFlowRxTotalVolumeAndRxTime + * The setDialOutFlowRxTotalVolumeAndRxTime function updates Rx for the UF + * therapy + * + * @param rxTotalVolumeInMl Total Volume requested for ultra-filtration + * @param rxTotalTimeInMinutes Total Rx time in minutes + * @param rxFlowRateinMlPerMin + * @return none + *************************************************************************/ +BOOL setDialOutFlowRxTotalVolumeAndRxTime( U32 rxTotaVolumeInMl, U32 rxTotalTimeInMinutes, U32 rxFlowRateinMlPerMin) { #define SECS_IN_MIN 60 + #define DOP_REV_PER_LITER 124.0 // rotor revolutions per liter + #define DOP_ML_PER_MIN_TO_PUMP_RPM_FACTOR ( DOP_REV_PER_LITER / ML_PER_LITER ) + #define DOP_GEAR_RATIO 32.0 // dialIn pump motor to dialIn pump gear ratio + #define DOP_MOTOR_RPM_TO_PWM_DC_FACTOR 0.0003717 // ~27 BP motor RPM = 1% PWM duty cycle + #define DOP_PWM_ZERO_OFFSET 0.1 // 10% PWM duty cycle = zero speed + #define DOP_PWM_FROM_ML_PER_MIN(rate) ( (rate) * DOP_ML_PER_MIN_TO_PUMP_RPM_FACTOR * DOP_GEAR_RATIO * DOP_MOTOR_RPM_TO_PWM_DC_FACTOR + DOP_PWM_ZERO_OFFSET ) + //TODO: Verify RxFlowRate within range, rxTotalTimeInMinutes and rxTotalVolumeInMl + BOOL returnValue = TRUE; rxTotalTargetVolumeInMl = rxTotaVolumeInMl; rxTargetTimeInSamples = rxTotalTimeInMinutes * SEC_PER_MIN * DIAL_OUT_FLOW_SAMPLE_FREQ ; - rxTargetFlowRate = rxFlowRate; + rxInitialTargetFlowRatePWM = DOP_PWM_FROM_ML_PER_MIN(rxFlowRateinMlPerMin); - targetVolumeRatePerSample = (F32) rxTotalTargetVolumeInMl / (F32) rxTargetTimeInSamples; + targetVolumeUFRatePerSample = (F32) rxTotalTargetVolumeInMl / (F32) rxTargetTimeInSamples; - return returnValue; } /************************************************************************* * @brief initDialOutFlow * The initDialOutFlow function initializes the DialOutFlow module. - * @details - * Inputs : none - * Outputs : DialOutFlow module initialized. * @param none * @return none *************************************************************************/ @@ -209,11 +233,19 @@ accumulativeTotalUFVolumeInMl = 0.0; // initialize dialysate outlet flow PI controller - initializePIController( PI_CONTROLLER_ID_LOAD_CELL, MIN_DIAL_OUT_PUMP_PWM_DUTY_CYCLE, - DIP_P_COEFFICIENT, DIP_I_COEFFICIENT, + initializePIController( PI_CONTROLLER_ID_LOAD_CELL, rxInitialTargetFlowRatePWM, + DOP_P_COEFFICIENT, DOP_I_COEFFICIENT, MIN_DIAL_OUT_PUMP_PWM_DUTY_CYCLE, MAX_DIAL_OUT_PUMP_PWM_DUTY_CYCLE); } + +/************************************************************************* + * @brief getMeasuredVariable + * The getMeasuredVariable function returns measured signals needed by + * the DialOutFlow module. + * @param signal is a measured signal enum. + * @return actual signal as float. + *************************************************************************/ F32 getMeasuredVariable( DIALOUT_MEASURED_SIGNALS_T signal) { #define DIP_SPEED_ADC_TO_RPM_FACTOR 1.375 // conversion factor from ADC counts to RPM for dialIn pump motor @@ -239,8 +271,11 @@ break; } + + return returnValue; } + /************************************************************************* * @brief execDialOutFlowMonitor * The execDialOutFlowMonitor function executes the dialIn flow monitor. @@ -250,19 +285,16 @@ * @param none * @return none *************************************************************************/ -/*void execDialOutFlowMonitor( void ) +void execDialOutFlowMonitor( void ) { - U16 dopRPM = getIntADCReading( INT_ADC_DIAL_OUT_PUMP_SPEED ); - U16 dopmA = getIntADCReading( INT_ADC_DIAL_OUT_PUMP_MOTOR_CURRENT ); - F32 dopLoadCellWeightinGr = getFPGALoadCellWeight(); + loadCellVolumeInMl = getMeasuredVariable( DIALOUT_LOAD_CELL_WEIGHT ); + dialOutPumpSpeedInRPM = getMeasuredVariable( DIALOUT_MOTOR_SPEED ); + dialOutPumpCurrentInMA = getMeasuredVariable( DIALOUT_MOTOR_CURRENT ); - adcDialOutPumpMCSpeedRPM.data = (F32)(SIGN_FROM_12_BIT_VALUE(dipRPM)) * DIP_SPEED_ADC_TO_RPM_FACTOR; - adcDialOutPumpMCCurrentmA.data = (F32)(SIGN_FROM_12_BIT_VALUE(dipmA)) * DIP_CURRENT_ADC_TO_MA_FACTOR; - // publish dialIn flow data on interval publishDialOutFlowData(); -}*/ +} /************************************************************************* * @brief execDialOutFlowController @@ -400,90 +432,6 @@ } /************************************************************************* - * @brief getPublishDialOutFlowDataInterval - * The getPublishDialOutFlowDataInterval function gets the dialIn flow data \n - * publication interval. - * @details - * Inputs : dialOutFlowDataPublishInterval - * Outputs : none - * @param none - * @return the current dialIn flow data publication interval (in ms). - *************************************************************************/ -DATA_GET( U32, getPublishDialOutFlowDataInterval, dialOutFlowDataPublishInterval ) - -/************************************************************************* - * @brief getTargetDialOutFlowRate - * The getTargetDialOutFlowRate function gets the current target dialIn flow \n - * rate. - * @details - * Inputs : targetDialOutFlowRate - * Outputs : none - * @param none - * @return the current target dialIn flow rate (in mL/min). - *************************************************************************/ -DATA_GET( S32, getTargetDialOutFlowRate, targetDialOutFlowRate ) - -/************************************************************************* - * @brief getMeasuredDialOutFlowRate - * The getMeasuredDialOutFlowRate function gets the measured dialIn flow \n - * rate. - * @details - * Inputs : measuredDialOutFlowRate - * Outputs : none - * @param none - * @return the current dialIn flow rate (in mL/min). - *************************************************************************/ -DATA_GET( F32, getMeasuredDialOutVolume, measuredDialOutFlowRate ) - -/************************************************************************* - * @brief getMeasuredDialOutPumpRotorSpeed - * The getMeasuredDialOutPumpRotorSpeed function gets the measured dialIn flow \n - * rate. - * @details - * Inputs : dialOutPumpRotorSpeedRPM - * Outputs : none - * @param none - * @return the current dialIn flow rate (in mL/min). - *************************************************************************/ -DATA_GET( F32, getMeasuredDialOutPumpRotorSpeed, dialOutPumpRotorSpeedRPM ) - -/************************************************************************* - * @brief getMeasuredDialOutPumpSpeed - * The getMeasuredDialOutPumpSpeed function gets the measured dialIn flow \n - * rate. - * @details - * Inputs : dialOutPumpSpeedRPM - * Outputs : none - * @param none - * @return the current dialIn flow rate (in mL/min). - *************************************************************************/ -DATA_GET( F32, getMeasuredDialOutPumpSpeed, dialOutPumpSpeedRPM ) - -/************************************************************************* - * @brief getMeasuredDialOutPumpMCSpeed - * The getMeasuredDialOutPumpMCSpeed function gets the measured dialIn pump \n - * speed. - * @details - * Inputs : adcDialOutPumpMCSpeedRPM - * Outputs : none - * @param none - * @return the current dialIn pump speed (in RPM). - *************************************************************************/ -DATA_GET( F32, getMeasuredDialOutPumpMCSpeed, adcDialOutPumpMCSpeedRPM ) - -/************************************************************************* - * @brief getMeasuredDialOutPumpMCCurrent - * The getMeasuredDialOutPumpMCCurrent function gets the measured dialIn pump \n - * current. - * @details - * Inputs : adcDialOutPumpMCCurrentmA - * Outputs : none - * @param none - * @return the current dialIn pump current (in mA). - *************************************************************************/ -DATA_GET( F32, getMeasuredDialOutPumpMCCurrent, adcDialOutPumpMCCurrentmA ) - -/************************************************************************* * @brief publishDialOutFlowData * The publishDialOutFlowData function publishes dialIn flow data at the set \n * interval. @@ -496,178 +444,27 @@ *************************************************************************/ static void publishDialOutFlowData( void ) { + S16 doFlowState = (S16) FLOAT_TO_INT_WITH_ROUND( dialOutFlowState ); + S16 doTotalTargetUFVolumeInMl = (S16) FLOAT_TO_INT_WITH_ROUND( totalTargetUFVolumeInMl ); + S16 doTotalMeasuredUFVolumeInMl = (S16) FLOAT_TO_INT_WITH_ROUND( totalMeasuredUFVolumeInMl ); + S16 doControlSignalPWM = (S16) FLOAT_TO_INT_WITH_ROUND( sentPWM * FRACTION_TO_PERCENT_FACTOR ); + // publish dialIn flow data on interval if ( ++dialOutFlowDataPublicationTimerCounter > DIAL_OUT_FLOW_DATA_PUB_INTERVAL ) { #ifdef DEBUG_ENABLED // TODO - temporary debug code - remove later - char debugFlowStr[ 256 ]; + char debugFlowStr[ 128 ]; - sprintf( debugFlowStr, "St:%5d, Set Pt:%5d, Meas. Vol:%5d, PWM:%5d \n", (S32) dialOutFlowState, (S32) totalTargetUFVolumeInMl, (S32) totalMeasuredUFVolumeInMl,(S32)(sentPWM * FRACTION_TO_PERCENT_FACTOR) ); + sprintf( debugFlowStr, "St:%5d, Set Pt:%5d, Meas. Vol:%5d, PWM:%5d \n", + doFlowState, + doTotalTargetUFVolumeInMl, + doTotalMeasuredUFVolumeInMl, + doControlSignalPWM ); + sendDebugData( (U08*)debugFlowStr, strlen(debugFlowStr) ); #endif - //broadcastDialOutFlowData( flowStPt, measFlow, measRotSpd, measSpd, measMCSpd, measMCCurr, pumpPWMPctDutyCycle ); + broadcastDialOutFlowData( doFlowState, doTotalTargetUFVolumeInMl, doTotalMeasuredUFVolumeInMl, doControlSignalPWM ); dialOutFlowDataPublicationTimerCounter = 0; } } - - -/************************************************************************* - * @brief execDialOutFlowTest - * The execDialOutFlowTest function executes the state machine for the \n - * DialOutFlow self test. - * @details - * Inputs : none - * Outputs : none - * @param none - * @return the current state of the DialOutFlow self test. - *************************************************************************/ -SELF_TEST_STATUS_T execDialOutFlowTest( void ) -{ - SELF_TEST_STATUS_T result = SELF_TEST_STATUS_FAILED; - - // TODO - implement self test(s) - - return result; -} - - -/************************************************************************* - * TEST SUPPORT FUNCTIONS - *************************************************************************/ - - -/************************************************************************* - * @brief testSetDialOutFlowDataPublishIntervalOverride - * The testSetDialOutFlowDataPublishIntervalOverride function overrides the \n - * dialIn flow data publish interval. - * @details - * Inputs : none - * Outputs : dialOutFlowDataPublishInterval - * @param value : override dialIn flow data publish interval with (in ms) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -BOOL testSetDialOutFlowDataPublishIntervalOverride( U32 value ) -{ - BOOL result = FALSE; - - if ( TRUE == isTestingActivated() ) - { - U32 intvl = value / TASK_PRIORITY_INTERVAL; - - result = TRUE; - dialOutFlowDataPublishInterval.ovData = intvl; - dialOutFlowDataPublishInterval.override = OVERRIDE_KEY; - } - - return result; -} - -/************************************************************************* - * @brief testResetDialOutFlowDataPublishIntervalOverride - * The testResetDialOutFlowDataPublishIntervalOverride function resets the override \n - * of the dialIn flow data publish interval. - * @details - * Inputs : none - * Outputs : dialOutFlowDataPublishInterval - * @return TRUE if override reset successful, FALSE if not - *************************************************************************/ -BOOL testResetDialOutFlowDataPublishIntervalOverride( void ) -{ - BOOL result = FALSE; - - if ( TRUE == isTestingActivated() ) - { - result = TRUE; - dialOutFlowDataPublishInterval.override = OVERRIDE_RESET; - dialOutFlowDataPublishInterval.ovData = dialOutFlowDataPublishInterval.ovInitData; - } - - return result; -} - -/************************************************************************* - * @brief testSetTargetDialOutFlowRateOverride and testResetTargetDialOutFlowRateOverride - * The testSetTargetDialOutFlowRateOverride function overrides the target \n - * dialIn flow rate. \n - * The testResetTargetDialOutFlowRateOverride function resets the override of the \n - * target dialIn flow rate. - * @details - * Inputs : none - * Outputs : targetDialOutFlowRate - * @param value : override target dialIn flow rate (in mL/min) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -DATA_OVERRIDE_FUNC( S32, testSetTargetDialOutFlowRateOverride, testResetTargetDialOutFlowRateOverride, targetDialOutFlowRate ) - -/************************************************************************* - * @brief testSetMeasuredDialOutFlowRateOverride and testResetMeasuredDialOutFlowRateOverride - * The testResetMeasuredDialOutFlowRateOverride function overrides the measured \n - * dialIn flow rate. \n - * The testResetOffButtonStateOverride function resets the override of the \n - * measured dialIn flow rate. - * @details - * Inputs : none - * Outputs : measuredDialOutFlowRate - * @param value : override measured dialIn flow rate (in mL/min) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -DATA_OVERRIDE_FUNC( F32, testSetMeasuredDialOutFlowRateOverride, testResetMeasuredDialOutFlowRateOverride, measuredDialOutFlowRate ) - -/************************************************************************* - * @brief testSetMeasuredDialOutPumpRotorSpeedOverride and testResetMeasuredDialOutPumpRotorSpeedOverride - * The testSetMeasuredDialOutPumpRotorSpeedOverride function overrides the measured \n - * dialIn pump rotor speed. \n - * The testResetMeasuredDialOutPumpRotorSpeedOverride function resets the override of the \n - * measured dialIn pump rotor speed. - * @details - * Inputs : none - * Outputs : dialOutPumpRotorSpeedRPM - * @param value : override measured dialIn pump rotor speed (in RPM) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -DATA_OVERRIDE_FUNC( F32, testSetMeasuredDialOutPumpRotorSpeedOverride, testResetMeasuredDialOutPumpRotorSpeedOverride, dialOutPumpRotorSpeedRPM ) - -/************************************************************************* - * @brief testSetMeasuredDialOutPumpSpeedOverride and testResetMeasuredDialOutPumpSpeedOverride - * The testSetMeasuredDialOutPumpSpeedOverride function overrides the measured \n - * dialIn pump motor speed. \n - * The testResetMeasuredDialOutPumpSpeedOverride function resets the override of the \n - * measured dialIn pump motor speed. - * @details - * Inputs : none - * Outputs : dialOutPumpSpeedRPM - * @param value : override measured dialIn pump motor speed (in RPM) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -DATA_OVERRIDE_FUNC( F32, testSetMeasuredDialOutPumpSpeedOverride, testResetMeasuredDialOutPumpSpeedOverride, dialOutPumpSpeedRPM ) - -/************************************************************************* - * @brief testSetMeasuredDialOutPumpMCSpeedOverride and testResetMeasuredDialOutPumpMCSpeedOverride - * The testSetMeasuredDialOutPumpMCSpeedOverride function overrides the measured \n - * dialIn pump motor speed. \n - * The testResetMeasuredDialOutPumpMCSpeedOverride function resets the override of the \n - * measured dialIn pump motor speed. - * @details - * Inputs : none - * Outputs : adcDialOutPumpMCSpeedRPM - * @param value : override measured dialIn pump speed (in RPM) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -DATA_OVERRIDE_FUNC( F32, testSetMeasuredDialOutPumpMCSpeedOverride, testResetMeasuredDialOutPumpMCSpeedOverride, adcDialOutPumpMCSpeedRPM ) - -/************************************************************************* - * @brief testSetMeasuredDialOutPumpMCCurrentOverride and testResetMeasuredDialOutPumpMCCurrentOverride - * The testSetMeasuredDialOutPumpMCCurrentOverride function overrides the measured \n - * dialIn pump motor current. \n - * The testResetMeasuredDialOutPumpMCCurrentOverride function resets the override of the \n - * measured dialIn pump motor current. - * @details - * Inputs : none - * Outputs : adcDialOutPumpMCCurrentmA - * @param value : override measured dialIn pump current (in mA) - * @return TRUE if override successful, FALSE if not - *************************************************************************/ -DATA_OVERRIDE_FUNC( F32, testSetMeasuredDialOutPumpMCCurrentOverride, testResetMeasuredDialOutPumpMCCurrentOverride, adcDialOutPumpMCCurrentmA ) - -