13 #include "SpeedController.h" 19 template <
class... SpeedControllers>
21 SpeedControllers&... speedControllers);
23 void Set(
double speed)
override;
24 double Get()
const override;
29 void PIDWrite(
double output)
override;
32 bool m_isInverted =
false;
33 std::vector<std::reference_wrapper<SpeedController>> m_speedControllers;
38 #include "SpeedControllerGroup.inc" Interface for speed controlling devices.
Definition: SpeedController.h:17
Definition: SpeedControllerGroup.h:17
void Set(double speed) override
Common interface for setting the speed of a speed controller.
Definition: SpeedControllerGroup.cpp:12
double Get() const override
Common interface for getting the current set speed of a speed controller.
Definition: SpeedControllerGroup.cpp:18
void StopMotor() override
Common interface to stop the motor until Set is called again.
Definition: SpeedControllerGroup.cpp:37
void SetInverted(bool isInverted) override
Common interface for inverting direction of a speed controller.
Definition: SpeedControllerGroup.cpp:25
void Disable() override
Common interface for disabling a motor.
Definition: SpeedControllerGroup.cpp:31
bool GetInverted() const override
Common interface for returning the inversion state of a speed controller.
Definition: SpeedControllerGroup.cpp:29