diff --git a/SynchronizedMotors.cpp b/SynchronizedMotors.cpp new file mode 100644 index 0000000..479052f --- /dev/null +++ b/SynchronizedMotors.cpp @@ -0,0 +1,13 @@ +#include "SynchronizedMotors.h" + +SynchronizedMotors::SynchronizedMotors(Motor *primaryMotor, + Motor *secondaryMotor) { + this->motorCount = 2; + this->motors = new Motor *[2] { primaryMotor, secondaryMotor }; +} + +void SynchronizedMotors::SetTargetSpeed(float speed) { + for (unsigned char motorIx = 0; motorIx < this->motorCount; motorIx++) { + this->motors[motorIx]->SetTargetSpeed(speed); + } +} \ No newline at end of file diff --git a/SynchronizedMotors.h b/SynchronizedMotors.h new file mode 100644 index 0000000..c4ea205 --- /dev/null +++ b/SynchronizedMotors.h @@ -0,0 +1,20 @@ +#pragma once + +#include "Motor.h" + +namespace Passer { +namespace RoboidControl { + +class SynchronizedMotors : public Motor { +public: + SynchronizedMotors(Motor *primaryMotor, Motor *secondaryMotor); + virtual void SetTargetSpeed(float speed) override; + +protected: + unsigned char motorCount; + Motor **motors; +}; + +} // namespace RoboidControl +} // namespace Passer +using namespace Passer::RoboidControl; \ No newline at end of file