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:
Tue Aug 11 08:38:55 2015 +0000
Revision:
2:f6d058931b17
Parent:
1:b4a0d63db637
Test version mainmodule

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 2:f6d058931b17 53 uint32_t uiVarMaxPitch;
Dannis_mbed 2:f6d058931b17 54 uint32_t uiVarTakeOffSpeed;
Dannis_mbed 2:f6d058931b17 55 uint32_t uiVarHeightFoilBorne;
Dannis_mbed 2:f6d058931b17 56 uint32_t uiVarHeightFoilAssist;
Dannis_mbed 2:f6d058931b17 57 uint32_t uiVarAOAFoilAssist;
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 2:f6d058931b17 72 uint32_t uiGetPitch(void);
Dannis_mbed 1:b4a0d63db637 73 int32_t iGetHeightFoilBorne(void);
Dannis_mbed 2:f6d058931b17 74 uint32_t uiGetVarMaxRoll(void);
Dannis_mbed 2:f6d058931b17 75 uint32_t uiGetVarMinPitch(void);
Dannis_mbed 2:f6d058931b17 76 uint32_t uiGetVarMaxPitch(void);
Dannis_mbed 2:f6d058931b17 77 uint32_t uiGetVarTakeOffSpeed(void);
Dannis_mbed 2:f6d058931b17 78 uint32_t uiGetVarHeightFoilBorne(void);
Dannis_mbed 2:f6d058931b17 79 uint32_t uiGetVarHeightFoilAssist(void);
Dannis_mbed 2:f6d058931b17 80 uint32_t uiGetVarAOAFoilAssist(void);
Dannis_mbed 2:f6d058931b17 81
Dannis_mbed 0:81b21910454e 82
Dannis_mbed 0:81b21910454e 83 // Sets
Dannis_mbed 0:81b21910454e 84 void vSetRoll(Quaternion);
Dannis_mbed 0:81b21910454e 85 void vSetPitch(Quaternion);
Dannis_mbed 0:81b21910454e 86 void vSetPHeight(uint32_t);
Dannis_mbed 0:81b21910454e 87 void vSetSHeight(uint32_t);
Dannis_mbed 0:81b21910454e 88 void vSetPCurrent(uint32_t);
Dannis_mbed 0:81b21910454e 89 void vSetSCurrent(uint32_t);
Dannis_mbed 0:81b21910454e 90 void vSetSpeed(uint32_t);
Dannis_mbed 0:81b21910454e 91 // Set variables
Dannis_mbed 0:81b21910454e 92 void vVarMaxRoll(uint32_t);
Dannis_mbed 0:81b21910454e 93 void vVarMinPitch(uint32_t);
Dannis_mbed 0:81b21910454e 94 void vVarMaxPitch(uint32_t);
Dannis_mbed 0:81b21910454e 95 void vVarTakeOffSpeed(uint32_t);
Dannis_mbed 0:81b21910454e 96 void vVarHeightFoilBorne(uint32_t);
Dannis_mbed 0:81b21910454e 97 void vVarHeightFoilAssist(uint32_t);
Dannis_mbed 0:81b21910454e 98 void vVarAOAFoilAssist(uint32_t);
Dannis_mbed 0:81b21910454e 99
Dannis_mbed 0:81b21910454e 100 // Other functions
Dannis_mbed 1:b4a0d63db637 101 void init(void);
Dannis_mbed 0:81b21910454e 102 void itoa( uint32_t , char *);
Dannis_mbed 0:81b21910454e 103 void cShowValue(VALUE_t);
Dannis_mbed 2:f6d058931b17 104 void vIncrease(VALUE_t);
Dannis_mbed 2:f6d058931b17 105 void vDecrease(VALUE_t);
Dannis_mbed 0:81b21910454e 106
Dannis_mbed 0:81b21910454e 107 };
Dannis_mbed 0:81b21910454e 108 #endif