diff --git a/AbsoluteEncoder.h b/AbsoluteEncoder.h index 796fc90..f0ca0f6 100644 --- a/AbsoluteEncoder.h +++ b/AbsoluteEncoder.h @@ -9,7 +9,7 @@ class AbsoluteEncoder { public: AbsoluteEncoder() {} - virtual Angle GetActualAngle() = 0; + virtual Angle16 GetActualAngle() = 0; virtual float GetActualVelocity() = 0; }; diff --git a/ServoMotor.cpp b/ServoMotor.cpp index 639d200..c21294b 100644 --- a/ServoMotor.cpp +++ b/ServoMotor.cpp @@ -10,7 +10,7 @@ ServoMotor::ServoMotor() this->hasTargetAngle = false; } -void ServoMotor::SetTargetAngle(Angle angle) { +void ServoMotor::SetTargetAngle(Angle16 angle) { angle = Float::Clamp(angle, minAngle, maxAngle); if (maxVelocity == 0.0F || hasTargetAngle == false) { @@ -23,7 +23,7 @@ void ServoMotor::SetTargetAngle(Angle angle) { this->hasTargetAngle = true; } -Angle ServoMotor::GetTargetAngle() { +Angle16 ServoMotor::GetTargetAngle() { return this->targetAngle; } diff --git a/ServoMotor.h b/ServoMotor.h index f44b5b5..255bbaf 100644 --- a/ServoMotor.h +++ b/ServoMotor.h @@ -1,6 +1,7 @@ #pragma once #include "ControlledMotor.h" +#include "LinearAlgebra/Angle16.h" namespace Passer { namespace RoboidContol { @@ -16,8 +17,8 @@ class ServoMotor : public Thing { enum ControlMode { Position, Velocity }; ControlMode controlMode = ControlMode::Position; - virtual void SetTargetAngle(Angle angle); - virtual Angle GetTargetAngle(); + virtual void SetTargetAngle(Angle16 angle); + virtual Angle16 GetTargetAngle(); virtual void SetMaximumVelocity(float maxVelocity); @@ -28,16 +29,16 @@ class ServoMotor : public Thing { protected: bool hasTargetAngle = false; - Angle targetAngle = 0.0F; + Angle16 targetAngle = 0.0F; float maxVelocity = 0.0F; float targetVelocity = 0.0F; - Angle limitedTargetAngle = 0.0F; + Angle16 limitedTargetAngle = 0.0F; float lastUpdateTimeMs = 0.0F; - virtual void SetAngle(Angle angle) = 0; + virtual void SetAngle(Angle16 angle) = 0; }; } // namespace RoboidContol