version 1.0

Dependencies:   CMSIS_DSP_401 GPS MPU9150_DMP PID QuaternionMath Servo mbed

Fork of SolarOnFoils_MainModule_20150518 by Dannis Brugman

Committer:
Dannis_mbed
Date:
Fri Jun 26 09:21:33 2015 +0000
Revision:
1:b4a0d63db637
Parent:
0:81b21910454e
Child:
2:f6d058931b17
presentation version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Dannis_mbed 0:81b21910454e 1 #ifndef SYSTEMVAR_H_INCLUDED
Dannis_mbed 0:81b21910454e 2 #define SYSTEMVAR_H_INCLUDED
Dannis_mbed 0:81b21910454e 3
Dannis_mbed 0:81b21910454e 4 #include "mbed.h"
Dannis_mbed 0:81b21910454e 5 #include "string.h"
Dannis_mbed 0:81b21910454e 6 #include "Quaternion.h"
Dannis_mbed 0:81b21910454e 7
Dannis_mbed 0:81b21910454e 8 //Solar on Foils display values
Dannis_mbed 0:81b21910454e 9 enum VALUE_t
Dannis_mbed 0:81b21910454e 10 {
Dannis_mbed 0:81b21910454e 11 //////////////////////////////////////////////////////////////////////////////////////
Dannis_mbed 0:81b21910454e 12 // system measured values //
Dannis_mbed 0:81b21910454e 13 //////////////////////////////////////////////////////////////////////////////////////
Dannis_mbed 0:81b21910454e 14 _ROLL = 0, // roll
Dannis_mbed 0:81b21910454e 15 _PITCH, // pitch
Dannis_mbed 0:81b21910454e 16 _PHEIGHT, // portside height
Dannis_mbed 0:81b21910454e 17 _SHEIGHT, // starboard height
Dannis_mbed 0:81b21910454e 18 _PCURRENT, // portside current
Dannis_mbed 0:81b21910454e 19 _SCURRENT, // starboard current
Dannis_mbed 0:81b21910454e 20 _SPEED, // speed
Dannis_mbed 0:81b21910454e 21 //////////////////////////////////////////////////////////////////////////////////////
Dannis_mbed 0:81b21910454e 22 // system variables //
Dannis_mbed 0:81b21910454e 23 //////////////////////////////////////////////////////////////////////////////////////
Dannis_mbed 0:81b21910454e 24 _MAXROLL, // variable max roll
Dannis_mbed 0:81b21910454e 25 _MINPITCH, // variable min pitch
Dannis_mbed 0:81b21910454e 26 _MAXPITCH, // variable max pitch
Dannis_mbed 0:81b21910454e 27 _TAKEOFFSPEED, // variable take off speed
Dannis_mbed 0:81b21910454e 28 _HEIGHTFOILBORNE, // variable flight height foilborne
Dannis_mbed 0:81b21910454e 29 _HEIGHTFOILASSIST, // variable flight height foil assist
Dannis_mbed 0:81b21910454e 30 _AOAFOILASSIST // variable AOA foil assist
Dannis_mbed 0:81b21910454e 31 };
Dannis_mbed 0:81b21910454e 32
Dannis_mbed 0:81b21910454e 33 class SystemVar
Dannis_mbed 0:81b21910454e 34 {
Dannis_mbed 0:81b21910454e 35 private:
Dannis_mbed 0:81b21910454e 36 // variable
Dannis_mbed 0:81b21910454e 37
Dannis_mbed 0:81b21910454e 38 char cValue[4];
Dannis_mbed 1:b4a0d63db637 39 char cMessage;
Dannis_mbed 0:81b21910454e 40
Dannis_mbed 0:81b21910454e 41 VALUE_t value;
Dannis_mbed 0:81b21910454e 42
Dannis_mbed 0:81b21910454e 43 uint32_t uiCounter;
Dannis_mbed 0:81b21910454e 44 uint32_t uiRoll[2];
Dannis_mbed 0:81b21910454e 45 uint32_t uiPitch[2];
Dannis_mbed 0:81b21910454e 46 uint32_t uiPHeight;
Dannis_mbed 0:81b21910454e 47 uint32_t uiSHeight;
Dannis_mbed 0:81b21910454e 48 uint32_t uiPCurrent;
Dannis_mbed 0:81b21910454e 49 uint32_t uiSCurrent;
Dannis_mbed 0:81b21910454e 50 uint32_t uiSpeed;
Dannis_mbed 0:81b21910454e 51 uint32_t uiVarMaxRoll;
Dannis_mbed 0:81b21910454e 52 uint32_t uiVarMinPitch;
Dannis_mbed 0:81b21910454e 53 uint32_t uivVarMaxPitch;
Dannis_mbed 0:81b21910454e 54 uint32_t uivVarTakeOffSpeed;
Dannis_mbed 0:81b21910454e 55 uint32_t uivVarHeightFoilBorne;
Dannis_mbed 0:81b21910454e 56 uint32_t uivVarHeightFoilAssist;
Dannis_mbed 0:81b21910454e 57 uint32_t uivVarAOAFoilAssist;
Dannis_mbed 0:81b21910454e 58
Dannis_mbed 0:81b21910454e 59 bool bError;
Dannis_mbed 0:81b21910454e 60
Dannis_mbed 0:81b21910454e 61 public:
Dannis_mbed 0:81b21910454e 62 // Constructor
Dannis_mbed 0:81b21910454e 63 SystemVar();
Dannis_mbed 0:81b21910454e 64 // Destructor
Dannis_mbed 0:81b21910454e 65 ~SystemVar();
Dannis_mbed 0:81b21910454e 66
Dannis_mbed 0:81b21910454e 67 // Gets
Dannis_mbed 0:81b21910454e 68 char* getValue(void);
Dannis_mbed 0:81b21910454e 69 int iGetRollPolarity(void);
Dannis_mbed 1:b4a0d63db637 70 int iGetPitchPolarity(void);
Dannis_mbed 1:b4a0d63db637 71 uint32_t uiGetRoll(void);
Dannis_mbed 1:b4a0d63db637 72 int32_t iGetHeightFoilBorne(void);
Dannis_mbed 0:81b21910454e 73
Dannis_mbed 0:81b21910454e 74 // Sets
Dannis_mbed 0:81b21910454e 75 void vSetRoll(Quaternion);
Dannis_mbed 0:81b21910454e 76 void vSetPitch(Quaternion);
Dannis_mbed 0:81b21910454e 77 void vSetPHeight(uint32_t);
Dannis_mbed 0:81b21910454e 78 void vSetSHeight(uint32_t);
Dannis_mbed 0:81b21910454e 79 void vSetPCurrent(uint32_t);
Dannis_mbed 0:81b21910454e 80 void vSetSCurrent(uint32_t);
Dannis_mbed 0:81b21910454e 81 void vSetSpeed(uint32_t);
Dannis_mbed 0:81b21910454e 82 // Set variables
Dannis_mbed 0:81b21910454e 83 void vVarMaxRoll(uint32_t);
Dannis_mbed 0:81b21910454e 84 void vVarMinPitch(uint32_t);
Dannis_mbed 0:81b21910454e 85 void vVarMaxPitch(uint32_t);
Dannis_mbed 0:81b21910454e 86 void vVarTakeOffSpeed(uint32_t);
Dannis_mbed 0:81b21910454e 87 void vVarHeightFoilBorne(uint32_t);
Dannis_mbed 0:81b21910454e 88 void vVarHeightFoilAssist(uint32_t);
Dannis_mbed 0:81b21910454e 89 void vVarAOAFoilAssist(uint32_t);
Dannis_mbed 0:81b21910454e 90
Dannis_mbed 0:81b21910454e 91 // Other functions
Dannis_mbed 1:b4a0d63db637 92 void init(void);
Dannis_mbed 0:81b21910454e 93 void itoa( uint32_t , char *);
Dannis_mbed 0:81b21910454e 94 void cShowValue(VALUE_t);
Dannis_mbed 0:81b21910454e 95
Dannis_mbed 0:81b21910454e 96 };
Dannis_mbed 0:81b21910454e 97 #endif