![]() |
ISSDK
1.7
IoT Sensing Software Development Kit
|
Lower level magnetic calibration interface. More...
Go to the source code of this file.
Macros | |
#define | MATRIX_7_SIZE 7 |
#define | MATRIX_10_SIZE 10 |
Functions | |
void | fInitializeMagCalibration (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer) |
void | iUpdateMagBuffer (struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag, int32 loopcounter) |
void | fInvertMagCal (struct MagSensor *pthisMag, struct MagCalibration *pthisMagCal) |
void | fRunMagCalibration (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag, int32 loopcounter) |
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) |
void | fComputeMagCalibration4 (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag) |
void | fComputeMagCalibration7 (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag) |
void | fComputeMagCalibration10 (struct MagCalibration *pthisMagCal, struct MagBuffer *pthisMagBuffer, struct MagSensor *pthisMag) |
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.c.
#define MATRIX_10_SIZE 10 |
Referenced by fUpdateMagCalibration10Slice().
#define MATRIX_7_SIZE 7 |
Referenced by fUpdateMagCalibration7Slice().
void fComputeMagCalibration10 | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag | ||
) |
Definition at line 1778 of file magnetic.c.
References CHX, CHY, CHZ, DEFAULTB, f3x3matrixAeqAxScalar(), f3x3matrixAeqInvSymB(), f3x3matrixAeqMinusA(), f3x3matrixDetA(), MagCalibration::fA, fEigenCompute10(), MagCalibration::finvA, MagCalibration::fmatA, MagCalibration::fmatB, MagCalibration::ftrB, MagCalibration::ftrFitErrorpc, MagCalibration::ftrinvW, MagCalibration::ftrV, MagSensor::fuTPerCount, MagCalibration::fvecA, MagBuffer::iBs, MagBuffer::iMagBufferCount, MagBuffer::index, MAGBUFFSIZEX, MAGBUFFSIZEY, ONESIXTH, and ONETHIRD.
void fComputeMagCalibration4 | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag | ||
) |
Definition at line 1420 of file magnetic.c.
References CHX, CHY, CHZ, DEFAULTB, f3x3matrixAeqI(), MagCalibration::fmatA, MagCalibration::fmatB, fmatrixAeqInvA(), MagCalibration::ftrB, MagCalibration::ftrFitErrorpc, MagCalibration::ftrinvW, MagCalibration::ftrV, MagSensor::fuTPerCount, MagCalibration::fvecA, MagCalibration::fvecB, MagBuffer::iBs, MagBuffer::iMagBufferCount, MagBuffer::index, MAGBUFFSIZEX, and MAGBUFFSIZEY.
void fComputeMagCalibration7 | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag | ||
) |
Definition at line 1615 of file magnetic.c.
References CHX, CHY, CHZ, DEFAULTB, f3x3matrixAeqAxScalar(), f3x3matrixAeqI(), f3x3matrixAeqMinusA(), f3x3matrixAeqScalar(), MagCalibration::fA, fEigenCompute10(), MagCalibration::fmatA, MagCalibration::fmatB, MagCalibration::ftrB, MagCalibration::ftrinvW, MagCalibration::ftrV, MagSensor::fuTPerCount, MagCalibration::fvecA, MagBuffer::iBs, MagBuffer::iMagBufferCount, MagBuffer::index, MAGBUFFSIZEX, MAGBUFFSIZEY, ONESIXTH, and ONETHIRD.
void fInitializeMagCalibration | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer | ||
) |
Definition at line 50 of file magnetic.c.
References CALIBRATION_NVM_ADDR, CHX, CHY, CHZ, DEFAULTB, f3x3matrixAeqI(), MagCalibration::fB, MagCalibration::fBSq, MagCalibration::fFitErrorpc, MagCalibration::finvW, MagCalibration::fV, MagCalibration::i10ElementSolverTried, MagCalibration::i4ElementSolverTried, MagCalibration::i7ElementSolverTried, MagCalibration::iCalInProgress, MagCalibration::iInitiateMagCal, MagBuffer::iMagBufferCount, MagCalibration::iMagBufferReadOnly, MagBuffer::index, MagCalibration::iNewCalibrationAvailable, MagCalibration::iValidMagCal, MAG_NVM_OFFSET, MAGBUFFSIZEX, MAGBUFFSIZEY, PI, and MagBuffer::tanarray.
Referenced by DecodeCommandBytes(), and initializeFusionEngine().
void fInvertMagCal | ( | struct MagSensor * | pthisMag, |
struct MagCalibration * | pthisMagCal | ||
) |
Definition at line 311 of file magnetic.c.
References CHX, CHY, CHZ, MagSensor::fBc, MagSensor::fBs, MagSensor::fCountsPeruT, MagCalibration::finvW, MagCalibration::fV, and MagSensor::iBc.
Referenced by processMagData().
void fRunMagCalibration | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag, | ||
int32 | loopcounter | ||
) |
Definition at line 339 of file magnetic.c.
References CAL_INTERVAL_SECS, CHX, CHZ, MagCalibration::fB, MagCalibration::fBSq, MagCalibration::fFitErrorpc, MagCalibration::finvW, FITERRORAGINGSECS, MagCalibration::ftrB, MagCalibration::ftrFitErrorpc, MagCalibration::ftrinvW, MagCalibration::ftrV, fUpdateMagCalibration10Slice(), fUpdateMagCalibration4Slice(), fUpdateMagCalibration7Slice(), FUSION_HZ, MagCalibration::fV, MagCalibration::i10ElementSolverTried, MagCalibration::i4ElementSolverTried, MagCalibration::i7ElementSolverTried, MagCalibration::iCalInProgress, MagCalibration::iInitiateMagCal, MagBuffer::iMagBufferCount, MagBuffer::index, MagCalibration::iNewCalibrationAvailable, MagCalibration::iValidMagCal, MAGBUFFSIZEX, MAGBUFFSIZEY, MAXBFITUT, MINBFITUT, MINMEASUREMENTS10CAL, MINMEASUREMENTS4CAL, and MINMEASUREMENTS7CAL.
Referenced by processMagData().
void fUpdateMagCalibration10Slice | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag | ||
) |
Definition at line 987 of file magnetic.c.
References CHX, CHY, CHZ, f3x3matrixAeqAxScalar(), f3x3matrixAeqInvSymB(), f3x3matrixAeqMinusA(), f3x3matrixDetA(), MagCalibration::fA, fComputeEigSlice(), MagCalibration::finvA, MagCalibration::fmatA, MagCalibration::fmatB, MagCalibration::ftrB, MagCalibration::ftrFitErrorpc, MagCalibration::ftrinvW, MagCalibration::ftrV, MagSensor::fuTPerCount, MagCalibration::fvecA, MagBuffer::iBs, MagCalibration::iCalInProgress, MagCalibration::iInitiateMagCal, MagBuffer::iMagBufferCount, MagCalibration::iMagBufferReadOnly, MagCalibration::iMeanBs, MagBuffer::index, MagCalibration::iNewCalibrationAvailable, MagCalibration::iSumBs, MagCalibration::itimeslice, MAGBUFFSIZEX, MAGBUFFSIZEY, MATRIX_10_SIZE, and ONETHIRD.
Referenced by fRunMagCalibration().
void fUpdateMagCalibration4Slice | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag | ||
) |
Definition at line 469 of file magnetic.c.
References CHX, CHY, CHZ, f3x3matrixAeqI(), MagCalibration::fmatA, MagCalibration::fmatB, fmatrixAeqInvA(), MagCalibration::ftrB, MagCalibration::ftrFitErrorpc, MagCalibration::ftrinvW, MagCalibration::ftrV, MagSensor::fuTPerCount, MagCalibration::fvecA, MagCalibration::fvecB, MagCalibration::fYTY, MagBuffer::iBs, MagCalibration::iCalInProgress, MagCalibration::iInitiateMagCal, MagBuffer::iMagBufferCount, MagCalibration::iMagBufferReadOnly, MagCalibration::iMeanBs, MagBuffer::index, MagCalibration::iNewCalibrationAvailable, MagCalibration::iSumBs, MagCalibration::itimeslice, MAGBUFFSIZEX, and MAGBUFFSIZEY.
Referenced by fRunMagCalibration().
void fUpdateMagCalibration7Slice | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag | ||
) |
Definition at line 700 of file magnetic.c.
References CHX, CHY, CHZ, MagCalibration::fA, fComputeEigSlice(), MagCalibration::fmatA, MagCalibration::fmatB, MagCalibration::ftrB, MagCalibration::ftrFitErrorpc, MagCalibration::ftrinvW, MagCalibration::ftrV, MagSensor::fuTPerCount, MagCalibration::fvecA, MagBuffer::iBs, MagCalibration::iCalInProgress, MagCalibration::iInitiateMagCal, MagBuffer::iMagBufferCount, MagCalibration::iMagBufferReadOnly, MagCalibration::iMeanBs, MagBuffer::index, MagCalibration::iNewCalibrationAvailable, MagCalibration::iSumBs, MagCalibration::itimeslice, MAGBUFFSIZEX, MAGBUFFSIZEY, MATRIX_7_SIZE, and ONETHIRD.
Referenced by fRunMagCalibration().
void iUpdateMagBuffer | ( | struct MagBuffer * | pthisMagBuffer, |
struct MagSensor * | pthisMag, | ||
int32 | loopcounter | ||
) |
Definition at line 117 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().