diff options
author | Helmut Schmidt <Helmut.3.Schmidt@continental-corporation.com> | 2015-12-01 14:53:06 +0100 |
---|---|---|
committer | Helmut Schmidt <Helmut.3.Schmidt@continental-corporation.com> | 2015-12-01 14:53:06 +0100 |
commit | bd38dc23faffe8cf99bbd0bc726c2466e7f15a9d (patch) | |
tree | 5946495991e20dcf4cefc2b35eb0d82b96f5aa6c /gnss-service | |
parent | bc8be1b92e65f295c84f90141bcbefcd45ae3090 (diff) | |
download | positioning-bd38dc23faffe8cf99bbd0bc726c2466e7f15a9d.tar.gz |
GT-3206 GNSS API: add GNSS antenna status | GT-XXXX additional proposal to add leap seconds to GNSSTimeGT3039_wheelAPI
Diffstat (limited to 'gnss-service')
-rw-r--r-- | gnss-service/api/gnss-status.h | 17 | ||||
-rw-r--r-- | gnss-service/api/gnss.h | 13 |
2 files changed, 29 insertions, 1 deletions
diff --git a/gnss-service/api/gnss-status.h b/gnss-service/api/gnss-status.h index 9815005..f2cc6dd 100644 --- a/gnss-service/api/gnss-status.h +++ b/gnss-service/api/gnss-status.h @@ -35,11 +35,25 @@ typedef enum { } EGNSSStatus; /** + * Enumeration to describe the status of the GNSS antenna + */ +typedef enum { + GNSS_ANT_STATUS_NORMAL = 0, /**< GNSS antenna is working in normal operation. */ + GNSS_ANT_STATUS_OVERCURRENT = 1, /**< GNSS antenna is working but the antenna current is higher than expected. */ + GNSS_ANT_STATUS_OPEN = 2, /**< GNSS antenna is not working because not connected (antenna current too low). */ + GNSS_ANT_STATUS_SHORT_GND = 3, /**< GNSS antenna is not working due to short-curcuit to ground. */ + GNSS_ANT_STATUS_SHORT_BATT = 4, /**< GNSS antenna is not working due to short-curcuit to battery. */ + GNSS_ANT_STATUS_OUTOFSERVICE = 5 /**< GNSS antenna is temporarily not available, due to some known external condition. */ +} EGNSSAntennaStatus; + + +/** * TGNSSStatus::validityBits provides information about the currently valid signals of the TGNSSStatus struct. * It is a or'ed bitmask of the EGNSSStatusValidityBits values. */ typedef enum { - GNSS_STATUS_STATUS_VALID = 0x00000001 /**< Validity bit for field TGNSSStatus::status. */ + GNSS_STATUS_STATUS_VALID = 0x00000001, /**< Validity bit for field TGNSSStatus::status. */ + GNSS_STATUS_ANT_STATUS_VALID = 0x00000002 /**< Validity bit for field TGNSSStatus::antStatus. */ } EGNSSStatusValidityBits; /** @@ -49,6 +63,7 @@ typedef struct { uint64_t timestamp; /**< Timestamp of the GNSS status transition [ms]. All sensor/GNSS timestamps must be based on the same time source. */ EGNSSStatus status; /**< Status of the GNSS receiver */ + EGNSSAntennaStatus antStatus; /**< Status of the GNSS antenna */ uint32_t validityBits; /**< Bit mask indicating the validity of each corresponding value. [bitwise or'ed @ref EGNSSStatusValidityBits values]. Must be checked before usage. */ diff --git a/gnss-service/api/gnss.h b/gnss-service/api/gnss.h index 1e5af0a..ea789fe 100644 --- a/gnss-service/api/gnss.h +++ b/gnss-service/api/gnss.h @@ -91,6 +91,14 @@ typedef enum { } EGNSSFixType; /** + * Description of the fix status of the GNSS reveiver. + */ +typedef enum { + GNSS_TIME_TYPE_UTC, /**< GNSS time is provided according UTC time scale (with leap seconds) */ + GNSS_TIME_TYPE_GPS /**< GNSS time is provided according GPS time scale (no leap seconds since 06-Jan-1980) */ +} EGNSSTimeType; + +/** * TGNSSTime::validityBits provides information about the currently valid parts of UTC date/time. * It is a or'ed bitmask of the EGNSSUTCValidityBits values. * There are separate validity bits for date end time since a GPS receiver may be able to provide time earlier than date. @@ -98,6 +106,8 @@ typedef enum { typedef enum { GNSS_TIME_TIME_VALID = 0x00000001, /**< Validity bit for field TGNSSTime fields hour, minute, second, ms. */ GNSS_TIME_DATE_VALID = 0x00000002, /**< Validity bit for field TGNSSTime fields year, month, day. */ + GNSS_TIME_TYPE_VALID = 0x00000004, /**< Validity bit for field TGNSSTime field type. */ + GNSS_TIME_LEAPSEC_VALID = 0x00000008, /**< Validity bit for field TGNSSTime field leapSeconds. */ } EGNSSTimeValidityBits; /** @@ -115,6 +125,9 @@ typedef struct { uint8_t second; /**< Second fraction of the UTC time. Unit: [seconds] Number between 0 and 59. In case of a leap second this value is 60. */ uint16_t ms; /**< Millisecond fraction of the UTC time. Unit: [milliseconds] Number between 0 and 999 */ + EGNSSTimeType type; /**< Time scale used: UTC or GPS.*/ + int8_t leapSeconds; /**< Number of leap seconds, i.e. difference between GPS time and UTC. Unit: [seconds]. + Note: value before 01-July-2015: 16; from 01-July-2015: 17; further changes possible. */ uint32_t validityBits; /**< Bit mask indicating the validity of each corresponding value. [bitwise or'ed @ref EGNSSTimeValidityBits values]. Must be checked before usage. */ |