DriveWorks SDK Reference
5.10.90 Release
For Test and Development only

Detailed Description

Defines the GPS sensor.

Data Structures

struct  dwGPSFrame
 A GPS packet containing localization information. More...
 
struct  dwGPSFrameNew
 This structure contains one frame of data from an GPS/GNSS sensor. More...
 
struct  dwGPSSignalValidityInfo
 This structure contains validity of each signal provided by GPS sensors. More...
 

Enumerations

enum  dwGPSFixStatus {
  DW_GPS_FIX_STATUS_NO_FIX = 0 ,
  DW_GPS_FIX_STATUS_2D_FIX = 1 ,
  DW_GPS_FIX_STATUS_3D_FIX = 2 ,
  DW_GPS_FIX_STATUS_FORCE32 = 0x7FFFFFFF
}
 GPS satellite fix status. More...
 
enum  dwGPSFlags {
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_DEPRECATED_ENUM =("Use dwGPSFrame.validityInfo.latitude instead") = 1 << 0 ,
  DW_GPS_FORCE32 = 0x7FFFFFFF
}
 Each flag shows if that value is valid in this GPS frame. More...
 
enum  dwGPSMode {
  DW_GPS_MODE_UNKNOWN = 0 ,
  DW_GPS_MODE_INVALID_GPS = 1 ,
  DW_GPS_MODE_DEAD_RECKONING = 2 ,
  DW_GPS_MODE_STAND_ALONE = 3 ,
  DW_GPS_MODE_PRECISE_POINT = 4 ,
  DW_GPS_MODE_CODE_DIFFERENTIAL = 5 ,
  DW_GPS_MODE_RTK_FLOAT = 6 ,
  DW_GPS_MODE_RTK_FIXED = 7 ,
  DW_GPS_MODE_PPP_CONVERGING = 8 ,
  DW_GPS_MODE_PPP_CONVERGED = 9 ,
  DW_GPS_MODE_FORCE32 = 0x7FFFFFFF
}
 The GPS mode gives the status of the GNSS data. More...
 
enum  dwGPSTimestampQuality {
  DW_GPS_TIMESTAMP_QUALITY_NOT_INIT = 0 ,
  DW_GPS_TIMESTAMP_QUALITY_OK = 1 ,
  DW_GPS_TIMESTAMP_QUALITY_SYNC_LOST = 2 ,
  DW_GPS_TIMESTAMP_QUALITY_FORCE32 = 0x7FFFFFFF
}
 GPS timestamp quality. More...
 

Functions

DW_API_PUBLIC dwStatus dwSensorGPS_popFrame (dwGPSFrame *const frame, dwSensorHandle_t const sensor)
 Returns any GPS frame previously processed through RAW data stream. More...
 
DW_API_PUBLIC dwStatus dwSensorGPS_popFrameNew (dwGPSFrameNew *const frame, dwSensorHandle_t const sensor)
 Returns any GPS frame New previously processed through RAW data stream. More...
 
DW_API_PUBLIC dwStatus dwSensorGPS_processRawData (uint8_t const *const data, size_t const size, dwSensorHandle_t const sensor)
 Decodes RAW data previously read. More...
 
DW_API_PUBLIC dwStatus dwSensorGPS_processRawDataNew (uint8_t const *const data, size_t const size, dwSensorHandle_t const sensor)
 Decodes RAW data previously read. More...
 
DW_API_PUBLIC dwStatus dwSensorGPS_readFrame (dwGPSFrame *const frame, dwTime_t const timeoutUs, dwSensorHandle_t const sensor)
 Reads the next GPS packet with a given timeout. More...
 
DW_API_PUBLIC dwStatus dwSensorGPS_readFrameNew (dwGPSFrameNew *const frame, dwTime_t const timeoutUs, dwSensorHandle_t const sensor)
 Reads the next GPS packet with a given timeout. More...
 

Data Structure Documentation

◆ dwGPSFrame

