Implemented first Hangar-Service

Dependencies:   CalibrateMagneto QuaternionMath

Fork of SML2 by TobyRich GmbH

Committer:
pvaibhav
Date:
Tue May 26 11:28:37 2015 +0000
Revision:
40:8e852115fe55
Child:
46:fd5a62296b12
SensorFusion base class and 6 axis derived class. utils, filter and pid classes moved inside SML2.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pvaibhav 40:8e852115fe55 1 #ifndef _H_UTILS_H
pvaibhav 40:8e852115fe55 2 #define _H_UTILS_H
pvaibhav 40:8e852115fe55 3
pvaibhav 40:8e852115fe55 4 #include "Vector3.h"
pvaibhav 40:8e852115fe55 5
pvaibhav 40:8e852115fe55 6 class utils
pvaibhav 40:8e852115fe55 7 {
pvaibhav 40:8e852115fe55 8 public:
pvaibhav 40:8e852115fe55 9 static float clip(float const minimum, float const val, float const maximum)
pvaibhav 40:8e852115fe55 10 {
pvaibhav 40:8e852115fe55 11 return (val < minimum) ? minimum : ((val > maximum) ? maximum : val);
pvaibhav 40:8e852115fe55 12 }
pvaibhav 40:8e852115fe55 13
pvaibhav 40:8e852115fe55 14 static void debugPortSend(uint8_t const* src, size_t const size)
pvaibhav 40:8e852115fe55 15 {
pvaibhav 40:8e852115fe55 16 #if defined(DATA_OUTPUT)
pvaibhav 40:8e852115fe55 17 putc(0x10, stdout); // marker
pvaibhav 40:8e852115fe55 18 for (int i = 0; i < size; i++) {
pvaibhav 40:8e852115fe55 19 putc(src[i] & 0x0f, stdout);
pvaibhav 40:8e852115fe55 20 putc(src[i] >> 4, stdout);
pvaibhav 40:8e852115fe55 21 }
pvaibhav 40:8e852115fe55 22 #endif
pvaibhav 40:8e852115fe55 23 }
pvaibhav 40:8e852115fe55 24
pvaibhav 40:8e852115fe55 25 static void sendVectorOverUART( const Vector3 a = Vector3(0, 0, 0),
pvaibhav 40:8e852115fe55 26 const Vector3 b = Vector3(0, 0, 0),
pvaibhav 40:8e852115fe55 27 const Vector3 c = Vector3(0, 0, 0),
pvaibhav 40:8e852115fe55 28 const Vector3 d = Vector3(0, 0, 0))
pvaibhav 40:8e852115fe55 29 {
pvaibhav 40:8e852115fe55 30 float data[] = {
pvaibhav 40:8e852115fe55 31 a.x, a.y, a.z,
pvaibhav 40:8e852115fe55 32 b.x, b.y, b.z,
pvaibhav 40:8e852115fe55 33 c.x, c.y, c.z,
pvaibhav 40:8e852115fe55 34 d.x, d.y, d.z
pvaibhav 40:8e852115fe55 35 };
pvaibhav 40:8e852115fe55 36
pvaibhav 40:8e852115fe55 37 debugPortSend((const uint8_t*) data, sizeof data);
pvaibhav 40:8e852115fe55 38 }
pvaibhav 40:8e852115fe55 39
pvaibhav 40:8e852115fe55 40 static float deg2rad(float const d)
pvaibhav 40:8e852115fe55 41 {
pvaibhav 40:8e852115fe55 42 return d * 0.0174532925f;
pvaibhav 40:8e852115fe55 43 }
pvaibhav 40:8e852115fe55 44
pvaibhav 40:8e852115fe55 45 static float rad2deg(float const r)
pvaibhav 40:8e852115fe55 46 {
pvaibhav 40:8e852115fe55 47 return r * 57.2957795131f;
pvaibhav 40:8e852115fe55 48 }
pvaibhav 40:8e852115fe55 49 };
pvaibhav 40:8e852115fe55 50
pvaibhav 40:8e852115fe55 51 #endif//_H_UTILS_H