1 #ifndef GM_MFAM_FILTER_HPP_
2 #define GM_MFAM_FILTER_HPP_
4 #ifndef GEO_MFAM_FULL_FILTER
5 #error GmMfamFilter.hpp should only be included if the feature is enabled.
9 #include <geotypes.hpp>
11 #ifndef GMMFAMDATA_HPP_
12 #include <GmMfamData.hpp>
18 class MfamLokiInterpolator;
20 #if GEO_MFAM_FULL_FILTER == GEO_TRUE
31 #define MFAM_MAG1_FILTER 0
32 #define MFAM_MAG2_FILTER 1
33 #define MFAM_COUNT_STAGE_1_FILTERS (MFAM_MAG2_FILTER + 1)
34 #define MFAM_GYRO_X_FILTER 2
35 #define MFAM_GYRO_Y_FILTER 3
36 #define MFAM_GYRO_Z_FILTER 4
37 #define MFAM_COMPASS_X_FILTER 5
38 #define MFAM_COMPASS_Y_FILTER 6
39 #define MFAM_COMPASS_Z_FILTER 7
40 #define MFAM_ACCEL_X_FILTER 8
41 #define MFAM_ACCEL_Y_FILTER 9
42 #define MFAM_ACCEL_Z_FILTER 10
43 #define MFAM_TEMP_FILTER 11
44 #define MFAM_COUNT_STAGE_2_FILTERS (MFAM_TEMP_FILTER + 1)
62 const double *mHalfTaps;
79 bool IsAvailable (uint32_t startRate,
86 bool SelectFilter (uint32_t startRate,
98 int AddValues (
int fid,
99 uint64_t tezzeretCounter,
104 IndexedMfamFilteredPacketWithHeader &newPacket,
108 ti_sysbios_knl_Semaphore_Handle decimationSemaphore,
109 bool &recordEmitted);
115 double *MakeAccumulators (
int count);
116 bool MakeCenterRecords ();
117 bool MakeValueIndexes ();
118 void CleanAccumulators (
int accumulatorIndex);
121 int mCountAccumulatorsPerFilter,
124 mModulusOfFirstValue,
125 mCenterCounterOffset,
129 double *mAccumulators;
133 uint64_t *mCenterRecordCounters;
135 mLastCompleteAccumulator;
148 void InterpolateAccelValues (
int index);
149 void InterpolateGyroValues (
int index);
150 void InterpolateCompassValues (
int index);
151 void InterpolateAuxValues(
int index);
158 #define RAW_FREQUENCY_DATA_BUFFER_COUNT (200)
160 #if GEO_MFAM_FREQUENCY_MEASURE == GEO_TRUE
165 int SetDownsampleRate (
int downsampleRate);
166 int AddValue (
double newValue);
167 double CalculateFrequencyResponse ();
173 int mSamplesMeasured;
175 double mFrequencyToMeasure;
176 double mRealWeight, mImaginaryWeight;
Definition: GmMfamFilter.hpp:161
Definition: GmMfamFilter.hpp:72
Definition: GmMfamFilter.hpp:142
GmApp/GmLoggingApp.hpp>
Definition: Analogs.hpp:47
Definition: GmMfamFilter.hpp:52
Definition: GmMfamData.hpp:242