struct dwGPSFrame
Data Fields
float64_t altitude
Note
ID VS-91040
description Altitude over WGS-84 ellipsoid.
min nan max nan
freq 4 unit m
float64_t climb
Note
ID VS-91070
description Vertical speed.
min nan max nan
freq 4 unit m/s
float64_t course
Note
ID VS-91050
description Course relative to true north.
min nan max nan
freq 4 unit deg
dwGPSFixStatus fixStatus
Note
ID VS-91150
description 2D or 3D fix.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit -
*** valid values**: { DW_GPS_FIX_STATUS_NO_FIX, DW_GPS_FIX_STATUS_2D_FIX, DW_GPS_FIX_STATUS_3D_FIX }
uint32_t flags The flags to show which values are valid in this GPS frame.
dwGPSMode gpsMode GPS mode.
float64_t hacc
Note
ID VS-91110
description Horizontal Accuracy of Solution.
min nan max nan
freq 4 unit m
float64_t hdop
Note
ID VS-91080
description Horizontal Dilution of Precision.
min nan max nan
freq 4 unit unitless
float64_t latitude
Note
ID VS-91020
description Latitude in WGS-84.
min nan max nan
freq 4 unit deg
float64_t longitude
Note
ID VS-91030
description Longitude in WGS-84.
min nan max nan
freq 4 unit deg
dwGPSMode mode
Note
ID VS-91175
description GPS mode.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit -
*** valid values**: { DW_GPS_MODE_UNKNOWN, DW_GPS_MODE_INVALID_GPS, DW_GPS_MODE_DEAD_RECKONING, DW_GPS_MODE_STAND_ALONE, DW_GPS_MODE_PRECISE_POINT, DW_GPS_MODE_CODE_DIFFERENTIAL, DW_GPS_MODE_RTK_FLOAT, DW_GPS_MODE_RTK_FIXED, DW_GPS_MODE_PPP_CONVERGING, DW_GPS_MODE_PPP_CONVERGED }
float64_t pdop
Note
ID VS-91100
description Position Dilution of Precision.
min nan max nan
freq 4 unit unitless
uint8_t reserved[468] Reserved space.
uint8_t satelliteCount
Note
ID VS-91140
description Number of satellites in view.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit unitless
float64_t speed
Note
ID VS-91060
description Horizontal speed.
min nan max nan
freq 4 unit m/s
dwTime_t timestamp_us
Note
ID VS-91010
description Timestamp of the message when first received.
min nan max nan
freq 4 unit us
dwGPSTimestampQuality timestampQuality
Note
ID VS-91170
description GNSS Timestamp Quality.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit -
*** valid values**: { DW_GPS_TIMESTAMP_QUALITY_NOT_INIT, DW_GPS_TIMESTAMP_QUALITY_OK, DW_GPS_TIMESTAMP_QUALITY_SYNC_LOST, }
char utcDate[16] UTC date as provided in the GPS package [ddmmyy] (null terminated).
char utcTime[16] UTC time as provided in the GPS package [hhmmss.sss] (null terminated).
dwTime_t utcTimeUs
Note
ID VS-91130
description UTC time.
min nan max nan
freq 4 unit us
float64_t vacc
Note
ID VS-91120
description Vertical Accuracy of Solution.
min nan max nan
freq 4 unit m
dwGPSSignalValidityInfo validityInfo Signal validity information.
float64_t vdop
Note
ID VS-91090
description Vertical Dilution of Precision.
min nan max nan
freq 4 unit unitless

◆ dwGPSFrameNew

