172 lines
5.5 KiB
C
172 lines
5.5 KiB
C
/**
|
|
* \file lwgps_opt.h
|
|
* \brief LwGPS options
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 2020 Tilen MAJERLE
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person
|
|
* obtaining a copy of this software and associated documentation
|
|
* files (the "Software"), to deal in the Software without restriction,
|
|
* including without limitation the rights to use, copy, modify, merge,
|
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
|
* and to permit persons to whom the Software is furnished to do so,
|
|
* subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be
|
|
* included in all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
|
|
* AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
* OTHER DEALINGS IN THE SOFTWARE.
|
|
*
|
|
* This file is part of LwGPS - Lightweight GPS NMEA parser library.
|
|
*
|
|
* Author: Tilen MAJERLE <tilen@majerle.eu>
|
|
* Version: $2.1.0$
|
|
*/
|
|
#ifndef LWGPS_HDR_OPT_H
|
|
#define LWGPS_HDR_OPT_H
|
|
|
|
/* Include application options */
|
|
#ifndef LWGPS_IGNORE_USER_OPTS
|
|
#include "lwgps_opts.h"
|
|
#endif /* LWGPS_IGNORE_USER_OPTS */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
/**
|
|
* \defgroup LWGPS_OPT Configuration
|
|
* \brief Default configuration setup
|
|
* \{
|
|
*/
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` `double precision` for floating point
|
|
* values such as latitude, longitude, altitude.
|
|
*
|
|
* `double` is used as variable type when enabled, `float` when disabled.
|
|
*/
|
|
#ifndef LWGPS_CFG_DOUBLE
|
|
#define LWGPS_CFG_DOUBLE 1
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` status reporting callback
|
|
* by \ref lwgps_process
|
|
*
|
|
* \note This is an extension, so not enabled by default.
|
|
*/
|
|
#ifndef LWGPS_CFG_STATUS
|
|
#define LWGPS_CFG_STATUS 0
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` `GGA` statement parsing.
|
|
*
|
|
* \note This statement must be enabled to parse:
|
|
* - Latitude, Longitude, Altitude
|
|
* - Number of satellites in use, fix (no fix, GPS, DGPS), UTC time
|
|
*/
|
|
#ifndef LWGPS_CFG_STATEMENT_GPGGA
|
|
#define LWGPS_CFG_STATEMENT_GPGGA 1
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` `GSA` statement parsing.
|
|
*
|
|
* \note This statement must be enabled to parse:
|
|
* - Position/Vertical/Horizontal dilution of precision
|
|
* - Fix mode (no fix, 2D, 3D fix)
|
|
* - IDs of satellites in use
|
|
*/
|
|
#ifndef LWGPS_CFG_STATEMENT_GPGSA
|
|
#define LWGPS_CFG_STATEMENT_GPGSA 1
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` `RMC` statement parsing.
|
|
*
|
|
* \note This statement must be enabled to parse:
|
|
* - Validity of GPS signal
|
|
* - Ground speed in knots and coarse in degrees
|
|
* - Magnetic variation
|
|
* - UTC date
|
|
*/
|
|
#ifndef LWGPS_CFG_STATEMENT_GPRMC
|
|
#define LWGPS_CFG_STATEMENT_GPRMC 1
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` `GSV` statement parsing.
|
|
*
|
|
* \note This statement must be enabled to parse:
|
|
* - Number of satellites in view
|
|
* - Optional details of each satellite in view. See \ref LWGPS_CFG_STATEMENT_GPGSV_SAT_DET
|
|
*/
|
|
#ifndef LWGPS_CFG_STATEMENT_GPGSV
|
|
#define LWGPS_CFG_STATEMENT_GPGSV 1
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` detailed parsing of each
|
|
* satellite in view for `GSV` statement.
|
|
*
|
|
* \note When this feature is disabled, only number of "satellites in view" is parsed
|
|
*/
|
|
#ifndef LWGPS_CFG_STATEMENT_GPGSV_SAT_DET
|
|
#define LWGPS_CFG_STATEMENT_GPGSV_SAT_DET 0
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` parsing and generation
|
|
* of PUBX (uBlox) messages
|
|
*
|
|
* PUBX are a nonstandard ublox-specific extensions,
|
|
* so disabled by default.
|
|
*/
|
|
#ifndef LWGPS_CFG_STATEMENT_PUBX
|
|
#define LWGPS_CFG_STATEMENT_PUBX 0
|
|
#endif
|
|
|
|
/**
|
|
* \brief Enables `1` or disables `0` parsing and generation
|
|
* of PUBX (uBlox) TIME messages.
|
|
*
|
|
* \note TIME messages can be used to obtain:
|
|
* - UTC time of week
|
|
* - UTC week number
|
|
* - Leap seconds (allows conversion to eg. TAI)
|
|
*
|
|
* This is a nonstandard ublox-specific extension,
|
|
* so disabled by default.
|
|
*
|
|
* This configure option requires LWGPS_CFG_STATEMENT_PUBX
|
|
*/
|
|
#ifndef LWGPS_CFG_STATEMENT_PUBX_TIME
|
|
#define LWGPS_CFG_STATEMENT_PUBX_TIME 0
|
|
#endif
|
|
|
|
/* Guard against accidental parser breakage */
|
|
#if LWGPS_CFG_STATEMENT_PUBX_TIME && !LWGPS_CFG_STATEMENT_PUBX
|
|
#error LWGPS_CFG_STATEMENT_PUBX must be enabled when enabling LWGPS_CFG_STATEMENT_PUBX_TIME
|
|
#endif /* LWGPS_CFG_STATEMENT_PUBX_TIME && !LWGPS_CFG_STATEMENT_PUBX */
|
|
|
|
/**
|
|
* \}
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif /* LWGPS_HDR_OPT_H */
|