From c8ac0b645f873e2963d8125877ed36980995e8c9 Mon Sep 17 00:00:00 2001 From: Pascal Serrarens Date: Tue, 23 Jan 2024 17:44:27 +0100 Subject: [PATCH] Initial version of synchronized motors --- SynchronizedMotors.cpp | 13 +++++++++++++ SynchronizedMotors.h | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 SynchronizedMotors.cpp create mode 100644 SynchronizedMotors.h 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