struct dwGPSFrameNew
Data Fields
float64_t altitude
Note
ID VS-91040
description Altitude over WGS-84 ellipsoid.
min nan max nan
freq 4 unit m
float64_t climb
Note
ID VS-91070
description Vertical speed.
min nan max nan
freq 4 unit m/s
float64_t course
Note
ID VS-91050
description Course relative to true north.
min nan max nan
freq 4 unit deg
dwGPSFixStatus fixStatus
Note
ID VS-91150
description 2D or 3D fix.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit -
*** valid values**: { DW_GPS_FIX_STATUS_NO_FIX, DW_GPS_FIX_STATUS_2D_FIX, DW_GPS_FIX_STATUS_3D_FIX }
float64_t hacc
Note
ID VS-91110
description Horizontal Accuracy of Solution.
min nan max nan
freq 4 unit m
float64_t hdop
Note
ID VS-91080
description Horizontal Dilution of Precision.
min nan max nan
freq 4 unit unitless
float64_t latitude
Note
ID VS-91020
description Latitude in WGS-84.
min nan max nan
freq 4 unit deg
float64_t longitude
Note
ID VS-91030
description Longitude in WGS-84.
min nan max nan
freq 4 unit deg
dwGPSMode mode
Note
ID VS-91175
description GPS mode.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit -
*** valid values**: { DW_GPS_MODE_UNKNOWN, DW_GPS_MODE_INVALID_GPS, DW_GPS_MODE_DEAD_RECKONING, DW_GPS_MODE_STAND_ALONE, DW_GPS_MODE_PRECISE_POINT, DW_GPS_MODE_CODE_DIFFERENTIAL, DW_GPS_MODE_RTK_FLOAT, DW_GPS_MODE_RTK_FIXED, DW_GPS_MODE_PPP_CONVERGING, DW_GPS_MODE_PPP_CONVERGED }
float64_t pdop
Note
ID VS-91100
description Position Dilution of Precision.
min nan max nan
freq 4 unit unitless
uint8_t reserved[508] Reserved space.
uint8_t satelliteCount
Note
ID VS-91140
description Number of satellites in view.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit unitless
float64_t speed
Note
ID VS-91060
description Horizontal speed.
min nan max nan
freq 4 unit m/s
dwTime_t timestamp_us
Note
ID VS-91010
description Timestamp of the message when first received.
min nan max nan
freq 4 unit us
dwGPSTimestampQuality timestampQuality
Note
ID VS-91170
description GNSS Timestamp Quality.
TODO: Backend not yet implemented
min nan max nan
freq 4 unit -
*** valid values**: { DW_GPS_TIMESTAMP_QUALITY_NOT_INIT, DW_GPS_TIMESTAMP_QUALITY_OK, DW_GPS_TIMESTAMP_QUALITY_SYNC_LOST, }
dwTime_t utcTime
Note
ID VS-91130
description UTC time.
min nan max nan
freq 4 unit us
float64_t vacc
Note
ID VS-91120
description Vertical Accuracy of Solution.
min nan max nan
freq 4 unit m
dwGPSSignalValidityInfo validityInfo Signal validity information.
float64_t vdop
Note
ID VS-91090
description Vertical Dilution of Precision.
min nan max nan
freq 4 unit unitless

◆ dwGPSSignalValidityInfo

struct dwGPSSignalValidityInfo
Data Fields
dwSignalValidity altitude Validity of altitude signal.
dwSignalValidity climb Validity of climb signal.
dwSignalValidity course
dwSignalValidity fixStatus Validity of 2D or 3D fix status signal.
dwSignalValidity hacc Validity of horizontal accuracy of solution signal.
dwSignalValidity hdop Validity of horizontal dilusion of precision signal.
dwSignalValidity latitude Validity of latitude signal.
dwSignalValidity longitude Validity of longitude signal.
dwSignalValidity mode Validity of GPS mode signal.
dwSignalValidity pdop Validity of positional dilusion of precision signal.
dwSignalValidity reserved[63] Reserved space.
dwSignalValidity satelliteCount Validity of satellite count signal.
dwSignalValidity speed Validity of speed signal.
dwSignalValidity timestamp_us Validity of timestamp signal.
dwSignalValidity timestampQuality Validity of timestamp quality signal.
dwSignalValidity utcTimeUs Validity of UTC time signal.
dwSignalValidity vacc Validity of vertical accuracy of solution signal.
dwSignalValidity vdop Validity of vertical dilusion of precision signal.

Enumeration Type Documentation

◆ dwGPSFixStatus

GPS satellite fix status.

Enumerator
DW_GPS_FIX_STATUS_NO_FIX 

No fix.

DW_GPS_FIX_STATUS_2D_FIX 

2D fix

DW_GPS_FIX_STATUS_3D_FIX 

3D fix

DW_GPS_FIX_STATUS_FORCE32 

Definition at line 106 of file GPS.h.

◆ dwGPSFlags

enum dwGPSFlags

Each flag shows if that value is valid in this GPS frame.

Enumerator
DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_DEPRECATED_ENUM 

Value of dwGPSFrame.latitude is valid.

Magnetic heading.

True heading.

Value of dwIMUFrame.alignmentStatus is valid.

Value of dwIMUFrame.magnetometer[2] is valid.

Value of dwIMUFrame.magnetometer[1] is valid.

