![]() |
ISSDK
1.8
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 1752 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 1394 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 1589 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 24 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 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().
void fRunMagCalibration | ( | struct MagCalibration * | pthisMagCal, |
struct MagBuffer * | pthisMagBuffer, | ||
struct MagSensor * | pthisMag, | ||
int32 | loopcounter | ||
) |
Definition at line 313 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 961 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 443 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 674 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 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().