summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Schmidt <Helmut.3.Schmidt@continental-corporation.com>2015-12-01 14:53:06 +0100
committerHelmut Schmidt <Helmut.3.Schmidt@continental-corporation.com>2015-12-01 14:53:06 +0100
commitbd38dc23faffe8cf99bbd0bc726c2466e7f15a9d (patch)
tree5946495991e20dcf4cefc2b35eb0d82b96f5aa6c
parentbc8be1b92e65f295c84f90141bcbefcd45ae3090 (diff)
downloadpositioning-GT3039_wheelAPI.tar.gz
GT-3206 GNSS API: add GNSS antenna status | GT-XXXX additional proposal to add leap seconds to GNSSTimeGT3039_wheelAPI
-rw-r--r--gnss-service/api/gnss-status.h17
-rw-r--r--gnss-service/api/gnss.h13
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. */