Value of dwIMUFrame.magnetometer[0] is valid.

Value of dwIMUFrame.acceleration[2] is valid.

Value of dwIMUFrame.acceleration[1] is valid.

Value of dwIMUFrame.acceleration[0] is valid.

Value of dwIMUFrame.turnrate[2] is valid.

Value of dwIMUFrame.turnrate[1] is valid.

Value of dwIMUFrame.turnrate[0] is valid.

Value of dwIMUFrame.orientationQuaternion.w is valid.

Value of dwIMUFrame.orientationQuaternion.z is valid.

Value of dwIMUFrame.orientationQuaternion.y is valid.

Value of dwIMUFrame.orientationQuaternion.x is valid.

Value of dwIMUFrame.orientation[2] is valid.

Value of dwIMUFrame.orientation[1] is valid.

Value of dwIMUFrame.orientation[0] is valid.

Value of dwGPSFrame.gpsMode is valid.

Value of dwGPSFrame.vacc is valid.

Value of dwGPSFrame.hacc is valid.

Value of dwGPSFrame.vdop is valid.

Value of dwGPSFrame.hdop is valid.

Value of dwGPSFrame.climb is valid.

Value of dwGPSFrame.speed is valid.

Value of dwGPSFrame.course is valid.

Value of dwGPSFrame.altitude is valid.

Value of dwGPSFrame.longitude is valid.

'dwIMUFrame.heading' points towards true north.

'dwIMUFrame.heading' points towards magnetic north.

DW_GPS_FORCE32 

Definition at line 61 of file GPS.h.

◆ dwGPSMode

enum dwGPSMode

The GPS mode gives the status of the GNSS data.

Note that modes 1-7 are increasing in accuracy. Modes 8 and 9 are not quite as good as 6 and 7, respectively.

Enumerator
DW_GPS_MODE_UNKNOWN 

GPS mode unknown. The device cannot or has not reported the mode.

DW_GPS_MODE_INVALID_GPS 

GPS mode invalid. This GPS data cannot be used.

DW_GPS_MODE_DEAD_RECKONING 

GPS mode dead reckoning. Device relying on IMU alone for updates.

DW_GPS_MODE_STAND_ALONE 

GPS mode stand alone. No RTK or PPP correction.

DW_GPS_MODE_PRECISE_POINT 

GPS mode precise point. No RTK or PPP correction.

DW_GPS_MODE_CODE_DIFFERENTIAL 

GPS mode code differential. No RTK or PPP correction.

DW_GPS_MODE_RTK_FLOAT 

GPS mode RTK float.

DW_GPS_MODE_RTK_FIXED 

GPS mode RTK fixed. This is the highest accuracy mode.

DW_GPS_MODE_PPP_CONVERGING 

GPS mode PPP converging. Using PPP, but solution has not finished converging, so the data is not yet as accurate as it can be.

DW_GPS_MODE_PPP_CONVERGED 

GPS mode PPP converged. Most accurate mode for using PPP.

DW_GPS_MODE_FORCE32 

Definition at line 81 of file GPS.h.

◆ dwGPSTimestampQuality

GPS timestamp quality.

Enumerator
DW_GPS_TIMESTAMP_QUALITY_NOT_INIT 

Not Initialized. still initializing.

DW_GPS_TIMESTAMP_QUALITY_OK 

Normal Operation. Functional and Electrical Checks Passed.

DW_GPS_TIMESTAMP_QUALITY_SYNC_LOST 

Synchronization lost.

DW_GPS_TIMESTAMP_QUALITY_FORCE32 

Definition at line 117 of file GPS.h.

Function Documentation

◆ dwSensorGPS_popFrame()

DW_API_PUBLIC dwStatus dwSensorGPS_popFrame ( dwGPSFrame *const  frame,
dwSensorHandle_t const  sensor 
)

Returns any GPS frame previously processed through RAW data stream.

This happens on the CPU thread where the function is called, incurring an additional load on that thread.

Parameters
[out]framePointer to an GPS frame structure to be filled with new data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid.
DW_INVALID_ARGUMENTS - if given arguments are invalid.
DW_NOT_AVAILABLE - if no more data is available
DW_SUCCESS

◆ dwSensorGPS_popFrameNew()

