LightLib
PROS library for VEX V5: EKF/MCL localization, RAMSETE path following, high-level chassis API
Loading...
Searching...
No Matches
okapi::ControllerRunner< Input, Output > Class Template Reference

#include <controllerRunner.hpp>

Public Member Functions

 ControllerRunner (const TimeUtil &itimeUtil, const std::shared_ptr< Logger > &ilogger=Logger::getDefaultLogger())
 A utility class that runs a closed-loop controller.
 
virtual Output runUntilSettled (const Input itarget, AsyncController< Input, Output > &icontroller)
 Runs the controller until it has settled.
 
virtual Output runUntilSettled (const Input itarget, IterativeController< Input, Output > &icontroller, ControllerOutput< Output > &ioutput)
 Runs the controller until it has settled.
 
virtual Output runUntilAtTarget (const Input itarget, AsyncController< Input, Output > &icontroller)
 Runs the controller until it has reached its target, but not necessarily settled.
 
virtual Output runUntilAtTarget (const Input itarget, IterativeController< Input, Output > &icontroller, ControllerOutput< Output > &ioutput)
 Runs the controller until it has reached its target, but not necessarily settled.
 

Protected Attributes

std::shared_ptr< Loggerlogger
 
std::unique_ptr< AbstractRaterate
 

Detailed Description

template<typename Input, typename Output>
class okapi::ControllerRunner< Input, Output >

Definition at line 17 of file controllerRunner.hpp.

Constructor & Destructor Documentation

◆ ControllerRunner()

template<typename Input , typename Output >
okapi::ControllerRunner< Input, Output >::ControllerRunner ( const TimeUtil itimeUtil,
const std::shared_ptr< Logger > &  ilogger = Logger::getDefaultLogger() 
)
inlineexplicit

A utility class that runs a closed-loop controller.

Parameters
itimeUtilThe TimeUtil.
iloggerThe logger this instance will log to.

Definition at line 25 of file controllerRunner.hpp.

Member Function Documentation

◆ runUntilAtTarget() [1/2]

template<typename Input , typename Output >
virtual Output okapi::ControllerRunner< Input, Output >::runUntilAtTarget ( const Input  itarget,
AsyncController< Input, Output > &  icontroller 
)
inlinevirtual

Runs the controller until it has reached its target, but not necessarily settled.

Parameters
itargetthe new target
icontrollerthe controller to run
Returns
the error when settled

Definition at line 81 of file controllerRunner.hpp.

◆ runUntilAtTarget() [2/2]

template<typename Input , typename Output >
virtual Output okapi::ControllerRunner< Input, Output >::runUntilAtTarget ( const Input  itarget,
IterativeController< Input, Output > &  icontroller,
ControllerOutput< Output > &  ioutput 
)
inlinevirtual

Runs the controller until it has reached its target, but not necessarily settled.

Parameters
itargetthe new target
icontrollerthe controller to run
ioutputthe output to write to
Returns
the error when settled

Definition at line 107 of file controllerRunner.hpp.

◆ runUntilSettled() [1/2]

template<typename Input , typename Output >
virtual Output okapi::ControllerRunner< Input, Output >::runUntilSettled ( const Input  itarget,
AsyncController< Input, Output > &  icontroller 
)
inlinevirtual

Runs the controller until it has settled.

Parameters
itargetthe new target
icontrollerthe controller to run
Returns
the error when settled

Definition at line 37 of file controllerRunner.hpp.

◆ runUntilSettled() [2/2]

template<typename Input , typename Output >
virtual Output okapi::ControllerRunner< Input, Output >::runUntilSettled ( const Input  itarget,
IterativeController< Input, Output > &  icontroller,
ControllerOutput< Output > &  ioutput 
)
inlinevirtual

Runs the controller until it has settled.

Parameters
itargetthe new target
icontrollerthe controller to run
ioutputthe output to write to
Returns
the error when settled

Definition at line 58 of file controllerRunner.hpp.

Member Data Documentation

◆ logger

template<typename Input , typename Output >
std::shared_ptr<Logger> okapi::ControllerRunner< Input, Output >::logger
protected

Definition at line 128 of file controllerRunner.hpp.

◆ rate

template<typename Input , typename Output >
std::unique_ptr<AbstractRate> okapi::ControllerRunner< Input, Output >::rate
protected

Definition at line 129 of file controllerRunner.hpp.


The documentation for this class was generated from the following file: