Control Library by altb

Dependents:   My_Libraries IndNav_QK3_T265

Committer:
pmic
Date:
Thu Jul 25 12:03:42 2019 +0000
Revision:
4:74a4318390ea
Parent:
0:d49418189c5c
Latest changes in GPA from May 2019

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pmic 4:74a4318390ea 1 #ifndef GPA_H_
pmic 4:74a4318390ea 2 #define GPA_H_
pmic 4:74a4318390ea 3
altb 0:d49418189c5c 4 class GPA
altb 0:d49418189c5c 5 {
altb 0:d49418189c5c 6 public:
pmic 4:74a4318390ea 7
pmic 4:74a4318390ea 8 typedef struct GPADATA {
pmic 4:74a4318390ea 9 float fexc;
pmic 4:74a4318390ea 10 float absGyu;
pmic 4:74a4318390ea 11 float angGyu;
pmic 4:74a4318390ea 12 float absGyr;
pmic 4:74a4318390ea 13 float angGyr;
pmic 4:74a4318390ea 14 float Umag;
pmic 4:74a4318390ea 15 float Ymag;
pmic 4:74a4318390ea 16 float Rmag;
pmic 4:74a4318390ea 17 bool MeasPointFinished;
pmic 4:74a4318390ea 18 } gpadata_t;
pmic 4:74a4318390ea 19
altb 0:d49418189c5c 20 GPA(float fMin, float fMax, int NfexcDes, float Aexc0, float Aexc1, float Ts);
pmic 4:74a4318390ea 21 GPA(float fMin, float fMax, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep);
pmic 4:74a4318390ea 22 GPA(float f0, float f1, float *fexcDes, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep);
pmic 4:74a4318390ea 23 GPA(float *fexcDes, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep);
pmic 4:74a4318390ea 24 GPA(float fMin, float fMax, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep, bool doPrint);
altb 0:d49418189c5c 25
pmic 4:74a4318390ea 26 float operator()(float inp, float out)
pmic 4:74a4318390ea 27 {
altb 0:d49418189c5c 28 return update((double)inp, (double)out);
altb 0:d49418189c5c 29 }
altb 0:d49418189c5c 30
altb 0:d49418189c5c 31 virtual ~GPA();
altb 0:d49418189c5c 32
altb 0:d49418189c5c 33 void reset();
altb 0:d49418189c5c 34 float update(double inp, double out);
altb 0:d49418189c5c 35
altb 0:d49418189c5c 36 void printGPAfexcDes();
altb 0:d49418189c5c 37 void printGPAmeasPara();
altb 0:d49418189c5c 38 void printGPAmeasTime();
altb 0:d49418189c5c 39 void printNfexcDes();
pmic 4:74a4318390ea 40 void printLine();
pmic 4:74a4318390ea 41
pmic 4:74a4318390ea 42 gpadata_t getGPAdata();
altb 0:d49418189c5c 43
altb 0:d49418189c5c 44 private:
altb 0:d49418189c5c 45
altb 0:d49418189c5c 46 int NfexcDes;
altb 0:d49418189c5c 47 int NperMin;
altb 0:d49418189c5c 48 int NmeasMin;
altb 0:d49418189c5c 49 double Ts;
altb 0:d49418189c5c 50 double *fexcDes;
altb 0:d49418189c5c 51 double aAexcDes;
altb 0:d49418189c5c 52 double bAexcDes;
altb 0:d49418189c5c 53
altb 0:d49418189c5c 54 double fnyq;
altb 0:d49418189c5c 55 double pi2;
pmic 4:74a4318390ea 56 double pi4;
altb 0:d49418189c5c 57 double pi2Ts;
altb 0:d49418189c5c 58 double piDiv2;
pmic 4:74a4318390ea 59 double rad2deg;
pmic 4:74a4318390ea 60 double div12pi;
pmic 4:74a4318390ea 61 double div812pi;
altb 0:d49418189c5c 62
altb 0:d49418189c5c 63 int Nmeas;
altb 0:d49418189c5c 64 int Nper;
altb 0:d49418189c5c 65 double dfexc;
altb 0:d49418189c5c 66 double fexc;
altb 0:d49418189c5c 67 double fexcPast;
pmic 4:74a4318390ea 68 double dfexcj;
altb 0:d49418189c5c 69 int i;
altb 0:d49418189c5c 70 int j;
altb 0:d49418189c5c 71 double scaleG;
altb 0:d49418189c5c 72 double cr;
altb 0:d49418189c5c 73 double ci;
altb 0:d49418189c5c 74 double *sU;
altb 0:d49418189c5c 75 double *sY;
altb 0:d49418189c5c 76 double sinarg;
pmic 4:74a4318390ea 77 double sinargR;
altb 0:d49418189c5c 78 int NmeasTotal;
altb 0:d49418189c5c 79 double Aexc;
altb 0:d49418189c5c 80 double AexcPast;
altb 0:d49418189c5c 81 double pi2Tsfexc;
pmic 4:74a4318390ea 82 int Nstart;
altb 0:d49418189c5c 83 int Nsweep;
pmic 4:74a4318390ea 84 int Nsweep_i;
altb 0:d49418189c5c 85 double AexcOut;
pmic 4:74a4318390ea 86
pmic 4:74a4318390ea 87 gpadata_t gpaData;
pmic 4:74a4318390ea 88 bool doPrint;
pmic 4:74a4318390ea 89
pmic 4:74a4318390ea 90 void assignParameters(int NfexcDes, int NperMin, int NmeasMin, double Ts, int Nstart, int Nsweep);
altb 0:d49418189c5c 91 void calculateDecreasingAmplitudeCoefficients(double Aexc0, double Aexc1);
altb 0:d49418189c5c 92 void initializeConstants(double Ts);
altb 0:d49418189c5c 93 void assignFilterStorage();
altb 0:d49418189c5c 94 void fexcDesLogspace(double fMin, double fMax, int NfexcDes);
altb 0:d49418189c5c 95 void calcGPAmeasPara(double fexcDes_i);
altb 0:d49418189c5c 96 double wrapAngle(double angle);
altb 0:d49418189c5c 97 void printLongLine();
altb 0:d49418189c5c 98
pmic 4:74a4318390ea 99 };
pmic 4:74a4318390ea 100
pmic 4:74a4318390ea 101 #endif