Atsumi Toda / Mbed OS UAV_Logger4

Dependencies:   MPU6050_alter HMC5883L

Committer:
Joeatsumi
Date:
Fri May 24 05:57:12 2019 +0000
Revision:
2:e6496a794bde
mpu6050 and GHC5883L for atitude estimation for UAV.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Joeatsumi 2:e6496a794bde 1 #pragma once
Joeatsumi 2:e6496a794bde 2 #include "mbed.h"
Joeatsumi 2:e6496a794bde 3
Joeatsumi 2:e6496a794bde 4 class Matrix;
Joeatsumi 2:e6496a794bde 5
Joeatsumi 2:e6496a794bde 6 class Vector {
Joeatsumi 2:e6496a794bde 7 public:
Joeatsumi 2:e6496a794bde 8 Vector(int dim);
Joeatsumi 2:e6496a794bde 9 ~Vector();
Joeatsumi 2:e6496a794bde 10 Vector(const Vector& v);
Joeatsumi 2:e6496a794bde 11
Joeatsumi 2:e6496a794bde 12 Vector& operator=(const Vector& v);
Joeatsumi 2:e6496a794bde 13 Vector operator+();
Joeatsumi 2:e6496a794bde 14 Vector operator-();
Joeatsumi 2:e6496a794bde 15 Vector& operator*=(float c);
Joeatsumi 2:e6496a794bde 16 Vector& operator/=(float c);
Joeatsumi 2:e6496a794bde 17 Vector& operator+=(const Vector& v);
Joeatsumi 2:e6496a794bde 18 Vector& operator-=(const Vector& v);
Joeatsumi 2:e6496a794bde 19
Joeatsumi 2:e6496a794bde 20 void SetComp(int dimNo, float val);
Joeatsumi 2:e6496a794bde 21 void SetComps(float* vals);
Joeatsumi 2:e6496a794bde 22 float GetNorm() const;
Joeatsumi 2:e6496a794bde 23 Vector Normalize() const;
Joeatsumi 2:e6496a794bde 24 Vector GetParaCompTo(Vector v);
Joeatsumi 2:e6496a794bde 25 Vector GetPerpCompTo(Vector v);
Joeatsumi 2:e6496a794bde 26
Joeatsumi 2:e6496a794bde 27 inline int GetDim() const {
Joeatsumi 2:e6496a794bde 28 return dim;
Joeatsumi 2:e6496a794bde 29 }
Joeatsumi 2:e6496a794bde 30
Joeatsumi 2:e6496a794bde 31 inline const float* GetpComponents() const {
Joeatsumi 2:e6496a794bde 32 return (const float*)components;
Joeatsumi 2:e6496a794bde 33 }
Joeatsumi 2:e6496a794bde 34
Joeatsumi 2:e6496a794bde 35 inline float GetComp(int dimNo) const {
Joeatsumi 2:e6496a794bde 36 if (dimNo > dim) error("Index Out of Bounds Error !!");
Joeatsumi 2:e6496a794bde 37 return components[dimNo-1];
Joeatsumi 2:e6496a794bde 38 }
Joeatsumi 2:e6496a794bde 39
Joeatsumi 2:e6496a794bde 40 void CleanUp();
Joeatsumi 2:e6496a794bde 41
Joeatsumi 2:e6496a794bde 42 private:
Joeatsumi 2:e6496a794bde 43 int dim;
Joeatsumi 2:e6496a794bde 44 float* components;
Joeatsumi 2:e6496a794bde 45
Joeatsumi 2:e6496a794bde 46 Vector& operator*=(const Matrix& m);
Joeatsumi 2:e6496a794bde 47 Vector& operator*=(const Vector& m);
Joeatsumi 2:e6496a794bde 48 };
Joeatsumi 2:e6496a794bde 49
Joeatsumi 2:e6496a794bde 50 Vector operator+(const Vector& lhv, const Vector& rhv);
Joeatsumi 2:e6496a794bde 51 Vector operator-(const Vector& lhv, const Vector& rhv);
Joeatsumi 2:e6496a794bde 52 Vector Cross(const Vector& lhv, const Vector& rhv);
Joeatsumi 2:e6496a794bde 53 Vector operator*(const float c, const Vector& rhv);
Joeatsumi 2:e6496a794bde 54 Vector operator*(const Vector& lhv, const float c);
Joeatsumi 2:e6496a794bde 55 float operator*(const Vector& lhv, const Vector& rhv);
Joeatsumi 2:e6496a794bde 56