sbgECom
1.11.920-stable
|
This file is used to parse received EKF compued data binary logs. More...
#include <sbgCommon.h>
#include <streamBuffer/sbgStreamBuffer.h>
Go to the source code of this file.
Data Structures | |
struct | _SbgLogEkfEulerData |
struct | _SbgLogEkfQuatData |
struct | _SbgLogEkfNavData |
Macros | |
#define | SBG_ECOM_SOLUTION_MODE_SHIFT (0u) |
#define | SBG_ECOM_SOLUTION_MODE_MASK (0x0000000Fu) |
#define | SBG_ECOM_SOL_ATTITUDE_VALID (0x00000001u << 4) |
#define | SBG_ECOM_SOL_HEADING_VALID (0x00000001u << 5) |
#define | SBG_ECOM_SOL_VELOCITY_VALID (0x00000001u << 6) |
#define | SBG_ECOM_SOL_POSITION_VALID (0x00000001u << 7) |
#define | SBG_ECOM_SOL_VERT_REF_USED (0x00000001u << 8) |
#define | SBG_ECOM_SOL_MAG_REF_USED (0x00000001u << 9) |
#define | SBG_ECOM_SOL_GPS1_VEL_USED (0x00000001u << 10) |
#define | SBG_ECOM_SOL_GPS1_POS_USED (0x00000001u << 11) |
#define | SBG_ECOM_SOL_GPS1_HDT_USED (0x00000001u << 13) |
#define | SBG_ECOM_SOL_GPS2_VEL_USED (0x00000001u << 14) |
#define | SBG_ECOM_SOL_GPS2_POS_USED (0x00000001u << 15) |
#define | SBG_ECOM_SOL_GPS2_HDT_USED (0x00000001u << 17) |
#define | SBG_ECOM_SOL_ODO_USED (0x00000001u << 18) |
#define | SBG_ECOM_SOL_DVL_BT_USED (0x00000001u << 19) |
#define | SBG_ECOM_SOL_DVL_WT_USED (0x00000001u << 20) |
#define | SBG_ECOM_SOL_USER_POS_USED (0x00000001u << 21) |
#define | SBG_ECOM_SOL_USER_VEL_USED (0x00000001u << 22) |
#define | SBG_ECOM_SOL_USER_HEADING_USED (0x00000001u << 23) |
#define | SBG_ECOM_SOL_USBL_USED (0x00000001u << 24) |
#define | SBG_ECOM_SOL_AIR_DATA_USED (0x00000001u << 25) |
#define | SBG_ECOM_SOL_ZUPT_USED (0x00000001u << 26) |
#define | SBG_ECOM_SOL_ALIGN_VALID (0x00000001u << 27) |
#define | SBG_ECOM_SOL_DEPTH_USED (0x00000001u << 28) |
Typedefs | |
typedef enum _SbgEComSolutionMode | SbgEComSolutionMode |
typedef struct _SbgLogEkfEulerData | SbgLogEkfEulerData |
typedef struct _SbgLogEkfQuatData | SbgLogEkfQuatData |
typedef struct _SbgLogEkfNavData | SbgLogEkfNavData |
Enumerations | |
enum | _SbgEComSolutionMode { SBG_ECOM_SOL_MODE_UNINITIALIZED = 0, SBG_ECOM_SOL_MODE_VERTICAL_GYRO = 1, SBG_ECOM_SOL_MODE_AHRS = 2, SBG_ECOM_SOL_MODE_NAV_VELOCITY = 3, SBG_ECOM_SOL_MODE_NAV_POSITION = 4 } |
Functions | |
SBG_INLINE SbgEComSolutionMode | sbgEComLogEkfGetSolutionMode (uint32_t status) |
SBG_INLINE uint32_t | sbgEComLogEkfBuildSolutionStatus (SbgEComSolutionMode solutionMode, uint32_t masks) |
SbgErrorCode | sbgEComBinaryLogParseEkfEulerData (SbgStreamBuffer *pInputStream, SbgLogEkfEulerData *pOutputData) |
SbgErrorCode | sbgEComBinaryLogWriteEkfEulerData (SbgStreamBuffer *pOutputStream, const SbgLogEkfEulerData *pInputData) |
SbgErrorCode | sbgEComBinaryLogParseEkfQuatData (SbgStreamBuffer *pInputStream, SbgLogEkfQuatData *pOutputData) |
SbgErrorCode | sbgEComBinaryLogWriteEkfQuatData (SbgStreamBuffer *pOutputStream, const SbgLogEkfQuatData *pInputData) |
SbgErrorCode | sbgEComBinaryLogParseEkfNavData (SbgStreamBuffer *pInputStream, SbgLogEkfNavData *pOutputData) |
SbgErrorCode | sbgEComBinaryLogWriteEkfNavData (SbgStreamBuffer *pOutputStream, const SbgLogEkfNavData *pInputData) |
This file is used to parse received EKF compued data binary logs.
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.
#define SBG_ECOM_SOLUTION_MODE_SHIFT (0u) |
Solution status mode definitions.Shift used to extract the clock status part.
Referenced by sbgEComLogEkfBuildSolutionStatus(), and sbgEComLogEkfGetSolutionMode().
#define SBG_ECOM_SOLUTION_MODE_MASK (0x0000000Fu) |
Mask used to keep only the clock status part.
Referenced by sbgEComLogEkfBuildSolutionStatus(), and sbgEComLogEkfGetSolutionMode().
#define SBG_ECOM_SOL_ATTITUDE_VALID (0x00000001u << 4) |
Solution bit masks definitions.Set to 1 if attitude data is reliable (Roll/Pitch error < 0,5°).
#define SBG_ECOM_SOL_HEADING_VALID (0x00000001u << 5) |
Set to 1 if geading data is reliable (Heading error < 1°).
#define SBG_ECOM_SOL_VELOCITY_VALID (0x00000001u << 6) |
Set to 1 if velocity data is reliable (velocity error < 1.5 m/s).
#define SBG_ECOM_SOL_POSITION_VALID (0x00000001u << 7) |
Set to 1 if position data is reliable (Position error < 10m).
#define SBG_ECOM_SOL_VERT_REF_USED (0x00000001u << 8) |
Set to 1 if vertical reference is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_MAG_REF_USED (0x00000001u << 9) |
Set to 1 if magnetometer is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_GPS1_VEL_USED (0x00000001u << 10) |
Set to 1 if GPS1 velocity is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_GPS1_POS_USED (0x00000001u << 11) |
Set to 1 if GPS1 Position is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_GPS1_HDT_USED (0x00000001u << 13) |
Set to 1 if GPS1 True Heading is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_GPS2_VEL_USED (0x00000001u << 14) |
Set to 1 if GPS2 velocity is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_GPS2_POS_USED (0x00000001u << 15) |
Set to 1 if GPS2 Position is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_GPS2_HDT_USED (0x00000001u << 17) |
Set to 1 if GPS2 True Heading is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_ODO_USED (0x00000001u << 18) |
Set to 1 if Odometer is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_DVL_BT_USED (0x00000001u << 19) |
Set to 1 if DVL Bottom Tracking is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_DVL_WT_USED (0x00000001u << 20) |
Set to 1 if DVL Water Tracking is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_USER_POS_USED (0x00000001u << 21) |
Set to 1 if user velocity is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_USER_VEL_USED (0x00000001u << 22) |
Set to 1 if user Position is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_USER_HEADING_USED (0x00000001u << 23) |
Set to 1 if user Course is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_USBL_USED (0x00000001u << 24) |
Set to 1 if USBL / LBL is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_AIR_DATA_USED (0x00000001u << 25) |
Set to 1 if AirData (altimeter and/or true airspeed) is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_ZUPT_USED (0x00000001u << 26) |
Set to 1 if a ZUPT is used in solution (data used and valid since 3s).
#define SBG_ECOM_SOL_ALIGN_VALID (0x00000001u << 27) |
Set to 1 if sensor alignment and calibration parameters are valid
#define SBG_ECOM_SOL_DEPTH_USED (0x00000001u << 28) |
Set to 1 if Depth sensor (for subsea navigation) is used in solution (data used and valid since 3s).
typedef enum _SbgEComSolutionMode SbgEComSolutionMode |
Solution filter mode enum.
typedef struct _SbgLogEkfEulerData SbgLogEkfEulerData |
EKF computed orientation using euler angles.
typedef struct _SbgLogEkfQuatData SbgLogEkfQuatData |
EFK computed orientation using quaternion.
typedef struct _SbgLogEkfNavData SbgLogEkfNavData |
EFK computed navigation data.
enum _SbgEComSolutionMode |
Solution filter mode enum.
SBG_INLINE SbgEComSolutionMode sbgEComLogEkfGetSolutionMode | ( | uint32_t | status | ) |
Method used to read the solution mode from a solution status field.
[in] | status | Status uint32_t value to extract the solution mode from it. |
References SBG_ECOM_SOLUTION_MODE_MASK, and SBG_ECOM_SOLUTION_MODE_SHIFT.
SBG_INLINE uint32_t sbgEComLogEkfBuildSolutionStatus | ( | SbgEComSolutionMode | solutionMode, |
uint32_t | masks | ||
) |
Method used to write the solution status field.
[in] | solutionMode | The solution mode to set. |
[in] | masks | Bit mask to set. |
References SBG_ECOM_SOLUTION_MODE_MASK, and SBG_ECOM_SOLUTION_MODE_SHIFT.
SbgErrorCode sbgEComBinaryLogParseEkfEulerData | ( | SbgStreamBuffer * | pInputStream, |
SbgLogEkfEulerData * | pOutputData | ||
) |
Parse data for the SBG_ECOM_LOG_EKF_EULER message and fill the corresponding structure.
[in] | pInputStream | Input stream buffer to read the payload from. |
[out] | pOutputData | Pointer on the output structure that stores parsed data. |
SbgErrorCode sbgEComBinaryLogWriteEkfEulerData | ( | SbgStreamBuffer * | pOutputStream, |
const SbgLogEkfEulerData * | pInputData | ||
) |
Write data for the SBG_ECOM_LOG_EKF_EULER message to the output stream buffer from the provided structure.
[out] | pOutputStream | Output stream buffer to write the payload to. |
[in] | pInputData | Pointer on the input structure that stores data to write. |
SbgErrorCode sbgEComBinaryLogParseEkfQuatData | ( | SbgStreamBuffer * | pInputStream, |
SbgLogEkfQuatData * | pOutputData | ||
) |
Parse data for the SBG_ECOM_LOG_EKF_QUAT message and fill the corresponding structure.
[in] | pInputStream | Input stream buffer to read the payload from. |
[out] | pOutputData | Pointer on the output structure that stores parsed data. |
SbgErrorCode sbgEComBinaryLogWriteEkfQuatData | ( | SbgStreamBuffer * | pOutputStream, |
const SbgLogEkfQuatData * | pInputData | ||
) |
Write data for the SBG_ECOM_LOG_EKF_QUAT message to the output stream buffer from the provided structure.
[out] | pOutputStream | Output stream buffer to write the payload to. |
[in] | pInputData | Pointer on the input structure that stores data to write. |
SbgErrorCode sbgEComBinaryLogParseEkfNavData | ( | SbgStreamBuffer * | pInputStream, |
SbgLogEkfNavData * | pOutputData | ||
) |
Parse data for the SBG_ECOM_LOG_EKF_NAV message and fill the corresponding structure.
[in] | pInputStream | Input stream buffer to read the payload from. |
[out] | pOutputData | Pointer on the output structure that stores parsed data. |
SbgErrorCode sbgEComBinaryLogWriteEkfNavData | ( | SbgStreamBuffer * | pOutputStream, |
const SbgLogEkfNavData * | pInputData | ||
) |
Write data for the SBG_ECOM_LOG_EKF_NAV message to the output stream buffer from the provided structure.
[out] | pOutputStream | Output stream buffer to write the payload to. |
[in] | pInputData | Pointer on the input structure that stores data to write. |