ISSDK  1.8
IoT Sensing Software Development Kit
Data Structures | Macros
magnetic.h File Reference

Lower level magnetic calibration interface. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  MagBuffer
 
struct  MagCalibration
 Magnetic Calibration Structure. More...
 

Macros

#define F_USING_MAG   0x0002
 
Magnetic Calibration Constants
#define MAGBUFFSIZEX   14
 x dimension in magnetometer buffer (12x24 equals 288 elements) More...
 
#define MAGBUFFSIZEY   (2 * MAGBUFFSIZEX)
 y dimension in magnetometer buffer (12x24 equals 288 elements) More...
 
#define MINMEASUREMENTS4CAL   110
 minimum number of measurements for 4 element calibration More...
 
#define MINMEASUREMENTS7CAL   220
 minimum number of measurements for 7 element calibration More...
 
#define MINMEASUREMENTS10CAL   330
 minimum number of measurements for 10 element calibration More...
 
#define MAXMEASUREMENTS   360
 maximum number of measurements used for calibration More...
 
#define CAL_INTERVAL_SECS   300
 300s or 5min interval for regular calibration checks More...
 
#define MINBFITUT   10.0F
 minimum acceptable geomagnetic field B (uT) for valid calibration More...
 
#define MAXBFITUT   90.0F
 maximum acceptable geomagnetic field B (uT) for valid calibration More...
 
#define FITERRORAGINGSECS   86400.0F
 24 hours: time (s) for fit error to increase (age) by e=2.718 More...
 
#define MESHDELTACOUNTS   50
 magnetic buffer mesh spacing in counts (here 5uT) More...
 
#define DEFAULTB   50.0F
 default geomagnetic field (uT) More...
 

Functions

Function prototypes for functions in magnetic.c

These functions comprise the core of the magnetic calibration features of the library. Parameter descriptions are not included here, as details are provided in sensor_fusion.h.

void fInitializeMagCalibration (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer)
 
void iUpdateMagBuffer (struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag, int32_t loopcounter)
 
void fInvertMagCal (struct MagSensor *pthisMag, struct MagCalibration *pthisMagCal)
 
void fRunMagCalibration (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag, int32_t loopcounter)
 
void fUpdateMagCalibration4 (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag)
 
void fUpdateMagCalibration7 (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag)
 
void fUpdateMagCalibration10 (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag)
 
void fUpdateMagCalibration4Slice (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag)
 
void fUpdateMagCalibration7Slice (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag)
 
void fUpdateMagCalibration10Slice (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag)
 

Detailed Description

Lower level magnetic calibration interface.

Many developers can utilize the NXP Sensor Fusion Library without ever making any adjustment to the lower level magnetic calibration functions defined in this file.

Definition in file magnetic.h.

Macro Definition Documentation

◆ CAL_INTERVAL_SECS

#define CAL_INTERVAL_SECS   300

300s or 5min interval for regular calibration checks

Definition at line 33 of file magnetic.h.

Referenced by fRunMagCalibration().

◆ DEFAULTB

#define DEFAULTB   50.0F

default geomagnetic field (uT)

Definition at line 38 of file magnetic.h.

Referenced by fComputeMagCalibration10(), fComputeMagCalibration4(), fComputeMagCalibration7(), and fInitializeMagCalibration().

◆ F_USING_MAG

#define F_USING_MAG   0x0002

◆ FITERRORAGINGSECS

#define FITERRORAGINGSECS   86400.0F

24 hours: time (s) for fit error to increase (age) by e=2.718

Definition at line 36 of file magnetic.h.

Referenced by fRunMagCalibration().

◆ MAGBUFFSIZEX

#define MAGBUFFSIZEX   14

◆ MAGBUFFSIZEY

#define MAGBUFFSIZEY   (2 * MAGBUFFSIZEX)

◆ MAXBFITUT

#define MAXBFITUT   90.0F

maximum acceptable geomagnetic field B (uT) for valid calibration

Definition at line 35 of file magnetic.h.

Referenced by fRunMagCalibration().

◆ MAXMEASUREMENTS

#define MAXMEASUREMENTS   360

maximum number of measurements used for calibration

Definition at line 32 of file magnetic.h.

Referenced by iUpdateMagBuffer().

◆ MESHDELTACOUNTS

#define MESHDELTACOUNTS   50

magnetic buffer mesh spacing in counts (here 5uT)

Definition at line 37 of file magnetic.h.

Referenced by iUpdateMagBuffer().

◆ MINBFITUT

#define MINBFITUT   10.0F

minimum acceptable geomagnetic field B (uT) for valid calibration

Definition at line 34 of file magnetic.h.

Referenced by fRunMagCalibration().

◆ MINMEASUREMENTS10CAL

#define MINMEASUREMENTS10CAL   330

minimum number of measurements for 10 element calibration

Definition at line 31 of file magnetic.h.

Referenced by fRunMagCalibration().

◆ MINMEASUREMENTS4CAL

#define MINMEASUREMENTS4CAL   110

minimum number of measurements for 4 element calibration

Definition at line 29 of file magnetic.h.

Referenced by fRunMagCalibration().

◆ MINMEASUREMENTS7CAL

#define MINMEASUREMENTS7CAL   220

minimum number of measurements for 7 element calibration

Definition at line 30 of file magnetic.h.

Referenced by fRunMagCalibration().

Function Documentation

◆ fInitializeMagCalibration()

void fInitializeMagCalibration ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer 
)

◆ fInvertMagCal()

void fInvertMagCal ( struct MagSensor pthisMag,
struct MagCalibration pthisMagCal 
)

Definition at line 285 of file magnetic.c.

References CHX, CHY, CHZ, MagSensor::fBc, MagSensor::fBs, MagSensor::fCountsPeruT, MagCalibration::finvW, MagCalibration::fV, and MagSensor::iBc.

Referenced by processMagData().

Here is the caller graph for this function:

◆ fRunMagCalibration()

void fRunMagCalibration ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag,
int32_t  loopcounter 
)

◆ fUpdateMagCalibration10()

void fUpdateMagCalibration10 ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag 
)

◆ fUpdateMagCalibration10Slice()

void fUpdateMagCalibration10Slice ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag 
)

◆ fUpdateMagCalibration4()

void fUpdateMagCalibration4 ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag 
)

◆ fUpdateMagCalibration4Slice()

void fUpdateMagCalibration4Slice ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag 
)

◆ fUpdateMagCalibration7()

void fUpdateMagCalibration7 ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag 
)

◆ fUpdateMagCalibration7Slice()

void fUpdateMagCalibration7Slice ( struct MagCalibration pthisMagCal,
struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag 
)

◆ iUpdateMagBuffer()

void iUpdateMagBuffer ( struct MagBuffer pthisMagBuffer,
struct MagSensor pthisMag,
int32_t  loopcounter 
)

Definition at line 91 of file magnetic.c.

References CHX, CHY, CHZ, MagSensor::iBc, MagBuffer::iBs, MagSensor::iBs, MagBuffer::iMagBufferCount, MagBuffer::index, MAGBUFFSIZEX, MAGBUFFSIZEY, MAXMEASUREMENTS, MESHDELTACOUNTS, and MagBuffer::tanarray.

Referenced by processMagData().

Here is the caller graph for this function: