26 typename Intermediate,
28 typename MainError = Control,
29 typename IntermediateError = Intermediate
50 std::unique_ptr<ControlledMotor>
motor,
51 std::unique_ptr<ControlTelemetry> controlTelemetry,
52 std::unique_ptr<IntermediateTelemetry> intermediateTelemetry
55 motor_{std::move(
motor)},
56 controlTelemetry_{std::move(controlTelemetry)},
57 intermediateTelemetry_{std::move(intermediateTelemetry)}
81 controlTelemetry_->getData(),
82 intermediateTelemetry_->getData(),
86 motor_->setTargetOutput(kOutput);
97 std::unique_ptr<ControlledMotor> motor_;
98 std::unique_ptr<ControlTelemetry> controlTelemetry_;
99 std::unique_ptr<IntermediateTelemetry> intermediateTelemetry_;
101 void syncMotorToPid()
106 controlTelemetry_->getData(),
107 intermediateTelemetry_->getData()
110 motor_->setTargetOutput(kOutput);
Definition dual_cascade_motor.hpp:32
telemetry::ITelemetry< Intermediate > IntermediateTelemetry
Definition dual_cascade_motor.hpp:36
void setTarget(const Control &control)
Definition dual_cascade_motor.hpp:90
DualCascadeMotor(const Config &config, std::unique_ptr< ControlledMotor > motor, std::unique_ptr< ControlTelemetry > controlTelemetry, std::unique_ptr< IntermediateTelemetry > intermediateTelemetry)
Definition dual_cascade_motor.hpp:48
IOutputMotor< Output > ControlledMotor
Definition dual_cascade_motor.hpp:34
void update(const Time &delta)
Definition dual_cascade_motor.hpp:76
void initialize() override
Definition dual_cascade_motor.hpp:61
trap::algorithms::DualCascadePid< Control, Intermediate, Output, Time, MainError, IntermediateError > Pid
Definition dual_cascade_motor.hpp:45
void update() override
Definition dual_cascade_motor.hpp:66
telemetry::ITelemetry< Control > ControlTelemetry
Definition dual_cascade_motor.hpp:35
Definition dual_cascade_pid.hpp:37
void setTarget(const MainType &mainTarget)
Definition dual_cascade_pid.hpp:119
OutputType runController(const MainType &mainCurrent, const IntermediateType &intermediateCurrent)
Definition dual_cascade_pid.hpp:64
Definition pwm_info.hpp:4
Definition directionality.hpp:6
rail::motor::IOutputMotor< Output > IOutputMotor
Definition ioutput_motor.hpp:7
rail::system::ISystem ISystem
Definition isystem.hpp:5
rail::telemetry::ITelemetry< DataType > ITelemetry
Definition itelemetry.hpp:8
Definition brushlessutils.cpp:4
Definition dual_cascade_pid.hpp:42
units::time::second_t Seconds
Definition units_alias.hpp:11