This file implements SbgECom commands related to Magnetometer module. More...
#include "sbgEComCmdCommon.h"
Go to the source code of this file.
Classes | |
struct | _SbgEComMagCalibResults |
struct | _SbgEComMagRejectionConf |
Macros | |
#define | SBG_ECOM_MAG_CALIB_ALIGNMENT_ISSUE (0x0020u) |
#define | SBG_ECOM_MAG_CALIB_NOT_ENOUGH_POINTS (0x0001u) |
#define | SBG_ECOM_MAG_CALIB_TOO_MUCH_DISTORTIONS (0x0002u) |
#define | SBG_ECOM_MAG_CALIB_X_MOTION_ISSUE (0x0004u) |
#define | SBG_ECOM_MAG_CALIB_Y_MOTION_ISSUE (0x0008u) |
#define | SBG_ECOM_MAG_CALIB_Z_MOTION_ISSUE (0x0010u) |
Typedefs | |
typedef enum _SbgEComMagCalibBandwidth | SbgEComMagCalibBandwidth |
typedef enum _SbgEComMagCalibConfidence | SbgEComMagCalibConfidence |
typedef enum _SbgEComMagCalibMode | SbgEComMagCalibMode |
typedef enum _SbgEComMagCalibQuality | SbgEComMagCalibQuality |
typedef struct _SbgEComMagCalibResults | SbgEComMagCalibResults |
typedef enum _SbgEComMagModelsStdIds | SbgEComMagModelsStdId |
typedef struct _SbgEComMagRejectionConf | SbgEComMagRejectionConf |
Enumerations | |
enum | _SbgEComMagCalibBandwidth { SBG_ECOM_MAG_CALIB_LOW_BW = 0, SBG_ECOM_MAG_CALIB_MEDIUM_BW = 1, SBG_ECOM_MAG_CALIB_HIGH_BW = 2 } |
enum | _SbgEComMagCalibConfidence { SBG_ECOM_MAG_CALIB_TRUST_HIGH = 0, SBG_ECOM_MAG_CALIB_TRUST_MEDIUM = 1, SBG_ECOM_MAG_CALIB_TRUST_LOW = 2 } |
enum | _SbgEComMagCalibMode { SBG_ECOM_MAG_CALIB_MODE_2D = 1, SBG_ECOM_MAG_CALIB_MODE_3D = 2 } |
enum | _SbgEComMagCalibQuality { SBG_ECOM_MAG_CALIB_QUAL_OPTIMAL = 0, SBG_ECOM_MAG_CALIB_QUAL_GOOD = 1, SBG_ECOM_MAG_CALIB_QUAL_POOR = 2, SBG_ECOM_MAG_CALIB_QUAL_INVALID = 3 } |
enum | _SbgEComMagModelsStdIds { SBG_ECOM_MAG_MODEL_NORMAL = 201, SBG_ECOM_MAG_MODEL_NOISY_MAG_TOLERANT = 202 } |
Functions | |
SBG_DEPRECATED (SbgErrorCode sbgEComCmdMagSetModel(SbgEComHandle *pHandle, const void *pBuffer, uint32 size)) | |
SbgErrorCode | sbgEComCmdMagComputeCalib (SbgEComHandle *pHandle, SbgEComMagCalibResults *pCalibResults) |
SbgErrorCode | sbgEComCmdMagGetModelInfo (SbgEComHandle *pHandle, SbgEComModelInfo *pModelInfo) |
SbgErrorCode | sbgEComCmdMagGetRejection (SbgEComHandle *pHandle, SbgEComMagRejectionConf *pRejectConf) |
SbgErrorCode | sbgEComCmdMagSetCalibData (SbgEComHandle *pHandle, const float offset[3], const float matrix[9]) |
SbgErrorCode | sbgEComCmdMagSetModelId (SbgEComHandle *pHandle, uint32 id) |
SbgErrorCode | sbgEComCmdMagSetRejection (SbgEComHandle *pHandle, const SbgEComMagRejectionConf *pRejectConf) |
SbgErrorCode | sbgEComCmdMagStartCalib (SbgEComHandle *pHandle, SbgEComMagCalibMode mode, SbgEComMagCalibBandwidth bandwidth) |
This file implements SbgECom commands related to Magnetometer module.
Copyright (C) 2007-2013, SBG Systems SAS. All rights reserved.
This source code is intended for use only by SBG Systems SAS and those that have explicit written permission to use it from SBG Systems SAS.
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
Definition in file sbgEComCmdMag.h.
#define SBG_ECOM_MAG_CALIB_ALIGNMENT_ISSUE (0x0020u) |
For a 3D calibration: the alignment between the magnetometers and the inertial frame seems to be invalid.
Definition at line 83 of file sbgEComCmdMag.h.
#define SBG_ECOM_MAG_CALIB_NOT_ENOUGH_POINTS (0x0001u) |
Status bit masks used to report advanced inforamtion on the onboard magnetic calibration.Not enough valid magnetic points have been acquired.
Definition at line 78 of file sbgEComCmdMag.h.
#define SBG_ECOM_MAG_CALIB_TOO_MUCH_DISTORTIONS (0x0002u) |
Unable to compute a magnetic calibration due to magnetic interferences or incorrect data set distribution.
Definition at line 79 of file sbgEComCmdMag.h.
#define SBG_ECOM_MAG_CALIB_X_MOTION_ISSUE (0x0004u) |
For a 3D calibration: not enough motion on X axis. For a 2D calibration; too much motion on X axis.
Definition at line 80 of file sbgEComCmdMag.h.
#define SBG_ECOM_MAG_CALIB_Y_MOTION_ISSUE (0x0008u) |
For a 3D calibration: not enough motion on Y axis. For a 2D calibration; too much motion on Y axis.
Definition at line 81 of file sbgEComCmdMag.h.
#define SBG_ECOM_MAG_CALIB_Z_MOTION_ISSUE (0x0010u) |
For a 3D or 2D calibration: not enough motion on Z axis.
Definition at line 82 of file sbgEComCmdMag.h.
typedef enum _SbgEComMagCalibBandwidth SbgEComMagCalibBandwidth |
Used to select the expected dynamics during the magnetic calibration.
typedef enum _SbgEComMagCalibConfidence SbgEComMagCalibConfidence |
Confidence indicator on results of an onbard magnetic calibration.
typedef enum _SbgEComMagCalibMode SbgEComMagCalibMode |
Define if the onboard magnetic calibration should acquiere points for a 3D or 2D calibration.
typedef enum _SbgEComMagCalibQuality SbgEComMagCalibQuality |
General quality indicator of an onboard magnetic calibration.
typedef struct _SbgEComMagCalibResults SbgEComMagCalibResults |
Helper structure to retrieve onboard magnetic calibration results.
typedef enum _SbgEComMagModelsStdIds SbgEComMagModelsStdId |
This enum defines the different magnetometer model IDs available in standard
typedef struct _SbgEComMagRejectionConf SbgEComMagRejectionConf |
Holds all necessary information for Magnetometer module data rejection.
Used to select the expected dynamics during the magnetic calibration.
Definition at line 45 of file sbgEComCmdMag.h.
Confidence indicator on results of an onbard magnetic calibration.
Definition at line 66 of file sbgEComCmdMag.h.
enum _SbgEComMagCalibMode |
Define if the onboard magnetic calibration should acquiere points for a 3D or 2D calibration.
Definition at line 32 of file sbgEComCmdMag.h.
General quality indicator of an onboard magnetic calibration.
Definition at line 55 of file sbgEComCmdMag.h.
This enum defines the different magnetometer model IDs available in standard
Enumerator | |
---|---|
SBG_ECOM_MAG_MODEL_NORMAL |
Should be used in most applications |
SBG_ECOM_MAG_MODEL_NOISY_MAG_TOLERANT |
Should be used in disturbed magnetic environment |
Definition at line 88 of file sbgEComCmdMag.h.
SBG_DEPRECATED | ( | SbgErrorCode | sbgEComCmdMagSetModelSbgEComHandle *pHandle, const void *pBuffer, uint32 size | ) |
DEPRECATED FUNCTION. Please use sbgEComCmdMagSetModelId instead Set the error model for the magnetometer. The new configuration will only be applied after SBG_ECOM_CMD_SETTINGS_ACTION (01) command is issued, with SBG_ECOM_SAVE_SETTINGS parameter.
[in] | pHandle | A valid sbgECom handle. |
[in] | pBuffer | Read only buffer containing the error model buffer. |
[in] | size | Size of the buffer. |
SbgErrorCode sbgEComCmdMagComputeCalib | ( | SbgEComHandle * | pHandle, |
SbgEComMagCalibResults * | pCalibResults | ||
) |
This command computes a magnetic calibration solution based on the magnetic field logged since the last call to the command SBG_ECOM_CMD_START_MAG_CALIB (15). As soon as the computations are done, the device will answer with quality indicators, status flags and if possible a valid magnetic calibration matrix and offset.
[in] | pHandle | A valid sbgECom handle. |
[out] | pCalibResults | Pointer on a SbgEComMagCalibResults structure that can hold onboard magnetic calibration results and status. |
Definition at line 407 of file sbgEComCmdMag.c.
SbgErrorCode sbgEComCmdMagGetModelInfo | ( | SbgEComHandle * | pHandle, |
SbgEComModelInfo * | pModelInfo | ||
) |
Retrieve magnetometer error model information.
[in] | pHandle | A valid sbgECom handle. |
[out] | pMotionProfileInfo | Pointer to a SbgEComModelInfo to contain the current magnetometer error model info. |
Definition at line 29 of file sbgEComCmdMag.c.
SbgErrorCode sbgEComCmdMagGetRejection | ( | SbgEComHandle * | pHandle, |
SbgEComMagRejectionConf * | pRejectConf | ||
) |
Retrieve the rejection configuration of the magnetometer module.
[in] | pHandle | A valid sbgECom handle. |
[out] | pRejectConf | Pointer to a SbgEComMagRejectionConf struct to hold rejection configuration of the magnetometer module. |
Definition at line 157 of file sbgEComCmdMag.c.
SbgErrorCode sbgEComCmdMagSetCalibData | ( | SbgEComHandle * | pHandle, |
const float | offset[3], | ||
const float | matrix[9] | ||
) |
Send a command that set the magnetometers calibration parameters.
[in] | pHandle | A valid sbgECom handle. |
[in] | offset | Magnetometers calibration offset vector. |
[in] | matix | Magnetometers calibration 3x3 matrix. |
Definition at line 61 of file sbgEComCmdMag.c.
SbgErrorCode sbgEComCmdMagSetModelId | ( | SbgEComHandle * | pHandle, |
uint32 | id | ||
) |
Set magnetometer error model ID.
[in] | pHandle | A valid sbgECom handle. |
[in] | id | Magnetometer model ID to set |
Definition at line 15 of file sbgEComCmdMag.c.
SbgErrorCode sbgEComCmdMagSetRejection | ( | SbgEComHandle * | pHandle, |
const SbgEComMagRejectionConf * | pRejectConf | ||
) |
Set the rejection configuration of the magnetometer module.
[in] | pHandle | A valid sbgECom handle. |
[in] | pRejectConf | Pointer to a SbgEComMagRejectionConf struct holding rejection configuration for the magnetometer module. |
Definition at line 237 of file sbgEComCmdMag.c.
SbgErrorCode sbgEComCmdMagStartCalib | ( | SbgEComHandle * | pHandle, |
SbgEComMagCalibMode | mode, | ||
SbgEComMagCalibBandwidth | bandwidth | ||
) |
Start the magnetic calibration process. As soon as this command is sent, the device will start logging magnetic field data internally. This set of data will be used later by the magnetic calibration algorithms to map the surrounding magnetic field.
[in] | pHandle | A valid sbgECom handle. |
[in] | mode | Define which magnetic calibration type to perform. It could be 3D or 2D. |
[in] | bandwidth | Tell the device that we should have low, medium or high dynamics during the magnetic calibration process. |
Definition at line 320 of file sbgEComCmdMag.c.