DW_API_PUBLIC dwStatus dwSensorGPS_popFrameNew ( dwGPSFrameNew *const  frame,
dwSensorHandle_t const  sensor 
)

Returns any GPS frame New previously processed through RAW data stream.

This happens on the CPU thread where the function is called, incurring an additional load on that thread.

Parameters
[out]framePointer to an GPS frame New structure to be filled with new data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid.
DW_INVALID_ARGUMENTS - if given arguments are invalid.
DW_NOT_AVAILABLE - if no more data is available
DW_SUCCESS

◆ dwSensorGPS_processRawData()

DW_API_PUBLIC dwStatus dwSensorGPS_processRawData ( uint8_t const *const  data,
size_t const  size,
dwSensorHandle_t const  sensor 
)

Decodes RAW data previously read.

Any processed messages can be picked up using the dwSensorGPS_popMessage() method. This happens on the CPU thread where the function is called, incurring on additional load on that thread.

Parameters
[in]dataUndecoded gps data.
[in]sizeSize in bytes of the raw data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid,
DW_INVALID_ARGUMENTS - if given arguments are invalid,
DW_NOT_READY - if more data needs to be passed in (loop while it returns 'DW_NOT_READY').
DW_SUCCESS

◆ dwSensorGPS_processRawDataNew()

DW_API_PUBLIC dwStatus dwSensorGPS_processRawDataNew ( uint8_t const *const  data,
size_t const  size,
dwSensorHandle_t const  sensor 
)

Decodes RAW data previously read.

Any processed messages can be picked up using the dwSensorGPS_popMessageNew() method. This happens on the CPU thread where the function is called, incurring on additional load on that thread.

Parameters
[in]dataUndecoded gps data.
[in]sizeSize in bytes of the raw data.
[in]sensorSensor handle of the sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid,
DW_INVALID_ARGUMENTS - if given arguments are invalid,
DW_NOT_READY - if more data needs to be passed in (loop while it returns 'DW_NOT_READY').
DW_SUCCESS

◆ dwSensorGPS_readFrame()

DW_API_PUBLIC dwStatus dwSensorGPS_readFrame ( dwGPSFrame *const  frame,
dwTime_t const  timeoutUs,
dwSensorHandle_t const  sensor 
)

Reads the next GPS packet with a given timeout.

The method blocks until either a new valid frame is received from the sensor or the given timeout exceeds.

Parameters
[out]frameA pointer to a GPS frame structure to be filled with new localization data.
[in]timeoutUsSpecifies the timeout in us to wait for a new message. Special values: DW_TIMEOUT_INFINITE - to wait infinitly. Zero - means polling of internal queue.
[in]sensorSpecifies the sensor handle of the GPS sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid.
DW_INVALID_ARGUMENTS - if given arguments are invalid.
DW_TIME_OUT - if operation has timeout.
DW_NOT_AVAILABLE - if sensor has not been started or data is not available in polling mode.
DW_END_OF_STREAM - if end of stream reached (virtual sensor only).
DW_SAL_SENSOR_ERROR - if there was an i/o or bus error.
DW_SUCCESS

◆ dwSensorGPS_readFrameNew()

DW_API_PUBLIC dwStatus dwSensorGPS_readFrameNew ( dwGPSFrameNew *const  frame,
dwTime_t const  timeoutUs,
dwSensorHandle_t const  sensor 
)

Reads the next GPS packet with a given timeout.

The method blocks until either a new valid frame is received from the sensor or the given timeout exceeds.

Parameters
[out]frameA pointer to a GPS frame New structure to be filled with new localization data.
[in]timeoutUsSpecifies the timeout in us to wait for a new message. Special values: DW_TIMEOUT_INFINITE - to wait infinitly. Zero - means polling of internal queue.
[in]sensorSpecifies the sensor handle of the GPS sensor previously created with 'dwSAL_createSensor()'.
Returns
DW_INVALID_HANDLE - if given sensor handle is invalid.
DW_INVALID_ARGUMENTS - if given arguments are invalid.
DW_TIME_OUT - if operation has timeout.
DW_NOT_AVAILABLE - if sensor has not been started or data is not available in polling mode.
DW_END_OF_STREAM - if end of stream reached (virtual sensor only).
DW_SAL_SENSOR_ERROR - if there was an i/o or bus error.
DW_SUCCESS