Control Library by altb
Dependents: My_Libraries IndNav_QK3_T265
GPA.h@15:c70cad2f4e64, 2020-01-16 (annotated)
- Committer:
- pmic
- Date:
- Thu Jan 16 09:12:50 2020 +0000
- Revision:
- 15:c70cad2f4e64
- Parent:
- 6:694fe8894215
Revisit IIR_filter.h and IIR_filter.cpp. Change internal double to float arithmetic.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pmic | 6:694fe8894215 | 1 | #ifndef GPA_H_ |
pmic | 6:694fe8894215 | 2 | #define GPA_H_ |
pmic | 6:694fe8894215 | 3 | |
altb | 0:d49418189c5c | 4 | class GPA |
altb | 0:d49418189c5c | 5 | { |
altb | 0:d49418189c5c | 6 | public: |
pmic | 6:694fe8894215 | 7 | |
pmic | 6:694fe8894215 | 8 | typedef struct GPADATA { |
pmic | 6:694fe8894215 | 9 | float fexc; |
pmic | 6:694fe8894215 | 10 | float absGyu; |
pmic | 6:694fe8894215 | 11 | float angGyu; |
pmic | 6:694fe8894215 | 12 | float absGyr; |
pmic | 6:694fe8894215 | 13 | float angGyr; |
pmic | 6:694fe8894215 | 14 | float Umag; |
pmic | 6:694fe8894215 | 15 | float Ymag; |
pmic | 6:694fe8894215 | 16 | float Rmag; |
pmic | 6:694fe8894215 | 17 | bool MeasPointFinished; |
pmic | 6:694fe8894215 | 18 | } gpadata_t; |
pmic | 6:694fe8894215 | 19 | |
altb | 0:d49418189c5c | 20 | GPA(float fMin, float fMax, int NfexcDes, float Aexc0, float Aexc1, float Ts); |
pmic | 6:694fe8894215 | 21 | GPA(float fMin, float fMax, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep); |
pmic | 6:694fe8894215 | 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 | 6:694fe8894215 | 23 | GPA(float *fexcDes, int NfexcDes, int NperMin, int NmeasMin, float Ts, float Aexc0, float Aexc1, int Nstart, int Nsweep); |
pmic | 6:694fe8894215 | 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 | 6:694fe8894215 | 26 | float operator()(float inp, float out) |
pmic | 6:694fe8894215 | 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 | 6:694fe8894215 | 40 | void printLine(); |
pmic | 6:694fe8894215 | 41 | |
pmic | 6:694fe8894215 | 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 | 6:694fe8894215 | 56 | double pi4; |
altb | 0:d49418189c5c | 57 | double pi2Ts; |
altb | 0:d49418189c5c | 58 | double piDiv2; |
pmic | 6:694fe8894215 | 59 | double rad2deg; |
pmic | 6:694fe8894215 | 60 | double div12pi; |
pmic | 6:694fe8894215 | 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 | 6:694fe8894215 | 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 | 6:694fe8894215 | 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 | 6:694fe8894215 | 82 | int Nstart; |
altb | 0:d49418189c5c | 83 | int Nsweep; |
pmic | 6:694fe8894215 | 84 | int Nsweep_i; |
altb | 0:d49418189c5c | 85 | double AexcOut; |
pmic | 6:694fe8894215 | 86 | |
pmic | 6:694fe8894215 | 87 | gpadata_t gpaData; |
pmic | 6:694fe8894215 | 88 | bool doPrint; |
pmic | 6:694fe8894215 | 89 | |
pmic | 6:694fe8894215 | 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 | 6:694fe8894215 | 99 | }; |
pmic | 6:694fe8894215 | 100 | |
pmic | 6:694fe8894215 | 101 | #endif |