summaryrefslogtreecommitdiff
path: root/enhanced-position-service/api/genivi-positioning-enhancedposition.xml
diff options
context:
space:
mode:
Diffstat (limited to 'enhanced-position-service/api/genivi-positioning-enhancedposition.xml')
-rw-r--r--enhanced-position-service/api/genivi-positioning-enhancedposition.xml219
1 files changed, 61 insertions, 158 deletions
diff --git a/enhanced-position-service/api/genivi-positioning-enhancedposition.xml b/enhanced-position-service/api/genivi-positioning-enhancedposition.xml
index a8b1dda..283c3b0 100644
--- a/enhanced-position-service/api/genivi-positioning-enhancedposition.xml
+++ b/enhanced-position-service/api/genivi-positioning-enhancedposition.xml
@@ -15,7 +15,7 @@
<node name="/org/genivi/positioning/EnhancedPosition" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.positioning.EnhancedPosition">
- <version>3.0.0-alpha (05-08-2014)</version>
+ <version>3.0.0 (19-11-2014)</version>
<doc>
<line>EnhancedPosition = This interface offers functionalities to retrieve the enhanced position of the vehicle</line>
</doc>
@@ -35,141 +35,80 @@
</arg>
</method>
- <method name="GetData">
+ <method name="GetPositionInfo">
<doc>
- <line>GetData = This method returns a given set of positioning data (e.g. Position, Course, Accuracy, Status, ... )</line>
+ <line>GetPositionInfo = This method returns a given set of positioning data (e.g. Position, Course, Accuracy, Status, ... )</line>
</doc>
- <arg name="valuesToReturn" type="aq" direction="in">
+ <arg name="valuesToReturn" type="t" direction="in">
<doc>
- <line>valuesToReturn= array[fieldType]</line>
- <line>key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,ROLL_RATE,PITCH_RATE,YAW_RATE,...,ALL)</line>
+ <line>valuesToReturn = Bitmask obtained as result of a bitwise OR operation on the keys corresponding to requested values</line>
+ <line>Keys: LATITUDE,LONGITUDE,ALTITUDE,</line>
+ <line> HEADING,SPEED,CLIMB,</line>
+ <line> ROLL_RATE,PITCH_RATE,YAW_RATE,</line>
+ <line> PDOP,HDOP,VDOP,</line>
+ <line> USED_SATELLITES,TRACKED_SATELLITES,VISIBLE_SATELLITES,</line>
+ <line> SIGMA_HPOSITION,SIGMA_ALTITUDE,</line>
+ <line> SIGMA_HEADING,SIGMA_SPEED,SIGMA_CLIMB,</line>
+ <line> GNSS_FIX_STATUS,DR_STATUS</line>
</doc>
</arg>
- <arg name="data" type="a{qv}" direction="out">
+ <arg name="timestamp" type="t" direction="out">
<doc>
- <line>data = dictionary[key,value]</line>
- <line>dictionary = array of tuples (key,value)</line>
- <line>Invalid data is not be returned to the client application</line>
- <line>The vehicle axis system is defined by ISO 8855: In short, the X-axis pointing is forwards, the Y-axis is pointing left, the Z-axis is pointing upwards</line>
- <line>key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,ROLL_RATE,PITCH_RATE,YAW_RATE,PDOP,HDOP,VDOP,SIGMA_LATITUDE,SIGMA_LONGITUDE,SIGMA_ALTITUDE,SIGMA_HEADING,... ,ALL</line>
- <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
- <line>key = LATITUDE, value = value of type 'd', that expresses the WGS84 latitude of the current position in degrees. Range [-90:+90]. Example: 48.053250</line>
- <line>key = LONGITUDE, value = value of type 'd', that expresses the WGS84 longitude of the current position in degrees. Range [-180:+180]. Example: 8.324500</line>
- <line>key = ALTITUDE, value = value of type 'd', that expresses the altitude above the sea level of the current position in meters</line>
- <line>key = HEADING, value = value of type 'd', that expresses the course angle in degree. Range [0:360]. 0 = north, 90 = east, 180 = south, 270 = west</line>
- <line>key = SPEED, value = value of type 'd', that expresses speed measured in m/s. A negative value indicates that the vehicle is moving backwards</line>
- <line>key = CLIMB, value = value of type 'd', that expresses the road gradient in degrees. Range [-180:+180]. A positive value means upwards. </line>
- <line>key = ROLL_RATE, value = value of type 'd', rotation rate around the X-axis in degrees/s. Range [-100:+100]</line>
- <line>key = PITCH_RATE, value = value of type 'd', rotation rate around the Y-axis in degrees/s. Range [-100:+100]</line>
- <line>key = YAW_RATE, value = value of type 'd', rotation rate around the Z-axis in degrees/s. Range [-100:+100]</line>
- <line>key = PDOP, value = value of type 'd', that represents the positional (3D) dilution of precision</line>
- <line>key = HDOP, value = value of type 'd', that represents the horizontal (2D) dilution of precision</line>
- <line>key = VDOP, value = value of type 'd', that represents vertical (altitude) dilution of precision</line>
- <line>key = SIGMA_LATITUDE, value = value of type 'd', that represents the standard error estimate of the latitude in m</line>
- <line>key = SIGMA_LONGITUDE, value = value of type 'd', that represents the standard error estimate of the longitude in m</line>
- <line>key = SIGMA_ALTITUDE, value = value of type 'd', that represents the standard error estimate of the altitude in m</line>
- <line>key = SIGMA_HEADING, value = value of type 'd', that represents the standard error estimate of the heading in degrees</line>
+ <line>timestamp = Timestamp of the acquisition of the position data [ms]</line>
+ <line> Note: All timestamps must be based on the same time source.</line>
</doc>
</arg>
- </method>
-
- <method name="GetPosition">
- <doc>
- <line>GetPosition = This method returns the current position</line>
- </doc>
-
- <arg name="position" type="a{qv}" direction="out">
+
+ <arg name="data" type="a{tv}" direction="out">
<doc>
- <line>position = dictionary[key,value]</line>
+ <line>data = dictionary[key,value]</line>
<line>dictionary = array of tuples (key,value)</line>
<line>Invalid data is not be returned to the client application</line>
- <line>key = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,...)</line>
- <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
+ <line>The vehicle axis system is defined by ISO 8855: In short, the X-axis pointing is forwards, the Y-axis is pointing left, the Z-axis is pointing upwards</line>
+ <line>key = enum(LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,ROLL_RATE,PITCH_RATE,YAW_RATE,PDOP,HDOP,VDOP,USED_SATELLITES,TRACKED_SATELLITES,VISIBLE_SATELLITES,SIGMA_HPOSITION,SIGMA_ALTITUDE,SIGMA_HEADING,SIGMA_SPEED,SIGMA_CLIMB,GNSS_FIX_STATUS,DR_STATUS)</line>
<line>key = LATITUDE, value = value of type 'd', that expresses the WGS84 latitude of the current position in degrees. Range [-90:+90]. Example: 48.053250</line>
<line>key = LONGITUDE, value = value of type 'd', that expresses the WGS84 longitude of the current position in degrees. Range [-180:+180]. Example: 8.324500</line>
<line>key = ALTITUDE, value = value of type 'd', that expresses the altitude above the sea level of the current position in meters</line>
<line>key = HEADING, value = value of type 'd', that expresses the course angle in degree. Range [0:360]. 0 = north, 90 = east, 180 = south, 270 = west</line>
<line>key = SPEED, value = value of type 'd', that expresses speed measured in m/s. A negative value indicates that the vehicle is moving backwards</line>
<line>key = CLIMB, value = value of type 'd', that expresses the road gradient in degrees. Range [-180:+180]. A positive value means upwards. </line>
- </doc>
- </arg>
- </method>
-
- <signal name="PositionUpdate">
- <doc>
- <line>PositionUpdate = This signal is called to notifiy a client application of a position change. The update frequency is implementation specific. The maximal allowed frequency is 10Hz</line>
- </doc>
- <arg name="changedValues" type="aq">
- <doc>
- <line>changedValues = array[value]</line>
- <line>value = enum(INVALID,TIMESTAMP,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,... )</line>
- </doc>
- </arg>
- </signal>
-
- <method name="GetRotationRate">
- <doc>
- <line>GetRotationRate = This method returns the rotation rate</line>
- </doc>
- <arg name="rotationRate" type="a{qv}" direction="out">
- <doc>
- <line>rotationRate = dictionary[key,value]</line>
- <line>dictionary = array of tuples (key,value)</line>
- <line>If you request for a specific value which is invalid, it's not returned in the dictionary.</line>
- <line>The vehicle axis system is defined by ISO 8855: In short, the X-axis pointing is forwards, the Y-axis is pointing left, the Z-axis is pointing upwards</line>
- <line>key = enum(INVALID,TIMESTAMP,ROLL_RATE,PITCH_RATE,YAW_RATE, ... )</line>
- <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
<line>key = ROLL_RATE, value = value of type 'd', rotation rate around the X-axis in degrees/s. Range [-100:+100]</line>
<line>key = PITCH_RATE, value = value of type 'd', rotation rate around the Y-axis in degrees/s. Range [-100:+100]</line>
<line>key = YAW_RATE, value = value of type 'd', rotation rate around the Z-axis in degrees/s. Range [-100:+100]</line>
- </doc>
- </arg>
- </method>
-
- <signal name="RotationRateUpdate">
- <doc>
- <line>RotationRateUpdated = This signal is emitted when the rotation rate changes</line>
- </doc>
- <arg name="changedValues" type="aq">
- <doc>
- <line>changedValues = array[key]</line>
- <line>key = enum(INVALID,TIMESTAMP,ROLL_RATE,PITCH_RATE,YAW_RATE, ... )</line>
- </doc>
- </arg>
- </signal>
-
- <method name="GetAccuracy">
- <doc>
- <line>GetAccuracy = This method returns the accuracy</line>
- </doc>
- <arg name="accuracy" type="a{qv}" direction="out">
- <doc>
- <line>accuracy = dictionary[key,value]</line>
- <line>dictionary = array of tuples (key,value)</line>
- <line>If you request for a specific value which is invalid, it's not returned in the dictionary.</line>
- <line>key = enum(INVALID,TIMESTAMP,PDOP,HDOP,VDOP,SIGMA_LATITUDE,SIGMA_LONGITUDE,SIGMA_ALTITUDE,SIGMA_HEADING,... )</line>
- <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
<line>key = PDOP, value = value of type 'd', that represents the positional (3D) dilution of precision</line>
<line>key = HDOP, value = value of type 'd', that represents the horizontal (2D) dilution of precision</line>
<line>key = VDOP, value = value of type 'd', that represents vertical (altitude) dilution of precision</line>
- <line>key = SIGMA_LATITUDE, value = value of type 'd', that represents the standard error estimate of the latitude in m</line>
- <line>key = SIGMA_LONGITUDE, value = value of type 'd', that represents the standard error estimate of the longitude in m</line>
+ <line>key = USED_SATELLITES, value = value of type 'y', that represents the number of used satellites</line>
+ <line>key = TRACKED_SATELLITES, value = value of type 'y', that represents the number of tracked satellites</line>
+ <line>key = VISIBLE_SATELLITES, value = value of type 'y', that represents the number of visible satellites</line>
+ <line>key = SIGMA_HPOSITION, value = value of type 'd', that represents the standard error estimate of the horizontal position in m</line>
<line>key = SIGMA_ALTITUDE, value = value of type 'd', that represents the standard error estimate of the altitude in m</line>
<line>key = SIGMA_HEADING, value = value of type 'd', that represents the standard error estimate of the heading in degrees</line>
+ <line>key = SIGMA_SPEED, value = value of type 'd', that represents the standard error estimate of the speed in m/s</line>
+ <line>key = SIGMA_CLIMB, value = value of type 'd', that represents the standard error estimate of the climb in degrees</line>
+ <line>key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(NO_FIX(0x00),TIME_FIX(0x01),2D_FIX(0x02),3D_FIX(0x03), ... )</line>
+ <line>key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position</line>
</doc>
</arg>
</method>
- <signal name="AccuracyUpdate">
+ <signal name="PositionUpdate">
<doc>
- <line>AccuracyUpdated = This signal is emitted when the accuracy changes</line>
+ <line>PositionUpdate = This signal is called to notifiy a client application that updated positioning data is available. The update frequency is implementation specific. The maximum allowed frequency is 10Hz</line>
</doc>
- <arg name="changedValues" type="aq">
+ <arg name="changedValues" type="t">
<doc>
- <line>changedValues = array[value]</line>
- <line>value = enum(INVALID,TIMESTAMP,PDOP,HDOP,VDOP,SIGMA_LATITUDE,SIGMA_LONGITUDE,SIGMA_ALTITUDE,SIGMA_HEADING, ... )</line>
+ <line>changedValues = Bitmask obtained as result of a bitwise OR operation on the keys corresponding to updated values</line>
+ <line>LATITUDE,LONGITUDE,ALTITUDE,</line>
+ <line> HEADING,SPEED,CLIMB,</line>
+ <line> ROLL_RATE,PITCH_RATE,YAW_RATE,</line>
+ <line> PDOP,HDOP,VDOP,</line>
+ <line> USED_SATELLITES,TRACKED_SATELLITES,VISIBLE_SATELLITES,</line>
+ <line> SIGMA_HPOSITION,SIGMA_ALTITUDE,</line>
+ <line> SIGMA_HEADING,SIGMA_SPEED,SIGMA_CLIMB,</line>
+ <line> GNSS_FIX_STATUS,DR_STATUS</line>
</doc>
</arg>
</signal>
@@ -178,77 +117,41 @@
<doc>
<line>GetSatelliteInfo = This method returns information about the current satellite constellation</line>
</doc>
- <arg name="satelliteInfo" type="a{qv}" direction="out">
+ <arg name="timestamp" type="t" direction="out">
<doc>
- <line>satelliteInfo = dictionary[key,value]</line>
- <line>dictionary = array of tuples (key,value)</line>
- <line>If you request for a specific value which is invalid, it's not returned in the dictionary.</line>
- <line>key = enum(INVALID,TIMESTAMP,USED_SATELLITES,TRACKED_SATELLITES,VISIBLE_SATELLITES,SATELLITE_DETAILS, ...)</line>
- <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
- <line>key = USED_SATELLITES, value = value of type 'y', that represents the number of used satellites</line>
- <line>key = TRACKED_SATELLITES, value = value of type 'y', that represents the number of tracked satellites</line>
- <line>key = VISIBLE_SATELLITES, value = value of type 'y', that represents the number of visible satellites</line>
- <line>key = SATELLITE_DETAILS, value = value of type 'a(ubuuu)', that represents an array(struct(satId,inUse,elevation,azimuth,snr).
- The satID numbering scheme shall be as defined by NMEA-0183 (v3.01 or later) for the GSV sentence:
- 1..32: GPS satellites (by PRN), 33..64: SBAS/WAAS satellites, 65..96: Glonass satellites
- Note: Later NMEA-0183 versions probably already have Galileo support
- </line>
+ <line>timestamp = Timestamp of the acquisition of the satellite detail data [ms]</line>
+ <line> Note: All timestamps must be based on the same time source.</line>
</doc>
- </arg>
- </method>
-
- <signal name="SatelliteInfoUpdate">
- <doc>
- <line>SatelliteInfoUpdate = This signal is emitted when information about the current satellite information is updated</line>
- </doc>
- <arg name="changedValues" type="aq">
+ </arg>
+ <arg name="satelliteInfo" type="a(qqqqqb)" direction="out">
<doc>
- <line>changedValues = array[value]</line>
- <line>key = enum(INVALID,TIMESTAMP,USED_SATELLITES,TRACKED_SATELLITES,VISIBLE_SATELLITES,SATELLITE_DETAILS, ...)</line>
- </doc>
- </arg>
- </signal>
-
- <method name="GetStatus">
- <doc>
- <line>GetStatus = This method returns the status of this service</line>
- </doc>
- <arg name="status" type="a{qv}" direction="out">
- <doc>
- <line>status = dictionary[key,value]</line>
- <line>dictionary = array of tuples (key,value)</line>
- <line>If you request for a specific value which is invalid, it's not returned in the dictionary.</line>
- <line>key = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS, ... )</line>
- <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
- <line>key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(INVALID(0x00),NO_FIX(0x01),TIME_FIX(0x02),2D_FIX(0x03),3D_FIX(0x04), ... )</line>
- <line>key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position</line>
+ <line>satelliteInfo = array(struct(system,satelliteId,azimuth,elevation,snr,inUse))</line>
+ <line> system = enum(GPS, GLONASS, GALILEO, COMPASS, ... )</line>
+ <line> satelliteId = satellite ID. This ID is unique within one satellite system</line>
+ <line> azimuth = satellite azimuth in degrees. Value range 0..359</line>
+ <line> elevation = satellite elevation in degrees. Value range 0..90</line>
+ <line> snr = SNR (C/No) in dBHz. Range 0 to 99, null when not tracking</line>
+ <line> inUse = flag indicating if the satellite is used for the fix (inUse=true)</line>
</doc>
</arg>
</method>
- <signal name="StatusUpdate">
- <doc>
- <line>StatusUpdate = This signal is emitted when the status of this service changes</line>
- </doc>
- <arg name="changedValues" type="aq">
- <doc>
- <line>changedValues = array[value]</line>
- <line>key = enum(INVALID,TIMESTAMP,GNSS_FIX_STATUS,DR_STATUS, ... )</line>
- </doc>
- </arg>
- </signal>
-
<method name="GetTime">
<doc>
<line>GetTime = This method returns UTC time and date</line>
</doc>
- <arg name="time" type="a{qv}" direction="out">
+ <arg name="timestamp" type="t" direction="out">
+ <doc>
+ <line>timestamp = Timestamp of the acquisition of the UTC date/time [ms]</line>
+ <line> Note: All timestamps must be based on the same time source.</line>
+ </doc>
+ </arg>
+ <arg name="time" type="a{tv}" direction="out">
<doc>
<line>time = dictionary[key,value]</line>
<line>dictionary = array of tuples (key,value)</line>
<line>If you request for a specific value which is invalid, it's not returned in the dictionary.</line>
- <line>key = enum(INVALID,TIMESTAMP,YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,MS, ... )</line>
- <line>key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms</line>
+ <line>key = enum(YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,MS, ... )</line>
<line>key = YEAR, value = value of type 'q', 4 digits number that indicates the year. Example: 2012</line>
<line>key = MONTH, value = value of type 'y', 2 digits number that indicates the month. Example: 03 means March</line>
<line>key = DAY, value = value of type 'y', 2 digits number that indicates the day. Range [0:31]. Example: 07</line>