From dda586f1d69bd879917bfb2b40b8fa777e6840e6 Mon Sep 17 00:00:00 2001 From: Marco Residori Date: Wed, 26 Nov 2014 09:33:37 +0100 Subject: GT-3012 update franca fidl files so that they match the new d-bus interface --- .../api/franca/Configuration.fidl | 4 +- .../api/franca/EnhancedPosition.fidl | 101 ++------- .../api/franca/EnhancedPositionServiceTypes.fidl | 233 +++++++-------------- .../api/franca/PositionFeedback.fidl | 6 +- 4 files changed, 103 insertions(+), 241 deletions(-) diff --git a/enhanced-position-service/api/franca/Configuration.fidl b/enhanced-position-service/api/franca/Configuration.fidl index 022d0c8..be48ad9 100755 --- a/enhanced-position-service/api/franca/Configuration.fidl +++ b/enhanced-position-service/api/franca/Configuration.fidl @@ -22,9 +22,9 @@ interface Configuration { } <** - @description : SatelliteSystem = satellite system (GPS, Glonass, ...) + @description : SatSystem = satellite system (GPS, GLONASS, ...) **> - attribute UInt16 SatelliteSystem + attribute SatelliteSystem SatSystem <** @description : UpdateInterval = update interval diff --git a/enhanced-position-service/api/franca/EnhancedPosition.fidl b/enhanced-position-service/api/franca/EnhancedPosition.fidl index 5f47b07..549b71d 100755 --- a/enhanced-position-service/api/franca/EnhancedPosition.fidl +++ b/enhanced-position-service/api/franca/EnhancedPosition.fidl @@ -31,65 +31,32 @@ interface EnhancedPosition { } <** - @description : GetData = This method returns a given set of positioning data (e.g. Position, Course, Accuracy, Status, ... ) + @description : GetPositionInfo = This method returns a given set of positioning data (e.g. Position, Course, Accuracy, Status, ... ) Note: If a requested value is invalid, it's not returned to the client application **> - method GetData { + method GetPositionInfo { in { - PositionDataKey[] valuesToReturn + <** @description : valuesToReturn = Bitmask obtained as result of a bitwise OR operation on the keys corresponding to the values to be returned **> + Bitmask valuesToReturn } out { - PositionData data + <** @description : timestamp = Timestamp of the acquisition of the position data [ms] **> + Timestamp timestamp + <** @description : data = Position data **> + PositionInfo[] data } } - - <** - @description : GetPosition = This method returns the current position - Note: If a requested value is invalid, it's not returned to the client application - **> - method GetPosition { - out { - PositionInfo position - } - } - - <** - @description : GetRotationRate = This method returns the rotation rate - Note: If a requested value is invalid, it's not returned to the client application - **> - method GetRotationRate { - out { - RotationRate rotationRate - } - } - - <** - @description : GetAccuracy = This method returns the accuracy - Note: If a requested value is invalid, it's not returned to the client application - **> - method GetAccuracy { - out { - AccuracyInfo accuracy - } - } - + <** @description : GetSatelliteInfo = This method returns information about the current satellite constellation Note: If a requested value is invalid, it's not returned to the client application **> method GetSatelliteInfo { out { - SatelliteInfo satelliteInfo - } - } - - <** - @description : GetStatus = This method returns the status of this service - Note: If a requested value is invalid, it's not returned to the client application - **> - method GetStatus { - out { - StatusInfo status + <** @description : timestamp = Timestamp of the acquisition of the satellite detail data [ms] **> + Timestamp timestamp + <** @description : satelliteInfo = satellite information **> + SatelliteInfo[] satelliteInfo } } @@ -99,6 +66,9 @@ interface EnhancedPosition { **> method GetTime { out { + <** @description : timestamp = Timestamp of the acquisition of the UTC date/time [ms] **> + Timestamp timestamp + <** @description : time = UTC date/time **> TimeInfo time } } @@ -108,43 +78,8 @@ interface EnhancedPosition { **> broadcast PositionUpdate { out { - PositionDataKey[] changedValues - } - } - - <** - @description : RotationRateUpdated = This signal is emitted when the rotation rate changes - **> - broadcast RotationRateUpdate { - out { - RotationRateKey[] changedValues - } - } - - <** - @description : AccuracyUpdated = This signal is emitted when the accuracy changes - **> - broadcast AccuracyUpdate { - out { - AccuracyInfoKey[] changedValues - } - } - - <** - @description : SatelliteInfoUpdate = This signal is emitted when information about the current satellite information is updated - **> - broadcast SatelliteInfoUpdate { - out { - SatelliteInfoKey[] changedValues - } - } - - <** - @description : StatusUpdate = This signal is emitted when the status of this service changes - **> - broadcast StatusUpdate { - out { - StatusInfoKey[] changedValues + <** @description : valuesToReturn = Bitmask obtained as result of a bitwise OR operation on the keys corresponding to the values that changed **> + Bitmask changedValues } } diff --git a/enhanced-position-service/api/franca/EnhancedPositionServiceTypes.fidl b/enhanced-position-service/api/franca/EnhancedPositionServiceTypes.fidl index a16cb07..fb20163 100755 --- a/enhanced-position-service/api/franca/EnhancedPositionServiceTypes.fidl +++ b/enhanced-position-service/api/franca/EnhancedPositionServiceTypes.fidl @@ -14,6 +14,11 @@ typeCollection EnhancedPositionServiceTypes { typedef Handle is UInt32 + typedef Timestamp is UInt64 + + <** @description: bitmask obtained as a result of an OR operation on enum values of type PositionInfoKey **> + typedef Bitmask is UInt64 + <** @description: version.**> struct Version { <** @description : when the major changes, then backward compatibility with previous releases is not granted.**> @@ -26,17 +31,13 @@ typeCollection EnhancedPositionServiceTypes { String date } - <** @description : genereic value (mapped to a dbus variant ('v') data type.**> + <** @description : Value = generic value (mapped to a dbus variant ('v') data type.**> union Value { UInt32 uInt32Value String stringValue } - - enumeration BasicEnum { - INVALID = 0x0000 - } - <** @description: 2D geocoordinate.**> + <** @description: Coordinate2D = 2D geocoordinate.**> struct Coordinate2D { <** @description : latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250.**> Double latitude @@ -44,37 +45,42 @@ typeCollection EnhancedPositionServiceTypes { Double longitude } - <** @description: 3D geocoordinate.**> + <** @description: Coordinate3D = 3D geocoordinate.**> struct Coordinate3D extends Coordinate2D { <** @description : altitude above the sea level of the current position in meters.**> Int32 altitude } - enumeration PositionDataKey extends BasicEnum { - TIMESTAMP = 0x0001 - LATITUDE = 0x0020 - LONGITUDE = 0x0021 - ALTITUDE = 0x0022 - HEADING = 0x0030 - SPEED = 0x0031 - CLIMB = 0x0032 - ROLL_RATE = 0x0060 - PITCH_RATE = 0x0061 - YAW_RATE = 0x0062 - PDOP = 0x0080 - HDOP = 0x0081 - VDOP = 0x0082 - SIGMA_LATITUDE = 0x0083 - SIGMA_LONGITUDE = 0x0084 - SIGMA_ALTITUDE = 0x0085 - SIGMA_HEADING = 0x0086 - ALL = 0xffff + enumeration PositionInfoKey { + LATITUDE = "0x00000001" + LONGITUDE = "0x00000002" + ALTITUDE = "0x00000004" + HEADING = "0x00000008" + SPEED = "0x00000010" + CLIMB = "0x00000020" + ROLL_RATE = "0x00000040" + PITCH_RATE = "0x00000080" + YAW_RATE = "0x00000100" + PDOP = "0x00000200" + HDOP = "0x00000400" + VDOP = "0x00000800" + USED_SATELLITES = "0x00001000" + TRACKED_SATELLITES = "0x00002000" + VISIBLE_SATELLITES = "0x00004000" + SIGMA_HPOSITION = "0x00008000" + SIGMA_ALTITUDE = "0x00010000" + SIGMA_HEADING = "0x00020000" + SIGMA_SPEED = "0x00040000" + SIGMA_CLIMB = "0x00080000" + GNSS_FIX_STATUS = "0x00100000" + DR_STATUS = "0x00200000" + RELIABILTY_INDEX = "0x00400000" + ALL = "0xffffffff" } <** - @description : PositioningData = array of tuples (key,value) - key = enumeration PositionDataKey - key = TIMESTAMP, value = value of type 'UInt64', that represents a timestamp in ms + @description : PositioningInfo = array of tuples (key,value) + key = enumeration PositionInfoKey key = LATITUDE, value = value of type 'Double', that expresses the latitude of the current position. Range [-90:+90]. Example: 48.053250 key = LONGITUDE, value = value of type 'Double', that expresses the longitude of the current position. Range [-180:+180]. Example: 8.324500 key = ALTITUDE, value = value of type 'Int32', that expresses the altitude above the sea level of the current position in meters @@ -87,150 +93,49 @@ typeCollection EnhancedPositionServiceTypes { key = PDOP, value = value of type 'Double', that represents the positional (3D) dilution of precision key = HDOP, value = value of type 'Double', that represents the horizontal (2D) dilution of precision key = VDOP, value = value of type 'Double', that represents vertical (altitude) dilution of precision - key = SIGMA_LATITUDE, value = value of type 'Double', that represents the standard deviation for latitude in m - key = SIGMA_LONGITUDE, value = value of type 'Double', that represents the standard deviation for longitude in m + key = SIGMA_HPOSITION, value = value of type 'Double', that represents the standard deviation for the horizontal position in m key = SIGMA_ALTITUDE, value = value of type 'Double', that represents the standard deviation for altitude in m key = SIGMA_HEADING, value = value of type 'Double', that represents the standard deviation for altitude in degrees + key = USED_SATELLITES, value = value of type 'UInt8', that represents the number of used satellites + key = TRACKED_SATELLITES, value = value of type 'UInt8', that represents the number of tracked satellites + key = VISIBLE_SATELLITES, value = value of type 'UInt8', that represents the number of visible satellites + key = GNSS_FIX_STATUS, value = value of type 'q', that represents an enum(NO_FIX(0x01),TIME_FIX(0x01),2D_FIX(0x02),3D_FIX(0x03), ... ) + key = DR_STATUS, value = value of type 'b', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position **> - map PositionData { - PositionDataKey to Value - } - - enumeration PositionInfoKey extends BasicEnum { - TIMESTAMP = 0x0001 - LATITUDE = 0x0020 - LONGITUDE = 0x0021 - ALTITUDE = 0x0022 - HEADING = 0x0030 - SPEED = 0x0031 - CLIMB = 0x0032 - } - - <** - @description : PositionInfo = array of tuples (key,value) - key = enumeration PositionInfoKey - key = TIMESTAMP, value = value of type 'UInt64', that represents a timestamp in ms - key = LATITUDE, value = value of type 'Double', that expresses the latitude of the current position. Range [-90:+90]. Example: 48.053250 - key = LONGITUDE, value = value of type 'Double', that expresses the longitude of the current position. Range [-180:+180]. Example: 8.324500 - key = ALTITUDE, value = value of type 'Int32', that expresses the altitude above the sea level of the current position in meters - key = HEADING, value = value of type 'Int32', that expresses the course angle in degree. Range [0:360]. 0 = north, 90 = east, 180 = south, 270 = west - key = SPEED, value = value of type 'Double', that expresses speed measured in m/s. A negative value indicates that the vehicle is moving backwards - key = CLIMB, value = value of type 'Int32', that expresses the road gradient in degrees - **> map PositionInfo { PositionInfoKey to Value } - enumeration RotationRateKey extends BasicEnum { - TIMESTAMP = 0x0001 - ROLL_RATE = 0x0060 - PITCH_RATE = 0x0061 - YAW_RATE = 0x0062 - } - <** - @description : RotationRate = array of tuples (key,value) - key = enumeration RotationRateKey - key = TIMESTAMP, value = value of type 'UInt64', that represents a timestamp in ms - key = ROLL_RATE, value = rotation rate around the X-axis in degrees/s. Range [-100:+100] - key = PITCH_RATE, value = rotation rate around the Y-axis in degrees/s. Range [-100:+100] - key = YAW_RATE, value = rotation rate around the Z-axis in degrees/s. Range [-100:+100] + @description : SatelliteInfo = array(struct(system,satelliteId,azimuth,elevation,snr,inUse)) + system = enum(GPS, GLONASS, GALILEO, COMPASS, ... ) + satelliteId = satellite ID. This ID is unique within one satellite system + azimuth = satellite azimuth in degrees. Value range 0..359 + elevation = satellite elevation in degrees. Value range 0..90 + snr = SNR (C/No) in dBHz. Range 0 to 99, null when not tracking + inUse = flag indicating if the satellite is used for the fix (inUse=true) **> - map RotationRate { - RotationRateKey to Value - } - - enumeration AccuracyInfoKey extends BasicEnum { - TIMESTAMP = 0x0001 - PDOP = 0x0080 - HDOP = 0x0081 - VDOP = 0x0082 - SIGMA_LATITUDE = 0x0083 - SIGMA_LONGITUDE = 0x0084 - SIGMA_ALTITUDE = 0x0085 - SIGMA_HEADING = 0x0086 - } - - <** - @description : AccuracyInfo = array of tuples (key,value) - key = enumeration AccuracyInfoKey - key = TIMESTAMP, value = value of type 't', that represents a timestamp in ms - key = PDOP, value = value of type 'd', that represents the positional (3D) dilution of precision - key = HDOP, value = value of type 'd', that represents the horizontal (2D) dilution of precision - key = VDOP, value = value of type 'd', that represents vertical (altitude) dilution of precision - key = SIGMA_LATITUDE, value = value of type 'd', that represents the standard deviation for latitude in m - key = SIGMA_LONGITUDE, value = value of type 'd', that represents the standard deviation for longitude in m - key = SIGMA_ALTITUDE, value = value of type 'd', that represents the standard deviation for altitude in m - key = SIGMA_HEADING, value = value of type 'd', that represents the standard deviation for altitude in degrees - **> - map AccuracyInfo { - AccuracyInfoKey to Value - } - - enumeration SatelliteInfoKey extends BasicEnum { - TIMESTAMP = 0x0001 - USED_SATELLITES = 0x00c0 - TRACKED_SATELLITES = 0x00c1 - VISIBLE_SATELLITES = 0x00c2 - SATELLITE_DETAILS = 0x00c3 - } - - struct SatelliteDetails { - UInt32 satId + struct SatelliteInfo { + UInt32 satellitId Boolean inUse UInt32 elevation UInt32 azimuth UInt32 snr } - <** - @description : SatelliteInfo = array of tuples (key,value) - key = enumeration SatelliteInfoKey - key = TIMESTAMP, value = value of type 'UInt64', that represents a timestamp in ms - key = USED_SATELLITES, value = value of type 'UInt8', that represents the number of used satellites - key = TRACKED_SATELLITES, value = value of type 'UInt8', that represents the number of tracked satellites - key = VISIBLE_SATELLITES, value = value of type 'UInt8', that represents the number of visible satellites - key = SATELLITE_DETAILS, value = value of type SatelliteDetails[], 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 - **> - map SatelliteInfo { - SatelliteInfoKey to Value - } - - enumeration StatusInfoKey extends BasicEnum { - TIMESTAMP = 0x0001 - GNSS_FIX_STATUS = 0x0070 - DR_STATUS = 0x0071 - } - - <** - @description : StatusInfo = array of tuples (key,value) - key = enumeration StatusInfoKey - key = TIMESTAMP, value = value of type 'UInt64', that represents a timestamp in ms - key = GNSS_FIX_STATUS, value = value of type 'UInt16', that represents an enum(INVALID(0x00),NO_FIX(0x01),TIME_FIX(0x02),2D_FIX(0x03),3D_FIX(0x04), ... ) - key = DR_STATUS, value = value of type 'Boolean', where TRUE means that a dead-reckoning algorithm has been used to calculate the current position - **> - map StatusInfo { - StatusInfoKey to Value - } - - enumeration TimeInfoKey extends BasicEnum { - TIMESTAMP = 0x0001 - YEAR = 0x00a0 - MONTH = 0x00a1 - DAY = 0x00a2 - HOUR = 0x00a3 - MINUTE = 0x00a4 - SECOND = 0x00a5 - MS = 0x00a6 + enumeration TimeInfoKey { + YEAR = "0x01000000" + MONTH = "0x02000000" + DAY = "0x04000000" + HOUR = "0x08000000" + MINUTE = "0x10000000" + SECOND = "0x20000000" + MS = "0x40000000" } <** @description : TimeInfo = array of tuples (key,value) key = enumeration TimeInfoKey - key = TIMESTAMP, value = value of type 'UInt64', that represents a timestamp in ms key = YEAR, value = value of type 'UInt16', 4 digits number that indicates the year. Example: 2012 key = MONTH, value = value of type 'UInt8', 2 digits number that indicates the month. Example: 03 means March key = DAY, value = value of type 'UInt8', 2 digits number that indicates the day. Range [0:31]. Example: 07 @@ -243,6 +148,28 @@ typeCollection EnhancedPositionServiceTypes { TimeInfoKey to Value } + enumeration PositionFeedbackKey { + LATITUDE = "0x00000001" + LONGITUDE = "0x00000002" + ALTITUDE = "0x00000004" + HEADING = "0x00000008" + SPEED = "0x00000010" + CLIMB = "0x00000020" + RELIABILTY_INDEX = "0x00400000" + } + + enumeration PositionFeedbackType { + MAP_MATCHED_FEEDBACK = "0x00000001" + TEST_FEEDBACK = "0x00000002" + } + + enumeration SatelliteSystem { + GPS = "0x00000001" + GLONASS = "0x00000002" + GALILEO = "0x00000003" + COMPASS = "0x00000004" + } + } diff --git a/enhanced-position-service/api/franca/PositionFeedback.fidl b/enhanced-position-service/api/franca/PositionFeedback.fidl index a4a4131..4700453 100755 --- a/enhanced-position-service/api/franca/PositionFeedback.fidl +++ b/enhanced-position-service/api/franca/PositionFeedback.fidl @@ -46,13 +46,13 @@ interface PositionFeedback { <** @description : feedbackType = enum(INVALID,MAP_MATCHED_FEEDBACK,TEST_FEEDBACK, ... ) **> - UInt16 feedbackType + PositionFeedbackType feedbackType } } <** @description : PositionFeedback = array of tuples (key,value) - key = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,RELIABILTY_INDEX, ... ) + key = enum(LATITUDE,LONGITUDE,ALTITUDE,HEADING,SPEED,CLIMB,RELIABILTY_INDEX, ... ) key = LATITUDE, value = value of type ´d´, that expresses the latitude of the current position in format %3.6f. [-90,+90]. Example: 48.053250 key = LONGITUDE, value = value of type ´d´, that expresses the longitude of the current position in format %3.6f. [-180,+180]. Example: 8.324500 key = ALTITUDE, value = value of type ´i´, that expresses the altitude above the sea level of the current position in meters @@ -62,7 +62,7 @@ interface PositionFeedback { key = RELIABILTY_INDEX, value = value of type ´y´, that indicates the position feedabck reliabilty. It can assume values from 0 to 100 **> map PositionFeedback { - UInt16 to Value + PositionFeedbackKey to Value } } -- cgit v1.2.1