2nd Library

Committer:
altb2
Date:
Tue Apr 27 07:49:53 2021 +0000
Revision:
4:db615f5fa407
Parent:
1:b54eb3e24d2d
.

Who changed what in which revision?

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