From 1a965e643cf77e4b69d321e81a301c9aced2bfd7 Mon Sep 17 00:00:00 2001 From: Marco Residori Date: Wed, 21 May 2014 15:53:40 +0200 Subject: Add franca fidl files on behalf of Torsten Mosis (Elektrobit) --- api/franca/navigation/NavigationTypes.fidl | 52 + .../navigation/mapviewer/MapViewerControl.fidl | 1456 ++++++++++++++++++++ .../mapviewer/MapViewerControlTypes.fidl | 175 +++ api/franca/navigation/navigationcore/Guidance.fidl | 377 +++++ .../navigation/navigationcore/GuidanceTypes.fidl | 161 +++ .../navigation/navigationcore/LocationInput.fidl | 448 ++++++ .../navigationcore/LocationInputTypes.fidl | 58 + .../navigationcore/MapMatchedPosition.fidl | 291 ++++ .../navigationcore/MapMatchedPositionTypes.fidl | 124 ++ api/franca/navigation/navigationcore/Routing.fidl | 615 +++++++++ .../navigation/navigationcore/RoutingTypes.fidl | 183 +++ .../navigation/poiservice/ContentAccessModule.fidl | 105 ++ api/franca/navigation/poiservice/POISearch.fidl | 291 ++++ .../navigation/poiservice/POIServiceTypes.fidl | 272 ++++ .../poiservice/ServiceContentAccess.fidl | 94 ++ 15 files changed, 4702 insertions(+) create mode 100755 api/franca/navigation/NavigationTypes.fidl create mode 100755 api/franca/navigation/mapviewer/MapViewerControl.fidl create mode 100755 api/franca/navigation/mapviewer/MapViewerControlTypes.fidl create mode 100755 api/franca/navigation/navigationcore/Guidance.fidl create mode 100755 api/franca/navigation/navigationcore/GuidanceTypes.fidl create mode 100755 api/franca/navigation/navigationcore/LocationInput.fidl create mode 100755 api/franca/navigation/navigationcore/LocationInputTypes.fidl create mode 100755 api/franca/navigation/navigationcore/MapMatchedPosition.fidl create mode 100755 api/franca/navigation/navigationcore/MapMatchedPositionTypes.fidl create mode 100755 api/franca/navigation/navigationcore/Routing.fidl create mode 100755 api/franca/navigation/navigationcore/RoutingTypes.fidl create mode 100755 api/franca/navigation/poiservice/ContentAccessModule.fidl create mode 100755 api/franca/navigation/poiservice/POISearch.fidl create mode 100755 api/franca/navigation/poiservice/POIServiceTypes.fidl create mode 100755 api/franca/navigation/poiservice/ServiceContentAccess.fidl diff --git a/api/franca/navigation/NavigationTypes.fidl b/api/franca/navigation/NavigationTypes.fidl new file mode 100755 index 0000000..4154c98 --- /dev/null +++ b/api/franca/navigation/NavigationTypes.fidl @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +// this file, you can obtain one at http://mozilla.org/MPL/2.0/. + +package org.genivi.navigation + +typeCollection NavigationTypes { + + <** @description: version.**> + struct Version { + <** @description : when the major changes, then backward compatibility with previous releases is not granted.**> + UInt16 ^major + <** @description : when the minor changes, then backward compatibility with previous releases is granted, but something changed in the implementation of the API (e.g. new methods may have been added).**> + UInt16 ^minor + <** @description : when the micro changes, then backward compatibility with previous releases is granted (bug fixes or documentation modifications).**> + UInt16 ^micro + <** @description : release date (e.g. 21-06-2011).**> + String date + } + + typedef Handle is UInt32 + + struct Coordinate2D { + Double latitude + Double longitude + } + + struct Coordinate3D extends Coordinate2D { + Int32 altitude + } + + array Polygon of Coordinate2D + + typedef Area is Polygon + + struct Rectangle { + Coordinate2D topLeft + Coordinate2D bottomRight + } + + enumeration BasicEnum { + INVALID = "0x0000" + } + + typedef Timestamp is UInt64 + + typedef Distance is Double + + typedef LinkId is ByteBuffer +} \ No newline at end of file diff --git a/api/franca/navigation/mapviewer/MapViewerControl.fidl b/api/franca/navigation/mapviewer/MapViewerControl.fidl new file mode 100755 index 0000000..1a8f216 --- /dev/null +++ b/api/franca/navigation/mapviewer/MapViewerControl.fidl @@ -0,0 +1,1456 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +// this file, you can obtain one at http://mozilla.org/MPL/2.0/. + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" +import org.genivi.navigation.navigationcore.MapViewerControlTypes.* from "MapViewerControlTypes.fidl" + +<** + @description : MapViewerControl = This interface offers functions to control the MapViewer +**> + +interface org.genivi.mapviewer.MapViewerControl { + version { + major 0 + minor 0 + } + + <** + @description : GetVersion = This method returns the API version implemented by the server application + **> + method GetVersion { + out { + Version ^version + } + } + + <** + @description : CreateMapViewInstance = This method creates a new map instance + **> + method CreateMapViewInstance { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + Dimension mapViewSize + + <** + @description : mapViewType = enum(INVALID,MAIN_MAP,SPLIT_SCREEN, ... ) + **> + MapViewType mapViewType + } + out { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + } + + <** + @description : ReleaseMapViewInstance = This method releases (i.e. destroys) a given map instance. Only invisible map instances can be released + **> + method ReleaseMapViewInstance { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + } + + <** + @description : GetMapViewType = This method returns the map type of a map instance as it was set using CreateMapViewInstance + **> + method GetMapViewType { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : mapViewType = enum(INVALID,MAIN_MAP,SPLIT_SCREEN, ... ) + **> + MapViewType mapViewType + } + } + + <** + @description : GetSupportedMapViewTypes = This method retrieves the supported map view types + **> + method GetSupportedMapViewTypes { + out { + MapViewType [] mapViewTypeList + } + } + + <** + @description : SetTargetPoint = This method sets the position of the point the camera is always aimed at + **> + method SetTargetPoint { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + Coordinate3D targetPoint + } + } + + <** + @description : GetTargetPoint = This method retrieves the target point position + **> + method GetTargetPoint { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + Coordinate3D targetPoint + } + } + + <** + @description : SetFollowCarMode = This method sets the FollowCar mode + **> + method SetFollowCarMode { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : followCarMode = flag. If true, the current car position is interpreted as position of the point the camera must look at + **> + Boolean followCarMode + } + } + + <** + @description : GetFollowCarMode = This method returns the current FollowCar-mode + **> + method GetFollowCarMode { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : followCarMode = flag. If true, the current car position is interpreted as position of the point the camera must look at + **> + Boolean followCarMode + } + } + + <** + @description : SetCameraPosition = This method sets the coordinates of the point at which the camera must be positioned + **> + method SetCameraPosition { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + Coordinate3D position + } + } + + <** + @description : GetCameraPosition = This method returns the coordinates of the point at which the camera is positioned + **> + method GetCameraPosition { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + Coordinate3D position + } + } + + <** + @description : SetCameraHeadingAngle = This method sets the map view heading angle + **> + method SetCameraHeadingAngle { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : heading = heading angle in degrees. Range [0:360] + **> + Int32 heading + } + } + + <** + @description : SetCameraHeadingToTarget = This method sets the camera heading in such a way, that the camera always looks at a given target + **> + method SetCameraHeadingToTarget { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + Coordinate2D target + } + } + + <** + @description : SetCameraHeadingTrackUp = This method sets the camera heading in such a way, that the camera always looks in the direction in which the car is moving + **> + method SetCameraHeadingTrackUp { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + } + + <** + @description : GetCameraHeading = This method returns the current camera heading + **> + method GetCameraHeading { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : headingType = enum(INVALID,CONSTANT_ANGLE,TRACK_UP,TOWARDS_TARGET, ... ) + **> + UInt16 headingType + + <** + @description : headingAngle = heading angle in degrees measured from the North axis clockwise. Range[0:360] + **> + Int32 headingAngle + + Coordinate2D target + } + } + + <** + @description : SetCameraTiltAngle = This method sets the camera tilt angle + **> + method SetCameraTiltAngle { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : tilt = tilt angle in degrees. Range [-180:180] + **> + Int32 tilt + } + } + + <** + @description : GetMapViewTiltAngle = This method returns the camera tilt angle + **> + method GetCameraTiltAngle { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : tilt = tilt angle in degrees. Range [-180:180] + **> + Int32 tilt + } + } + + <** + @description : SetCameraRollAngle = This method sets the camera roll angle + **> + method SetCameraRollAngle { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : roll = roll angle in degrees. Range [-180:180] + **> + Int32 roll + } + } + + <** + @description : GetCameraRollAngle = This method returns the camera roll angle + **> + method GetCameraRollAngle { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : roll = roll angle in degrees. Range [-180:180] + **> + Int32 roll + } + } + + <** + @description : SetCameraDistanceFromTargetPoint = This method sets the mode and the camera distance from the target point + **> + method SetCameraDistanceFromTargetPoint { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : distance = distance from the view point in meters + **> + UInt32 distance + } + } + + <** + @description : GetCameraDistanceFromTargetPoint = This method gets the mode and the camera distance from the target point + **> + method GetCameraDistanceFromTargetPoint { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : distance = distance from the view point in meters + **> + UInt32 distance + } + } + + <** + @description : SetMapViewScaleMode = This method sets the scaling mode. + **> + method SetMapViewScaleMode { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : scaleMode = enum(AUTOMATIC,MANUAL,HYBRID) + **> + MapScaleMode scaleMode + } + } + + <** + @description : GetMapViewScaleMode = This method gets the scaling mode. + **> + method GetMapViewScaleMode { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : scaleMode = enum(AUTOMATIC,MANUAL,HYBRID) + **> + MapScaleMode scaleMode + } + } + + <** + @description : GetSupportedMapViewScaleModes = This method gets the supported scaling modes. + **> + method GetSupportedMapViewScaleModes { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + MapScaleMode [] scaleModeList + } + } + + <** + @description : AddMapViewScaleChangedListener = This method adds a listener which is notified when map view scale changes. + **> + method AddMapViewScaleChangedListener { + } + + <** + @description : RemoveMapViewScaleChangedListener = This method removes a listener which is notified when map view scale changes. + **> + method RemoveMapViewScaleChangedListener { + } + + <** + @description : SetCameraHeight = This method sets the camera height + **> + method SetCameraHeight { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : height = height from the ground in meters + **> + UInt32 height + } + } + + <** + @description : GetCameraHeight = This method gets the camera height + **> + method GetCameraHeight { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : height = height from the ground in meters + **> + UInt32 height + } + } + + <** + @description : SetMapViewPerspective = This method sets the map perspective + **> + method SetMapViewPerspective { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : perspective = enum(INVALID,2D,3D, ... ) + **> + MapPerspective perspective + } + } + + <** + @description : GetMapViewPerspective = This method returns the current map perspective + **> + method GetMapViewPerspective { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : perspective = enum(INVALID,2D,3D, ... ) + **> + MapPerspective perspective + } + } + + <** + @description : GetSupportedMapViewPerspectives = This method retrieves the supported mapview perspectives + **> + method GetSupportedMapViewPerspectives { + out { + MapPerspective[] perspectiveList + } + } + + <** + @description : SetMapViewObjectVisibility = This method specifies the type of objects to show on the map. + **> + method SetMapViewObjectVisibility { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + MapObjectVisibility objectVisibilityList + } + } + + <** + @description : GetMapViewObjectVisibility = This method gets the type of objects shown on the map. + **> + method GetMapViewObjectVisibility { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + MapObjectVisibility objectVisibilityList + } + } + + <** + @description : GetSupportedMapViewObjectVisibilities = This method gets the supported object visibilities. + **> + method GetSupportedMapViewObjectVisibilities { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + MapObject [] objectVisibilityList + } + } + + <** + @description : GetScaleList = This method returns a list of supported map scales + **> + method GetScaleList { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + MapScale[] scaleList + } + } + + <** + @description : SetMapViewScale = This method sets the map scale by specifying a ScaleID + **> + method SetMapViewScale { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : scaleID = scale identifier. Range[0:256] + **> + UInt16 scaleID + } + } + + <** + @description : SetMapViewScaleByDelta = This method sets the map scale by specifying a delta value with respect to the currently set ScaleID + **> + method SetMapViewScaleByDelta { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : scaleDelta = This parameter can have either positive or negative values. '0' means no change. Positive values indicate larger scales + **> + Int16 scaleDelta + } + } + + <** + @description : SetMapViewScaleByMetersPerPixel = This method sets the map scale by specifying the number of meters that a pixel represents + **> + method SetMapViewScaleByMetersPerPixel { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : metersPerPixel = meters per pixel + **> + Double metersPerPixel + } + } + + <** + @description : GetMapViewScale = This method returns the currently used map scale + **> + method GetMapViewScale { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : scaleID = scale identifier. Range[0:256] + **> + Int8 scaleID + + <** + @description : isMinMax = enum(INVALID,MIN,MAX,MID, ... ) + **> + MapScaleType isMinMax + } + } + + <** + @description : SetMapViewBoundingBox = This method sets the map bounding box + **> + method SetMapViewBoundingBox { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + Rectangle boundingBox + } + } + + <** + @description : GetMapViewBoundingBox = This method returns the bounding box of a given map instance + **> + method GetMapViewBoundingBox { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + Rectangle boundingBox + } + } + + <** + @description : SetMapViewSaveArea = This methods defines the area that the HMI guarantees not to +cover with other windows or user interface elements + **> + method SetMapViewSaveArea { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + MapViewArea saveArea + } + } + + <** + @description : SetMapViewSaveArea = This methods defines the area that the HMI guarantees not to +cover with other windows or user interface elements + **> + method GetMapViewSaveArea { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + MapViewArea saveArea + } + } + + <** + @description : SetMapViewPan = This method pans a given map instance + **> + method SetMapViewPan { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : panningAction = enum(PAN_START,PAN_TO,PAN_END) + **> + PanAction panningAction + + Pixel [] pixelCoordinates + } + } + + <** + @description : GetMapViewPan + **> + method GetMapViewPan { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : valueToReturn = enum(PAN_START,PAN_TO,PAN_END) + **> + PanAction valueToReturn + + Pixel [] pixelCoordinates + } + } + + <** + @description : SetMapViewRotation = This method rotates the map + **> + method SetMapViewRotation { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : rotationAngle = rotation angle in degrees measured from the North axis clockwise. Range[0:360] + **> + Int32 rotationAngle + + <** + @description : rotationAnglePerSecond = partial rotation for each second + **> + Int32 rotationAnglePerSecond + } + } + + <** + @description : GetMapViewRotation = This method is particularly interesting for debugging purposes + **> + method GetMapViewRotation { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : rotationAngle = rotation angle in degrees measured from the North axis clockwise. Range[0:360] + **> + Int32 rotationAngle + + <** + @description : rotationAnglePerFrame = partial rotation for each map frame in degrees + **> + Int32 rotationAnglePerFrame + } + } + + <** + @description : SetMapViewVisibilityMode = This method sets the current visibility mode + **> + method SetMapViewVisibilityMode { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : visibilityMode = enum(INVALID,VISIBLE,INVISIBLE,FROZEN, ... ) + **> + Visibility visibilityMode + } + } + + <** + @description : GetMapViewVisibilityMode = This method returns the current visibility mode + **> + method GetMapViewVisibilityMode { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : visibilityMode = enum(INVALID,VISIBLE,INVISIBLE,FROZEN, ... ) + **> + Visibility visibilityMode + } + } + + <** + @description : GetSupportedMapViewVisibilityModes = This method retrieves the supported mapview visibility modes + **> + method GetSupportedMapViewVisibilityModes { + out { + Visibility [] visibilityModeList + } + } + + <** + @description : SetMapViewPerformanceLevel = This method sets the perfomance level of a given map instance + **> + method SetMapViewPerformanceLevel { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : performanceLevel = enum(INVALID,LEVEL1,LEVEL2,LEVEL3,LEVEL4,LEVEL5, ... ) + **> + Level performanceLevel + } + } + + <** + @description : GetMapViewPerformanceLevel = This method returns the perfomance level of a given map instance + **> + method GetMapViewPerformanceLevel { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : performanceLevel = enum(INVALID,LEVEL1,LEVEL2,LEVEL3,LEVEL4,LEVEL5, ... ) + **> + Level performanceLevel + } + } + + <** + @description : GetSupportedMapViewPerformanceLevels = This method retrieves the supported perfomance levels + **> + method GetSupportedMapViewPerformanceLevels { + out { + Level [] performanceLevelList + } + } + + <** + @description : DisplayRoute = This method visualizes one of the calculated routes + **> + method DisplayRoute { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + <** + @description : highlighted = flag. TRUE means highligted,FALSE means not highlighted + **> + Boolean highlighted + } + } + + <** + @description : HideRoute = This method hides one of the visible routes + **> + method HideRoute { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : GetDisplayedRoutes = This method returns a list of displayed routes + **> + method GetDisplayedRoutes { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + DisplayedRoute [] displayedRoutes + } + } + + <** + @description : GetPoiCategoriesVisible = Get the set of POI categories displayed on the map. + **> + method GetPoiCategoriesVisible { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + UInt16 [] poiCategoryIds + } + } + + <** + @description : SetPoiCategoriesVisible = Add POI categories to the set of POI categories displayed on the map. + Any specified category that until now was displayed with scale limits is now displayed without limits. + **> + method SetPoiCategoriesVisible { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + UInt16 [] poiCategoryIds + } + } + + <** + @description : SetPoiCategoriesVisible = Add POI categories to the set of POI categories displayed on the map, where the POI's are only displayed in a specific range of scales. + Any specified category that until now was displayed without scale limits is now displayed with limits. + **> + method SetPoiCategoriesVisibleWithinLimits { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + UInt16 [] poiCategoryIds + + <** + @description : minScaleID = minimun scale on which the POI categories are displayed + **> + Int8 minScaleID + + <** + @description : maxScaleID = maximum scale on which the POI categories are displayed + **> + Int8 maxScaleID + } + } + + <** + @description : SetPoiCategoriesNotVisible = Remove POI categories from the set of POI categories displayed on the map. + **> + method SetPoiCategoriesNotVisible { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + UInt16 [] poiCategoryIds + } + } + + <** + @description : SetTrafficIncidentsVisibility = Set the visibility of Traffic Incidents on the map. + **> + method SetTrafficIncidentsVisibility { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : visible = If true, Traffic Incidents are shown on the map, else they are not shown. + **> + Boolean visible + } + } + + <** + @description : SetMapViewTheme = This method configures the theme of a given map view instance + **> + method SetMapViewTheme { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : mapViewTheme = enum(INVALID,THEME_1,THEME_2,THEME_3, ... ) + **> + MapTheme mapViewTheme + } + } + + <** + @description : GetMapViewTheme = This method returns the current theme of a given map view instance + **> + method GetMapViewTheme { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + + <** + @description : mapViewTheme = enum(INVALID,THEME_1,THEME_2,THEME_3, ... ) + **> + MapTheme mapViewTheme + } + } + + <** + @description : GetSupportedMapViewThemes = This method retrieves the supported mapview themes + **> + method GetSupportedMapViewThemes { + out { + MapTheme [] mapViewThemeList + } + } + + <** + @description : ConvertPixelCoordsToGeoCoords = This method converts pixel coordinates to geographical coordinates + **> + method ConvertPixelCoordsToGeoCoords { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + Pixel [] pixelCoordinates + } + out { + Coordinate2D [] geoCoordinates + } + } + + <** + @description : ConvertGeoCoordsToPixelCoords = This method converts geographical coordinates into pixel coordinates + **> + method ConvertGeoCoordsToPixelCoords { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + + Coordinate2D [] geoCoordinates + } + out { + + Pixel [] pixelCoordinates + } + } + + <** + @description : DisplayCustomElements = This method visualizes a set of custom elements on the map + **> + method DisplayCustomElements { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + CustomElement [] customElements + } + out { + Handle[] customElemenHandles + } + } + + <** + @description : HideCustomElements = This method hides a set of custom elements which were visualized by DisplayCustomElements + **> + method HideCustomElements { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + Handle [] customElemenHandles + } + } + + <** + @description : GetDisplayedCustomElements = This method retrieves the visualized custom elements on the map + **> + method GetDisplayedCustomElements { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + } + out { + tCustomElementDict customElements + } + } + + <** + @description : SelectElementsOnMap = This method selects elements on the map view which are at the position specified by user input + **> + method SelectElementsOnMap { + in { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + Pixel pixelCoordinate + + SelectableMapType [] selectableTypes + + <** + @description : maxNumberOfSelectedElements = maximum number of selected elements to return. If 0, all possible elements which can be selected will be returned + **> + UInt16 maxNumberOfSelectedElements + } + out { + SelectedMapElement [] selectedElements + } + } + + <** + @description : MapViewScaleChanged = This signal is emitted when the mapview scale changes + **> + broadcast MapViewScaleChanged { + out { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : scaleID = scale identifier. Range[0:256] + **> + Int8 scaleID + + <** + @description : isMinMax = enum(INVALID,MIN,MAX,MID, ... ) + **> + MapScaleType isMinMax + } + } + + <** + @description : MapViewVisibilityChanged = This signal is emitted when the MapView visibility changes + **> + broadcast MapViewVisibilityChanged { + out { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + + <** + @description : visibilityMode = enum(INVALID,VISIBLE,INVISIBLE,FROZEN, ... ) + **> + Visibility visibilityMode + } + } + + <** + @description : DisplayedRoutes = This signal is emitted when the list of displayed routes change + **> + broadcast DisplayedRoutes { + out { + + <** + @description : mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle mapViewInstanceHandle + DisplayedRoute [] displayedRoutes + } + } + + + +} \ No newline at end of file diff --git a/api/franca/navigation/mapviewer/MapViewerControlTypes.fidl b/api/franca/navigation/mapviewer/MapViewerControlTypes.fidl new file mode 100755 index 0000000..940000b --- /dev/null +++ b/api/franca/navigation/mapviewer/MapViewerControlTypes.fidl @@ -0,0 +1,175 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +// this file, you can obtain one at http://mozilla.org/MPL/2.0/. + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" + +typeCollection MapViewerControlTypes { + + enumeration MapViewType extends BasicEnum { + MAIN_MAP = "0x0010" + SPLIT_SCREEN = "0x0011" + } + + enumeration MapScaleMode extends BasicEnum { + AUTOMATIC = "0x0110" + MANUAL = "0x0111" + HYBRID = "0x0112" + } + + enumeration MapPerspective extends BasicEnum { + PERSPECTIVE_2D = "0x0020" + PERSPECTIVE_3D = "0x0021" + } + + enumeration MapObject extends BasicEnum { + BUILDINGS = "0x0080" + TERRAIN = "0x0081" + } + + enumeration PanAction extends BasicEnum { + PAN_START = "0x0100" + PAN_TO = "0x0101" + PAN_END = "0x0102" + } + + enumeration Visibility extends BasicEnum { + VISIBLE = "0x0043" + INVISIBLE = "0x0044" + FROZEN = "0x0045" + } + + enumeration Level extends BasicEnum { + LEVEL_1 = "0x0050" + LEVEL_2 = "0x0051" + LEVEL_3 = "0x0052" + LEVEL_4 = "0x0053" + LEVEL_5 = "0x0054" + } + + enumeration MapTheme extends BasicEnum { + THEME_1 = "0x0060" + THEME_2 = "0x0061" + THEME_3 = "0x0062" + } + + <** + @description : struct generated for DBus argument CreateMapViewInstance_mapViewSize + **> + struct Dimension { + UInt16 horizontalSize + UInt16 verticalSize + } + + map MapObjectVisibility { + MapObject to Boolean + } + + enumeration MapScaleUnit extends BasicEnum { + METER = "0x0032" + MILE = "0x0033" + KM = "0x0034" + YARD = "0x0035" + FOOT = "0x0036" + } + + enumeration MapScaleType extends BasicEnum { + MIN = "0x0040" + MAX = "0x0041" + MID = "0x0042" + } + + enumeration SelectableMapType extends BasicEnum { + CUSTOM_ELEMENT = "0x0120" + CURRENT_POSITION = "0x0121" + WAYPOINT = "0x0122" + POI = "0x0123" + TRAFFIC_INCIDENT = "0x0124" + ROUTE = "0x0125" + GEOCOORDINATES = "0x0126" + } + + <** + @description : struct generated for DBus argument GetScaleList_scaleList + **> + struct MapScale { + UInt16 scaleId + UInt16 scaleValue + MapScaleUnit unit + UInt32 millimetersPerPixel + } + + + <** + @description : struct generated for DBus argument SetMapViewSaveArea_saveArea + **> + struct MapViewArea { + Double left + Double right + Double top + Double bottom + } + + <** + @description : struct generated for DBus argument SetMapViewPan_pixelCoordinates + **> + struct Pixel { + UInt16 x + UInt16 y + } + + + <** + @description : struct generated for DBus argument GetDisplayedRoutes_displayedRoutes + **> + struct DisplayedRoute { + Handle routeHandle + Boolean highlighted + } + + + + <** + @description : struct generated for DBus argument DisplayCustomElements_customElementsElem4 + **> + struct AnchorPoint { + Int16 x + Int16 y + } + + <** + @description : struct generated for DBus argument DisplayCustomElements_customElements + **> + struct CustomElement { + String name + String iconUri + Coordinate2D coordinate + AnchorPoint elem4 + } + + + map tCustomElementDict { + Handle to CustomElement + } + + <** + @description : struct generated for DBus argument SelectElementsOnMap_selectedElements + **> + struct SelectedMapElement { + SelectableMapType type + Coordinate2D position + ElementValue value + } + + union ElementValue { + Int32 trafficIncident + Handle handle + CustomElement element + } + + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/Guidance.fidl b/api/franca/navigation/navigationcore/Guidance.fidl new file mode 100755 index 0000000..9b1e08f --- /dev/null +++ b/api/franca/navigation/navigationcore/Guidance.fidl @@ -0,0 +1,377 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +// this file, you can obtain one at http://mozilla.org/MPL/2.0/. + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" +import org.genivi.navigation.navigationcore.GuidanceTypes.* from "GuidanceTypes.fidl" + + +<** + @description : Guidance = This interface offers functions that implement the route-guidance functionality of a navigation system +**> + +interface org.genivi.navigationcore.Guidance { + version { + major 0 + minor 0 + } + + <** + @description : GetVersion = This method returns the API version implemented by the server application + **> + method GetVersion { + out { + Version ^version + } + } + + <** + @description : StartGuidance = This method starts the guidance for a given route + **> + method StartGuidance { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : StopGuidance = This method stops the guidance + **> + method StopGuidance { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + } + } + + <** + @description : SetVoiceGuidance = This method switch on/off the voice guidance + **> + method SetVoiceGuidance { + in { + + <** + @description : activation of the voice guidance + **> + Boolean activate + + <** + @description : kind of voice (to be defined) + **> + String voice + } + } + + <** + @description : GetGuidanceDetails = This method retrieves guidance information + **> + method GetGuidanceDetails { + out { + + <** + @description : voiceGuidance = if TRUE voice guidance is active + **> + Boolean voiceGuidance + + <** + @description : vehicleOnTheRoad = if TRUE the vehicle is located on the road network + **> + Boolean vehicleOnTheRoad + + <** + @description : isDestinationReached = if TRUE the destination has been reached + **> + Boolean isDestinationReached + + <** + @description : maneuver = enum(INVALID,CRUISE,MANEUVER_APPEARED,PRE_ADVICE,ADVICE,PASSED, ... ) + **> + ManueverPhase maneuver + } + } + + <** + @description : PlayVoiceManeuver = This method plays or repeats the last voice guidance + **> + method PlayVoiceManeuver { + } + + <** + @description : GetWaypointInformation = This method retrieves the information on the remaining way points of the route. A point can be the final destination as well as a stage defined by the user. The returned waypoints are ordered by their 'number'. + **> + method GetWaypointInformation { + in { + + <** + @description : requestedNumberOfWaypoints = the number of requested waypoints. If 0, all waypoints will be returned. + **> + UInt16 requestedNumberOfWaypoints + } + out { + + <** + @description : numberOfWaypoints = the number of retrieved waypoints(NOTE: the number corresponds to the number of elements in the array) + **> + UInt16 numberOfWaypoints + tWaypointStruct [] waypointsList + } + } + + <** + @description : This method retrieves the information on the final destination + **> + method GetDestinationInformation { + out { + + <** + @description : offset = offset of the destination in meter from the beginning of the route + **> + UInt32 offset + + <** + @description : travelTime = time to reach the destination in second + **> + UInt32 travelTime + + <** + @description : direction = direction of the destination in degree relatively to the North. Range [0:360] + **> + Int32 direction + + <** + @description : side = enum(LEFT,RIGHT,NOT_AVAILABLE) + **> + UInt16 side + + <** + @description : timeZone = time zone of the destination. It is expressed as the time difference from the UTC in minutes + **> + Int16 timeZone + + <** + @description : daylightSavingTime = daylight saving time of the destination. It is expressed as the time difference from the UTC in minutes + **> + Int16 daylightSavingTime + } + } + + <** + @description : GetManeuversList = This method retrieves the list of next maneuvers + **> + method GetManeuversList { + in { + + <** + @description : requestedNumberOfManeuvers = the number of requested maneuvers + **> + UInt16 requestedNumberOfManeuvers + + <** + @description : maneuverOffset = the offset of the first maneuver to retrieve + **> + UInt32 maneuverOffset + } + out { + + <** + @description : numberOfManeuvers = the number of retrieved maneuvers + **> + UInt16 numberOfManeuvers + + Maneuver[] maneuversList + } + } + + <** + @description : SetRouteCalculationMode = This method configures the way the navigation application wants the navigation core to behave of reroute trigger + **> + method SetRouteCalculationMode { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeCalculationMode = enum(INVALID,ALL_MANUAL,ALL_AUTOMATIC,TRAFFIC_MANUAL,OFF_ROUTE_MANUAL) + **> + CalculationMode routeCalculationMode + } + } + + <** + @description : SkipNextManeuver = This method allows to jump behind the current maneuver + **> + method SkipNextManeuver { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + } + } + + <** + @description : GetGuidanceStatus = This method retrieves the guidance status + **> + method GetGuidanceStatus { + out { + + <** + @description : guidanceStatus = enum(INVALID,ACTIVE,INACTIVE) + **> + GuidanceStatus guidanceStatus + + <** + @description : routeHandle = Active route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value. Should be ignored when guidanceStatus=INACTIVE + **> + Handle routeHandle + } + } + + <** + @description : SetVoiceGuidanceSettings = This method sets the voice guidance settings + **> + method SetVoiceGuidanceSettings { + in { + + <** + @description : mode = enum(INVALID,DISABLED_PROMPT,AUTOMATIC_PROMPT,MANUAL_PROMPT, ... ) + **> + PromptMode promptMode + } + } + + <** + @description : GetVoiceGuidanceSettings = This method returns the used voice guidance settings + **> + method GetVoiceGuidanceSettings { + out { + + <** + @description : mode = enum(INVALID,DISABLED_PROMPT,AUTOMATIC_PROMPT,MANUAL_PROMPT, ... ) + **> + PromptMode promptMode + } + } + + <** + @description : VehicleLeftTheRoadNetwork = This signal is emitted when the vehicle exits from the road network + **> + broadcast VehicleLeftTheRoadNetwork { + } + + <** + @description : GuidanceStatusChanged = This signal is emitted when the guidance status changes + **> + broadcast GuidanceStatusChanged { + out { + + <** + @description : guidanceStatus = enum(INVALID,ACTIVE,INACTIVE) + **> + GuidanceStatus guidanceStatus + + <** + @description : routeHandle = Active route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value. Should be ignored when guidanceStatus=INACTIVE. + **> + Handle routeHandle + } + } + + <** + @description : WaypointReached = This signal is emitted when the destination is reached + **> + broadcast WaypointReached { + out { + + <** + @description : isDestination = flag. TRUE means that the way point is the destination + **> + Boolean isDestination + } + } + + <** + @description : This signal is emitted each time a maneuver event is going + **> + broadcast ManeuverChanged { + out { + + <** + @description : maneuver = enum(INVALID,CRUISE,MANEUVER_APPEARED,PRE_ADVICE,ADVICE,PASSED, ... ) + **> + ManueverPhase maneuver + } + } + + <** + @description : PositionOnRouteChanged = This signal is emitted when the position on the route changes + **> + broadcast PositionOnRouteChanged { + out { + + <** + @description : offsetOnRoute = the current offset on the route in meters from the beginning of the route + **> + UInt32 offsetOnRoute + } + } + + <** + @description : VehicleLeftTheRoute = This signal is emitted when the vehicle has left the route + **> + broadcast VehicleLeftTheRoute { + } + + <** + @description : PositionToRouteChanged = This signal is emitted when the vehicle is off-the-road network and either the heading or the distance (or both) to the closest point on the active route changes + **> + broadcast PositionToRouteChanged { + out { + + <** + @description : distance = distance in meters to the closest point on the active route + **> + UInt32 distance + + <** + @description : direction = direction in degrees relatively to the closest point on the active route. Range [0:360] + **> + Int32 direction + } + } + + <** + @description : ActiveRouteChanged = This signal is emitted when the active route changes + **> + broadcast ActiveRouteChanged { + out { + + <** + @description : changeCause = enum(INVALID,TRAFFIC,OFF_ROUTE,MANUAL,...) + **> + RouteChangedCause changeCause + } + } + + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/GuidanceTypes.fidl b/api/franca/navigation/navigationcore/GuidanceTypes.fidl new file mode 100755 index 0000000..62a930b --- /dev/null +++ b/api/franca/navigation/navigationcore/GuidanceTypes.fidl @@ -0,0 +1,161 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.navigationcore +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" + +typeCollection GuidanceTypes { + + enumeration ManueverPhase extends BasicEnum { + CRUISE = "0x0050" + MANEUVER_APPEARED = "0x0051" + PRE_ADVICE = "0x0052" + ADVICE = "0x0053" + PASSED = "0x0054" + } + + enumeration Side extends BasicEnum { + LEFT = "0x0080" + RIGHT = "0x0083" + NOT_AVAILABLE = "0x0002" + } + + enumeration RoadProperty extends BasicEnum { + + } + + enumeration ManeuverType extends BasicEnum { + STRAIGHT_ON = "0x0070" + TURN = "0x0078" + CROSSROAD = "0x0071" + ROUNDABOUT = "0x0072" + HIGHWAY_ENTER = "0x0073" + HIGHWAY_EXIT = "0x0074" + BIFURCATION = "0x0079" + HIGHWAY_CHANGE_LANE = "0x0075" + DESTINATION = "0x0076" + WAYPOINT = "0x0077" + } + + enumeration ManeuverDirectionType extends BasicEnum { + LENGTH = "0x0031" + DIRECTION = "0x0240" + EXIT_NUMBER = "0x0241" + ROAD_FORM = "0x0242" + LANE_INFO = "0x0243" + } + + enumeration LaneType extends BasicEnum { + LANE_INFO_BITMASK_STRAIGHT = "0x0001" + LANE_INFO_BITMASK_SLIGHTRIGHT = "0x0002" + LANE_INFO_BITMASK_RIGHT = "0x0004" + LANE_INFO_BITMASK_SHARPRIGHT = "0x0008" + LANE_INFO_BITMASK_RIGHTUTURN = "0x0010" + LANE_INFO_BITMASK_SLIGHTLEFT = "0x0020" + LANE_INFO_BITMASK_LEFT = "0x0040" + LANE_INFO_BITMASK_SHARPLEFT = "0x0080" + LANE_INFO_BITMASK_LEFTUTURN = "0x1000" + } + + enumeration LaneDivider extends BasicEnum { + DIVIDER_UNDEFINED = "0x0250" + DIVIDER_INTERRUPTEDLONG = "0x0251" + DIVIDER_INTERRUPTEDSHORT = "0x0252" + DIVIDER_SOLIDSINGLE = "0x0253" + DIVIDER_SOLIDDOUBLE = "0x0254" + DIVIDER_SOLIDINTERRUPTED = "0x0255" + DIVIDER_INTERRUPTEDSOLID = "0x0256" + } + + enumeration CalculationMode extends BasicEnum { + ALL_MANUAL = "0x0090" + ALL_AUTOMATIC = "0x0091" + TRAFFIC_MANUAL = "0x0092" + OFF_ROUTE_MANUAL = "0x0093" + } + + enumeration GuidanceStatus extends BasicEnum { + ACTIVE = "0x0060" + INACTIVE = "0x0061" + } + + enumeration PromptMode extends BasicEnum { + DISABLED_PROMPT = "0x0041" + AUTOMATIC_PROMPT = "0x0042" + MANUAL_PROMPT = "0x0043" + } + + enumeration RouteChangedCause extends BasicEnum { + TRAFFIC = "0x0210" + OFF_ROUTE = "0x0211" + MANUAL = "0x0212" + } + + enumeration ManeuverDirection extends BasicEnum { + STRAIGHT_ON = "0x0070" + LEFT = "0x0080" + SLIGHT_LEFT = "0x0081" + HARD_LEFT = "0x0082" + RIGHT = "0x0083" + SLIGHT_RIGHT = "0x0084" + HARD_RIGHT = "0x0085" + UTURN_RIGHT = "0x0086" + UTURN_LEFT = "0x0087" + } + + struct tWaypointStruct { + UInt32 waypointOffset + UInt32 travelTime + Int32 direction + Side side + Int16 timeZone + Int16 daylightSavingTime + Boolean isDestination + UInt16 number + } + + <** + @description : struct generated for DBus argument GetManeuversList_maneuversListElem6Elem4 + **> + struct ManeuverSegment { + ManeuverType maneuver + UInt16 maneuverLength + } + + <** + @description : struct generated for DBus argument GetManeuversList_maneuversListElem6Elem5 + **> + struct ManeuverTurn { + ManeuverDirection maneuverDirection + String exitNumber + } + + <** + @description : struct generated for DBus argument GetManeuversList_maneuversListElem6 + **> + struct tManeuverItem { + UInt32 offsetOfManeuver + UInt32 travelTime + Int32 direction + ManeuverSegment segment + ManeuverTurn turnTo + } + + <** + @description : struct generated for DBus argument GetManeuversList_maneuversList + **> + struct Maneuver { + String roadNumberAfterManeuver + String roadNameAfterManeuver + UInt16 roadPropertyAfterManeuver + Side drivingSide + UInt32 offsetOfNextManeuver + tManeuverItem[] items + } + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/LocationInput.fidl b/api/franca/navigation/navigationcore/LocationInput.fidl new file mode 100755 index 0000000..ce4c087 --- /dev/null +++ b/api/franca/navigation/navigationcore/LocationInput.fidl @@ -0,0 +1,448 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" +import org.genivi.navigation.navigationcore.LocationInputTypes.* from "LocationInputTypes.fidl" + +<** + @description : LocationInput = This interface offers functions that implement the location-input functionality of a navigation system +**> + +interface org.genivi.navigationcore.LocationInput { + version { + major 3 + minor 0 + } + + <** + @description : GetVersion = This method returns the API version implemented by the server application + **> + method GetVersion { + out { + Version ^version + } + } + + <** + @description : CreateLocationInput = This method creates a new location input and retrieves a handle + **> + method CreateLocationInput { + in { + + <** + @description : Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + } + out { + + <** + @description : Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + } + error { + NoMoreLocationInpuHandles + } + } + + <** + @description : DeleteLocationInput = This method deletes a location input and its associated resources + **> + method DeleteLocationInput { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + } + } + + <** + @description : GetSupportedAddressAttributes = This method retrieves the supported address attributes + **> + method GetSupportedAddressAttributes { + out { + AddressAttributeList addressAttributesList + } + } + + <** + @description : SetAddress = This method sets the address to start with for the LocationInput identified by the given handle + **> + method SetAddress { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + Address address + } + } + + <** + @description : SetSelectionCriterion = This method sets the selection criterion for the current speller, search input and the corresponding result-lists for the current session + **> + method SetSelectionCriterion { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : selectionCriterion = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... ) + **> + AddressAttribute selectionCriterion + } + } + + <** + @description : Spell = This method sends the next spell input for the current session + **> + method Spell { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : inputString = last input character (UTF-8) (0x08(Backspace) for delete last character, 0x0D(Carriage Return) for delete entire input) + **> + String inputCharacter + + <** + @description : maxWindowSize = maximum number of elements that should be returned as result + **> + UInt16 maxWindowSize + } + } + + <** + @description : Search = This method sends the search input for the current session + **> + method Search { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : inputString = contains the String, that is searched + **> + String inputString + + <** + @description : maxWindowSize = maximum number of elements that should be returned as result + **> + UInt16 maxWindowSize + } + } + + <** + @description : RequestListUpdate = This method sends a request for more list elements for the current session + **> + method RequestListUpdate { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : offset = starting offset of the newly requested list elements + **> + UInt16 offset + + <** + @description : maxWindowSize = maximum number of elements that should be returned as result + **> + UInt16 maxWindowSize + } + } + + <** + @description : SelectEntry = This method triggers selection of a result list entry by index + **> + method SelectEntry { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : index = absolute list index of the entry to be selected + **> + UInt16 index + } + } + + <** + @description : GetEntry = This method synchronously gets the address for the given result list entry + **> + method GetEntry { + in { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : index = list index of the entry to be returned + **> + UInt16 index + } + out { + Address address + } + } + + <** + @description : ValidateAddress = This method validates an address from different sources than Navigation + **> + method ValidateAddress { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + Address inputAddress + } + } + + <** + @description : ReverseGeocode = This method transforms a geocoordinate into an address + **> + method ReverseGeocode { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + Coordinate2D coordinate + } + } + + <** + @description : CurrentSelectionCriterion = This signal notifies the SelectionCriterion for the current speller input or search. + **> + broadcast CurrentSelectionCriterion { + out { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : selectionCriterion = enum(INVALID,LATITUDE,LONGITUDE,ALTITUDE,FULL_ADDRESS,COUNTRY,COUNTRYCODE,STATE,CITY,ZIPCODE,STREET,ROAD_NUMBER,HOUSENUMBER,HOUSENAME,CROSSING,DISTRICT,PHONENUMBER,POINAME,TOWNCENTER, ... ) + **> + AddressAttribute selectionCriterion + } + } + + <** + @description : SearchStatus = This signal updates the search status of the specified session + **> + broadcast SearchStatus { + out { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : statusValue = enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ) + **> + SearchStatus statusValue + } + } + + <** + @description : SpellResult = This signal notifies the result of the previous Spell method + **> + broadcast SpellResult { + out { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : uniqueString = unique string derived from spell input (i.e. including auto-completion if applicable) + **> + String uniqueString + + <** + @description : validCharacters = set of (UTF-8 encoded) characters valid for next input (unified in a single string). A Backspace(0x08) is returned if the input character passed to the Spell method was invalid + **> + String validCharacters + + <** + @description : fullMatch = flag indicating whether the value in UniqueCharacters is already a full match for an existing list entry + **> + Boolean fullMatch + } + } + + <** + @description : SearchResultList = This signal updates the address result list (e.g. after a Search/Spell/Scroll call) + **> + broadcast SearchResultList { + out { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : totalSize = total size of the result list + **> + UInt16 totalSize + + <** + @description : windowOffset = window offset within the complete list + **> + UInt16 windowOffset + + <** + @description : windowSize = size of the provided window + **> + UInt16 windowSize + + Address [] resultListWindow + } + } + + <** + @description : SearchResultListSizeChanged = This signal updates the size of the address result list + **> + broadcast SearchResultListSizeChanged { + out { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : totalSize = total size of the result list + **> + UInt16 totalSize + } + } + + <** + @description : ContentUpdated = This signal updates the input content data for the specified session + **> + broadcast ContentUpdated { + out { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + <** + @description : guidable = flag indicating whether the current address is guidable + **> + Boolean guidable + + AddressAttribute [] availableSelectionCriteria + + Address address + } + } + + <** + @description : AddressValidationResult = This signal notifies the validation result of a former ValidateAddress call + **> + broadcast AddressValidationResult { + out { + + <** + @description : locationInpuHandle = Location input handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle locationInpuHandle + + Address [] validatedAddressList + + ValidationStatus [] validationStatusList + } + } + + + + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/LocationInputTypes.fidl b/api/franca/navigation/navigationcore/LocationInputTypes.fidl new file mode 100755 index 0000000..3816b6e --- /dev/null +++ b/api/franca/navigation/navigationcore/LocationInputTypes.fidl @@ -0,0 +1,58 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.navigationcore +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" + +typeCollection LocationInputTypes { + + enumeration AddressAttribute extends BasicEnum { + LATITUDE = "0x00a0" + LONGITUDE = "0x00a1" + ALTITUDE = "0x00a2" + FULL_ADDRESS = "0x00b2" + COUNTRY = "0x00a6" + STATE = "0x00a7" + CITY = "0x00a8" + ZIPCODE = "0x00a9" + STREET = "0x00aa" + HOUSENUMBER = "0x00ab" + CROSSING = "0x00ac" + DISTRICT = "0x00ad" + PHONENUMBER = "0x00ae" + POINAME = "0x00af" + TOWNCENTER = "0x00b0" + } + + enumeration ValidationType extends BasicEnum { + OK = "0x00d0" + UNKNOWN = "0x00d1" + AMBIGUOUS = "0x00d2" + INCONSISTENT = "0x00d3" + } + + enumeration SearchStatus extends BasicEnum { + SEARCHING = "0x00c1" + FINISHED = "0x00c2" + } + + array AddressAttributeList of AddressAttribute + + union AddressValue { + + } + + map Address { + AddressAttribute to AddressValue + } + + map ValidationStatus { + AddressAttribute to ValidationType + } + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/MapMatchedPosition.fidl b/api/franca/navigation/navigationcore/MapMatchedPosition.fidl new file mode 100755 index 0000000..3732ded --- /dev/null +++ b/api/franca/navigation/navigationcore/MapMatchedPosition.fidl @@ -0,0 +1,291 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" +import org.genivi.navigation.navigationcore.MapMatchedPositionTypes.* from "MapMatchedPositionTypes.fidl" + +<** + @description : MapMatchedPosition = This interface offers functions to retrieve the map matched position and to simulate positioning +**> + +interface org.genivi.navigationcore.MapMatchedPosition { + version { + major 0 + minor 0 + } + + <** + @description : GetVersion = This method returns the API version implemented by the server application + **> + method GetVersion { + out { + Version ^version + } + } + + <** + @description : SetSimulationMode = This method activates or deactivates the simulation mode + **> + method SetSimulationMode { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : activate = flag. TRUE means that the simulation mode is activated. + **> + Boolean activate + } + } + + <** + @description : GetSimulationStatus = This method retrieves the simulation status + **> + method GetSimulationStatus { + out { + + <** + @description : simulationStatus = enum(SIMULATION_STATUS_NO_SIMULATION, SIMULATION_STATUS_RUNNING, SIMULATION_STATUS_PAUSED, SIMULATION_STATUS_FIXED_POSITION) + **> + SimulationStatus simulationStatus + } + } + + <** + @description : AddSimulationStatusListener = Add this node as a listener to Simulation Status changes. + **> + method AddSimulationStatusListener { + } + + <** + @description : RemoveSimulationStatusListener = Remove this node as a listener to Simulation Status changes. + **> + method RemoveSimulationStatusListener { + } + + <** + @description : SetSimulationSpeed = This method sets the speed factor for the simulation mode + **> + method SetSimulationSpeed { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : speedFactor = speed factor + **> + Int8 speedFactor + } + } + + <** + @description : GetSimulationSpeed = returns the speed factor for the simulation mode + **> + method GetSimulationSpeed { + out { + + <** + @description : speedFactor = speed factor + **> + Int8 speedFactor + } + } + + <** + @description : AddSimulationSpeedListener = Add this node as a listener to simulation speed factor changes. + **> + method AddSimulationSpeedListener { + } + + <** + @description : RemoveSimulationSpeedListener = Remove this node as a listener to simulation speed factor changes. + **> + method RemoveSimulationSpeedListener { + } + + <** + @description : StartSimulation = This method starts, or resumes, a Follow Active Route simulation + **> + method StartSimulation { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + } + } + + <** + @description : PauseSimulation = This method freezes the current location + **> + method PauseSimulation { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + } + } + + <** + @description : GetPosition = This method returns the current position + **> + method GetPosition { + in { + PositionItemKey[] valuesToReturn + } + out { + PositionItemDict position + } + } + + <** + @description : SetPosition = This method sets the position to a specific location + **> + method SetPosition { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + PositionItemDict position + } + } + + <** + @description : GetAddress = This method returns the current address + **> + method GetAddress { + in { + AddressItemKey[] valuesToReturn + } + out { + AddressItemDict address + } + } + + <** + @description : positionOnSegment = This method returns the vehicle position on a route segment + **> + method GetPositionOnSegment { + in { + PositionOnSegmentKey [] valuesToReturn + } + out { + PositionOnSegmentDict positionOnSegment + } + } + + <** + @description : GetStatus = This method returns the current status + **> + method GetStatus { + in { + PositionStatus [] valuesToReturn + } + out { + PositionStatusDict status + } + } + + <** + @description : SimulationStatusChanged = This signal is emitted when the Simulation Status has changed + **> + broadcast SimulationStatusChanged { + out { + + <** + @description : simulationStatus = enum(SIMULATION_STATUS_NO_SIMULATION, SIMULATION_STATUS_RUNNING, SIMULATION_STATUS_PAUSED, SIMULATION_STATUS_FIXED_POSITION) + **> + SimulationStatus simulationStatus + } + } + + <** + @description : SimulationSpeedChanged = This signal is emitted when the simulation speed factor has changed + **> + broadcast SimulationSpeedChanged { + out { + + <** + @description : speedFactor = speed factor + **> + Int8 speedFactor + } + } + + <** + @description : PositionUpdate = This signal is called to notify a client application of a position change. The update frequency is implementation specific. The maximal allowed frequency is 10Hz + **> + broadcast PositionUpdate { + out { + PositionItemKey [] changedValues + } + } + + <** + @description : AddressUpdate = This signal is called to notify a client application that the current address changed + **> + broadcast AddressUpdate { + out { + AddressItemKey[] changedValues + } + } + + <** + @description : PositionOnSegmentUpdate = This signal is called to notify the client that the vehicle position on the route segment changed + **> + broadcast PositionOnSegmentUpdate { + out { + PositionOnSegmentKey[] changedValues + } + } + + <** + @description : StatusUpdate = This signal is emitted to notifiy a client application that the current status changed + **> + broadcast StatusUpdate { + out { + PositionStatus [] changedValues + } + } + + <** + @description : OffroadPositionChanged = This signal is emitted when the heading and the distance to the closest point on the road network changes + **> + broadcast OffRoadPositionChanged { + out { + + <** + @description : distance = distance in meters to the closest point on the road network + **> + UInt32 distance + + <** + @description : direction = direction in degrees relatively to the closest point on the road network. Range [0:360] + **> + Int32 direction + } + } + + + + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/MapMatchedPositionTypes.fidl b/api/franca/navigation/navigationcore/MapMatchedPositionTypes.fidl new file mode 100755 index 0000000..678767f --- /dev/null +++ b/api/franca/navigation/navigationcore/MapMatchedPositionTypes.fidl @@ -0,0 +1,124 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" + +typeCollection MapMatchedPositionTypes { + + enumeration SimulationStatus extends BasicEnum { + SIMULATION_STATUS_NO_SIMULATION = "0x0220" + SIMULATION_STATUS_RUNNING = "0x0221" + SIMULATION_STATUS_PAUSED = "0x0222" + SIMULATION_STATUS_FIXED_POSITION = "0x0223" + } + + enumeration PositionStatus extends BasicEnum { + TIMESTAMP = "0x0010" + GNSS_FIX_STATUS = "0x00e0" + DR_STATUS = "0x00e1" + MM_STATUS = "0x00e2" + SIMULATION_MODE = "0x00e3" + } + + enumeration PositionItemKey extends PositionStatus { + LATITUDE = "0x00a0" + LONGITUDE = "0x00a1" + ALTITUDE = "0x00a2" + HEADING = "0x00a3" + SPEED = "0x00a4" + CLIMB = "0x00a5" + } + + enumeration GnnsFixStatus extends BasicEnum { + NO_FIX = "0x0100" + TIME_FIX = "0x0101" + FIX_2D = "0x0102" + FIX_3D = "0x0103" + } + + enumeration MatchMode { + INVALID = "0x00f0" + ON_ROAD = "0x00f1" + OFF_ROAD = "0x00f2" + ON_FERRY = "0x00f3" + IN_TUNNEL = "0x00f4" + ON_CARPARK = "0x00f5" + } + + union PositionItemValue { + Timestamp timestamp + Boolean status + GnnsFixStatus fix + Double doubleValue + Int32 intValue + } + + map PositionItemDict { + PositionItemKey to PositionItemValue + } + + enumeration AddressItemKey extends BasicEnum { + TIMESTAMP = "0x0010" + COUNTRY = "0x00a6" + COUNTRYCODE = "0x00b3" + STATE = "0x00a7" + CITY = "0x00a8" + STREET = "0x00aa" + ROAD_NUMBER = "0x014e" + HOUSENUMBER = "0x00ab" + HOUSENAME = "0x00b4" + CROSSING = "0x00ac" + DISTRICT = "0x00ad" + TIMEZONE_OFFSET = "0x0011" + DAYLIGHT_OFFSET = "0x0012" + MATCH_TYPE = "0x00f0" + } + + union AddressItemValue { + String addressField + Int16 offset + Timestamp timestamp + MatchMode matchMode + } + + map AddressItemDict { + AddressItemKey to AddressItemValue + } + + enumeration PositionOnSegmentKey extends BasicEnum { + TIMESTAMP = "0x0010" + SEGMENT_ID = "0x0110" + DIRECTION_ON_SEGMENT = "0x0112" + DISTANCE_ON_SEGMENT = "0x0113" + } + + union PositionOnSegmentValue { + Boolean directionOnSegment + Distance distanceOnSegment + LinkId segment + Timestamp timestamp + } + + map PositionOnSegmentDict { + PositionOnSegmentKey to PositionOnSegmentValue + } + + union PositionStatusValue { + Boolean statusValue + GnnsFixStatus fixStatus + Timestamp timestanp + } + + map PositionStatusDict { + PositionStatus to PositionStatusValue + } + + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/Routing.fidl b/api/franca/navigation/navigationcore/Routing.fidl new file mode 100755 index 0000000..18913dd --- /dev/null +++ b/api/franca/navigation/navigationcore/Routing.fidl @@ -0,0 +1,615 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.navigationcore.RoutingTypes.* from "RoutingTypes.fidl" +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" + + +<** + @description : This interface offers functions that implement the routing functionality of a navigation system +**> + +interface org.genivi.navigationcore.Routing { + version { + major 0 + minor 0 + } + + <** + @description : This method returns the API version implemented by the server application + **> + method GetVersion { + out { + Version ^version + } + } + + <** + @description : This method creates a route + **> + method CreateRoute { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + } + out { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : This method deletes a route and its associated resources + **> + method DeleteRoute { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : This method sets the cost model + **> + method SetCostModel { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + <** + @description : enum(INVALID,FASTEST,SHORTEST,ECOLOGICAL,SCENIC,EASY,OFF_ROAD,BALANCED,CHEAPEST, ... ) + **> + CostModel costModel + } + } + + <** + @description : This method retrieves the selected cost model + **> + method GetCostModel { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + out { + + <** + @description : enum(INVALID,FASTEST,SHORTEST,ECOLOGICAL,SCENIC,EASY,OFF_ROAD,BALANCED,CHEAPEST, ... ) + **> + CostModel costModel + } + } + + <** + @description : This method retrieves a list of supported cost models + **> + method GetSupportedCostModels { + out { + CostModel [] costModelsList + } + } + + <** + @description : This method sets a list of route preferences + **> + method SetRoutePreferences { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + <** + @description : ISO 3166-1 alpha 3 country code (upper case) + **> + String countryCode + + RoutePreference[] roadPreferenceList + + ConiditionPreference[] conditionPreferenceList + } + } + + <** + @description : This method retrieves a list of selected route preferences + **> + method GetRoutePreferences { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + <** + @description : ISO 3166-1 alpha 3 country code (upper case) + **> + String countryCode + } + out { + RoutePreference[] roadPreferenceList + ConiditionPreference[] conditionPreferenceList + } + } + + <** + @description : This method retrieves a list of supported route preferences + **> + method GetSupportedRoutePreferences { + out { + RoutePreference[] routePreferencesList + ConiditionPreference[] conditionPreferenceList + } + } + + <** + @description : This method sets the time schedule for the route to be calculated + **> + method SetRouteSchedule { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + RouteSchedule routeSchedule + } + } + + <** + @description : This method gets the time schedule for the route to be calculated + **> + method GetRouteSchedule { + in { + + <** + @description : Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + Schedule[] valuesToReturn + } + out { + + RouteSchedule routeSchedule + } + } + + <** + @description : This method sets a list of means of transportation that must be considered when calculating a route + **> + method SetTransportationMeans { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + TransportationMeans[] transportationMeansList + } + } + + <** + @description : GetTransportationMeans = This method retrieves the selected means of transportation + **> + method GetTransportationMeans { + in { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + out { + TransportationMeans[] transportationMeansList + } + } + + <** + @description : GetSupportedTransportationMeans = This method retrieves a list of supported means of transportation + **> + method GetSupportedTransportationMeans { + out { + TransportationMeans[] transportationMeansList + } + } + + <** + @description : SetExcludedAreas = This method sets the areas to be excluded when calculating a route + **> + method SetExcludedAreas { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + Area[] excludedAreas + } + } + + <** + @description : GetExcludedAreas = This method retrieves the areas to be excluded when calculating a route + **> + method GetExcludedAreas { + in { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + out { + Area[] excludedAreas + } + } + + <** + @description : SetWaypoints = This method sets a list of waypoints + **> + method SetWaypoints { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + <** + @description : startFromCurrentPosition = flag indicating if the current position is used as starting point + **> + Boolean startFromCurrentPosition + + WayPoint[] waypointsList + } + } + + <** + @description : GetWaypoints = This method retrieves a list of waypoints + **> + method GetWaypoints { + in { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + out { + + <** + @description : startFromCurrentPosition = flag indicating if the current position is used as starting point + **> + Boolean startFromCurrentPosition + + WayPoint[] waypointsList + } + } + + <** + @description : CalculateRoute = This method starts a route calculation + **> + method CalculateRoute { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : CancelRouteCalculation = This method cancels a route calculation + **> + method CancelRouteCalculation { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : CalculateRoutes = This method allows a client to calculate alternative routes that differs from a list of already calculated routes + **> + method CalculateRoutes { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + Handle[] calculatedRoutesList + } + out { + Handle[] alternativeRoutesList + } + } + + <** + @description : GetRouteSegments = This method retrieves a list of segments for a given route starting from the one closest to the current position to the one closest to the destination + **> + method GetRouteSegments { + in { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + <** + @description : detailLevel = detail level + **> + Int16 detailLevel + + RouteSegmentType [] valuesToReturn + + <** + @description : numberOfSegments = number of segments to be retrieved + **> + UInt32 numberOfSegments + + <** + @description : offset = offset from the beginning of the list + **> + UInt32 offset + } + out { + + <** + @description : totalNumberOfSegments = total number of segments + **> + UInt32 totalNumberOfSegments + + RouteSegment[] routeSegments + } + } + + <** + @description : GetRouteOverview = This method retrieves general information about a given route + **> + method GetRouteOverview { + in { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + RouteOverviewType [] valuesToReturn + } + out { + RouteOverview routeOverview + } + } + + <** + @description : GetRouteBoundingBox = This method retrieves the bounding box containing a calculated route + **> + method GetRouteBoundingBox { + in { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + out { + Rectangle boundingBox + } + } + + <** + @description : GetAllRoutes = This method retrieves the handles of all created routes + **> + method GetAllRoutes { + out { + Handle [] routesList + } + } + + <** + @description : SetBlockedRouteStretches = This method sets blocked streches on a given route + **> + method SetBlockedRouteStretches { + in { + + <** + @description : sessionHandle = Session handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle sessionHandle + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + BlockedRouteElement[] blockParameters + } + } + + <** + @description : GetBlockedRouteStretches = This method retrieves all blocked streches on a given route + **> + method GetBlockedRouteStretches { + in { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + out { + BlockedRouteElement [] blockParameters + } + } + + <** + @description : RouteDeleted = This signal is emitted to inform clients that the current route has been deleted + **> + broadcast RouteDeleted { + out { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : RouteCalculationCancelled = This signal informs a client that a route calculation was cancelled + **> + broadcast RouteCalculationCancelled { + out { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + } + } + + <** + @description : RouteCalculationSuccessful = This signal informs a client that a route calculation was successful + **> + broadcast RouteCalculationSuccessful { + out { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + RoutePreference unfullfilledPreferences + } + } + + <** + @description : RouteCalculationFailed = This signal informs a client that a route calculation failed + **> + broadcast RouteCalculationFailed { + out { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle Handle + + <** + @description : errorCode = enum(INVALID,UNMATCHED_POSITION,UNREACHABLE_DESTINATION,UNFULFILLED_PREFERENCE_MODE, ... ) + **> + CalculationError errorCode + + RoutePreference unfullfilledPreferences + } + } + + <** + @description : RouteCalculationProgressUpdate = This signal informs a client about a route calculation progress + **> + broadcast RouteCalculationProgressUpdate { + out { + + <** + @description : routeHandle = Route handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value + **> + Handle routeHandle + + <** + @description : status = enum(INVALID,CALCULATION_OK,NO_POSITION, ... ) + **> + CalculationStatus status + + <** + @description : percentage = progress status. Range [0:100] + **> + Int8 percentage + } + } + + <** + @description : AlternativeRoutesAvailable = This signal is emitted when alternative routes have been computed in the background and are available for guidance. + **> + broadcast AlternativeRoutesAvailable { + out { + Handle[] routeHandlesList + } + } + + +} \ No newline at end of file diff --git a/api/franca/navigation/navigationcore/RoutingTypes.fidl b/api/franca/navigation/navigationcore/RoutingTypes.fidl new file mode 100755 index 0000000..a60dbee --- /dev/null +++ b/api/franca/navigation/navigationcore/RoutingTypes.fidl @@ -0,0 +1,183 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.navigationcore + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" + +typeCollection RoutingTypes { + + enumeration CostModel extends BasicEnum { + FASTEST = "0x0160" + SHORTEST = "0x0161" + ECOLOGICAL = "0x0162" + SCENIC = "0x0163" + EASY = "0x0164" + OFF_ROAD = "0x0165" + BALANCED = "0x0166" + CHEAPEST = "0x0167" + } + + + enumeration PreferenceMode extends BasicEnum { + PROHIBIT = "0x0190" + AVOID = "0x0191" + USE = "0x0192" + PREFER = "0x0193" + IGNORE = "0x0194" + } + + enumeration RoutePreferenceSource extends BasicEnum { + FERRY = "0x0170" + TOLL_ROADS = "0x0171" + TUNNELS = "0x0172" + HIGHWAYS_MOTORWAYS = "0x0173" + VEHICLE_SIZE_LIMIT = "0x0174" + CRIME_AREAS = "0x0175" + } + + enumeration ConditionPreferenceSource extends BasicEnum { + TRAFFIC_REALTIME = "0x0200" + } + + + enumeration Schedule extends BasicEnum { + ARRIVAL_TIME = "0x018a" + ARRIVAL_DATE = "0x018b" + DEPARTURE_TIME = "0x018c" + DEPARTURE_DATE = "0x018d" + } + + enumeration TransportationMeans extends BasicEnum { + BY_CAR = "0x0180" + ON_FOOT = "0x0181" + LONG_RANGE_TRAINS = "0x0182" + PUBLIC_TRANSPORTATION = "0x0183" + BY_BICYCLE = "0x0184" + BY_TRUCK = "0x0185" + } + + enumeration CalculationStatus extends BasicEnum { + CALCULATION_OK = "0x0130" + NO_POSITION = "0x0131" + } + + enumeration CalculationError extends BasicEnum { + UNREACHABLE_DESTINATION = "0x0133" + UNFULFILLED_PREFERENCE_MODE = "0x0134" + } + + <** + @description : struct generated for DBus argument SetRoutePreferences_roadPreferenceList + **> + struct RoutePreference { + PreferenceMode mode + RoutePreferenceSource source + } + + <** + @description : struct generated for DBus argument SetRoutePreferences_conditionPreferenceList + **> + struct ConiditionPreference { + PreferenceMode mode + ConditionPreferenceSource source + } + + + map RouteSchedule { + Schedule to UInt32 + } + + + enumeration WapointElementType extends BasicEnum { + WAYPOINT_TYPE = "0x0121" + LOCATION_INPUT = "0x00b1" + LATITUDE = "0x00a0" + LONGITUDE = "0x00a1" + ALTITUDE = "0x00a2" + } + + enumeration RouteSegmentType extends BasicEnum { + LINK_ID = "0x0140" + INTERMEDIATE_POINTS = "0x0120" + START_LATITUDE = "0x0141" + START_LONGITUDE = "0x0143" + START_ALTITUDE = "0x0145" + END_LATITUDE = "0x0142" + END_LONGITUDE = "0x0144" + END_ALTITUDE = "0x0146" + ROAD_NAME = "0x0147" + ROAD_NUMBER = "0x014e" + DISTANCE = "0x0148" + TIME = "0x0149" + MANEUVER = "0x014a" + INSTRUCTION = "0x014b" + BORDER_CROSSING = "0x014c" + ADDITIONAL_INFORMATION = "0x014d" + HIGHWAY_EXIT = "0x0074" + ALL = "0xffff" + } + + enumeration IntermediatePointType { + HARD_POINT + SOFT_POINT + } + + enumeration RouteOverviewType extends Schedule { + TOTAL_DISTANCE = "0x018f" + TOTAL_TIME = "0x018e" + } + + union RouteOverviewItem { + UInt32 uValue + } + + struct IntermediatePoint extends Coordinate2D { + IntermediatePointType type + } + + //TODO: Incomplete + union RouteSegmentItem { + Double doubleValue // LATITUDE, LONGITUDE, ALTITUDE + IntermediatePoint intermediatePoints + String stringValue // ROAD_NUMBER + ByteBuffer linkId + Int32 int32Value + Int16 int16Value + UInt32 uInt32Value + } + + union WayPointItem { + Double coordinateValue + Int32 altitudeValue + IntermediatePointType wayPointValue + ByteBuffer metaData + } + + map WayPoint { + WapointElementType to WayPointItem + } + + map RouteSegment { + RouteSegmentType to RouteSegmentItem + } + + map RouteOverview { + RouteOverviewType to RouteOverviewItem + } + + <** + @description : struct generated for DBus argument SetBlockedRouteStretches_blockParameters + **> + struct BlockedRouteElement { + UInt32 offset + UInt32 length + } + + +} \ No newline at end of file diff --git a/api/franca/navigation/poiservice/ContentAccessModule.fidl b/api/franca/navigation/poiservice/ContentAccessModule.fidl new file mode 100755 index 0000000..bca32ff --- /dev/null +++ b/api/franca/navigation/poiservice/ContentAccessModule.fidl @@ -0,0 +1,105 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.poiservice + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" +import org.genivi.navigation.poiservice.POIServiceTypes.* from "POIServiceTypes.fidl" + + +<** @description : This interface offers methods that implement the POI search functionality of a navigation system.**> +interface POIContentAccessModule { + version { + major 1 + minor 0 + } + + <** @description : This method returns the API version implemented by the content access module.**> + method GetVersion { + out { + <** @description: .**> + Version ^version + } + } + + <** @description : Set the current language set for the search by poi provider module. + The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.**> + method SetLanguage { + in { + <** @description : The language to be used.**> + String languageCode + <** @description : The country specific variant for the language to be used.**> + String countryCode + } + } + + <** @description : This method is sent by the POI service component to inform all the CAM that a new POI search was started. + It provides all the relevant search parameters. Of course the CAM will only be aware of the search if it registers one of the search categories.**> + method PoiSearchStarted { + in { + <** @description : poi search unique handle. It must be used by the CAM to send the list of results to the component.**> + UInt8 poiSearchHandle + <** @description : max size of the results list.**> + UInt16 maxSize + <** @description: struct(lat,lon,alt).**> + Coordinate3D location + <** @description: array[struct(id,radius)].**> + categoryRadius_t[] poiCategories + <** @description : array[struct(name, poiCategory, type, value, operator, mandatory)].**> + attributeDetails_t[] poiAttributes + <** @description : contains the name of the poi that is searched. It could be a partial name or an empty string.**> + String inputString + <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... ) + If more than one category was defined for this search, the sort criteria should be compliant with all categories.**> + UInt16 sortOption + } + } + + <** @description : This method cancels the search for the current id.**> + method PoiSearchCanceled { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + } + } + + <** @description : This method provides the poi results list found by the CAM. + As the POI unique id is managed by the POI component, the CAM only provides the POI name, the category and coordinates as well as all the relevant detailed information.**> + method ResultListRequested { + in { + <** @description : Content access module unique id as known by the POI service component.**> + UInt8 camId + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : List of attributes name to retrieve. This is optional and the list could be empty.**> + String[] attributes + } + out { + <** @description : enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ).**> + UInt16 statusValue + <** @description : Number of items of the results list.**> + UInt16 resultListSize + <** @description : array[struct(source_id, name, category, location, distance, attributes)].**> + poiCAMDetails_t[] resultList + } + } + + <** @description : This method retrieves the details associated to one or more POI. + It contains the name, the parent categories, the list of attributes, the icons, ... .**> + method PoiDetailsRequested { + in { + <** @description : array[unique_poi_id].**> + UInt32[] source_id + } + out { + <** @description : array[(details, categories, attributes)] .**> + searchResultDetails_t[] results + } + } + + } \ No newline at end of file diff --git a/api/franca/navigation/poiservice/POISearch.fidl b/api/franca/navigation/poiservice/POISearch.fidl new file mode 100755 index 0000000..66fc351 --- /dev/null +++ b/api/franca/navigation/poiservice/POISearch.fidl @@ -0,0 +1,291 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.poiservice + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" +import org.genivi.navigation.poiservice.POIServiceTypes.* from "POIServiceTypes.fidl" + + +<** @description : This interface offers methods that implement the POI search functionality of a navigation system.**> +interface POISearch { + version { + major 1 + minor 0 + } + <** @description : This method returns the API version implemented by the content access module.**> + method GetVersion { + out { + <** @description: .**> + Version ^version + } + } + + <** @description : Get the current language set for the search. + The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language. **> + method GetLanguage { + out { + <** @description : The language.**> + String languageCode + <** @description : The country specific variant for the language.**> + String countryCode + } + } + + <** @description : Set the language. + The language defines the poi and categories name and details language. If the language is not supported, the default details will be returned in the native language.**> + method SetLanguage { + in { + <** @description : The language to be used.**> + String languageCode + <** @description : The country specific variant for the language to be used.**> + String countryCode + } + } + + <** @description : This method allows the application to validate that POI categories are supported by the POI component and the Content access modules.**> + method ValidateCategories { + in { + <** @description : list of categories enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...) + Note: A POI category is a unique ID. It could be a predifined category or a custom one defined by a POI plug-in.**> + UInt16[] categories + } + out { + <** @description : List of status for all the POI categories.**> + poiCategoryAndStatus_t[] results + } + } + + <** @description : This method retrieves the list od POI categories available (pre-defined and custom).**> + method GetAvailableCategories { + out { + <** @description : List of categories (id, name and top_level).**> + poiCategoryAndName_t[] categories + } + } + + <** @description : Get the root category id. That would be ALL_CATEGORIES.**> + method GetRootCategory { + out { + <** @description : The root category is a top level one by design.**> + UInt16 category + } + } + + <** @description : Get the children categories id and type (top level) from the a parent unique id.**> + method GetChildrenCategories { + in { + <** @description : unique category id.**> + UInt16 category + } + out { + <** @description : List of categories (id and top_level).**> + poiCategoryAndLevel_t[] categories + } + } + + <** @description : Get the parent categories id and type (top level) from the a unique id.**> + method GetParentCategories { + in { + <** @description : unique category id.**> + UInt16 category + } + out { + <** @description : List of categories (id and top_level).**> + poiCategoryAndLevel_t[] categories + } + } + + <** @description : GetCategoriesDetails = This method retrieves the details associated to one or more POI categories. + It contains the name, the parent categories, the top level attribute, the list of attributes, the icons, ... .**> + method GetCategoriesDetails { + in { + <** @description : list of categories enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...) + Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in. **> + UInt16[] categories + } + out { + <** @description : List of details for all the POI categories.**> + category_t[] results + } + } + + <** @description : This method creates a new search input and retrieves a handle .**> + method CreatePoiSearchHandle { + out { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + } + } + + <** @description : This method deletes a search input and its associated resources.**> + method DeletePoiSearchHandle { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + } + } + + <** @description : This method sets the location to start the search around. + If a route handle was defined before, it will be replaced by this location.**> + method SetCenter { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : location of the center.**> + Coordinate3D location + } + } + + <** @description : This method allows to start a POI search along a guided route. + The route handle must be valid or the POI search will failed. + If a search location was defined before, it will be replaced by the route.**> + method SetRouteHandle { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : session handle.**> + UInt8 sessionHandle + <** @description : route handle.**> + UInt8 routeHandle + <** @description : (optional) Distance from vehicle (in meters) from where to start the search along. 0 or invalid distance means start from vehicle.**> + UInt16 startSearchOffset + <** @description : (optional) Length of the route (in meters) from where to start the search along. 0 or invalid lenght means end is the destination.**> + UInt16 endSearchOffset + } + } + + <** @description : This method sets the POI categories for the current search input and the corresponding result-lists for the current session .**> + method SetCategories { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description: array[struct(id,radius)].**> + categoryRadius_t[] poiCategories + } + } + <** @description : This method set POI attributes (optional) for the current search input and the corresponding result-lists for the current session + An attribute is attached to a category.**> + method SetAttributes { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : array[struct(name, poiCategory, type, value, operator, mandatory)].**> + attributeDetails_t[] poiAttributes + } + } + + <** @description : This method sends the search input for the search handle. + The search will start with the either the location or the route handle. + If no positon or route handle were configured, the search will use the vehicle position are center location.**> + method StartPoiSearch { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : contains the name of the poi that is searched. It could be a partial name or an empty string.**> + String inputString + <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... ) + If more than one category was defined for this search, the sort criteria should be compliant with all categories.**> + UInt16 sortOption + } + } + + <** @description : This method cancels the search for the current session.**> + method CancelPoiSearch { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + } + } + + <** @description : This method starts to check for POI aound vehicle according to the criteria defined with the unique handle. + By default, it will search for POI around vehicle position with default radius defined for each categories. + If a route handle was defined, it will search along the route with default categorie's radius.**> + method StartPoiProximityAlert { + in { + <** @description : poi alert unique handle.**> + UInt8 poiSearchHandle + <** @description : contains the name of the poi that is searched. It could be a partial name or an empty string.**> + String inputString + <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... ) + If more than one category was defined for this search, the sort criteria should be compliant with all categories.**> + UInt16 sortOption + } + } + + <** @description : This method cancels the search for the current session.**> + method CancelPoiProximityAlert { + in { + <** @description : poi alert unique handle.**> + UInt8 poiSearchHandle + } + } + + <** @description : This method gets the poi result list (e.g. after a Search/Scroll call) .**> + method RequestResultList { + in { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : starting offset of the newly requested list elements. If invalid (more that total list for instance) it starts from the begining.**> + UInt16 offset + <** @description : maximum number of elements that should be returned as result.**> + UInt16 maxWindowSize + <** @description : List of attributes name to retrieve. This is optional and the list could be empty.**> + String[] attributes + } + out { + <** @description : enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ).**> + UInt16 statusValue + <** @description : Number of items of the results list.**> + UInt16 resultListSize + <** @description : array[unique_id, distance, route_status, attributes].**> + searchResult_t[] resultListWindow + } + } + + <** @description : This method retrieves the details associated to one or more POI. + It contains the name, the parent categories, the list of attributes, the icons, ... ..**> + method GetPoiDetails { + in { + <** @description : list of poi.**> + UInt32[] id + } + out { + <** @description : array[details, categories, attributes].**> + searchResultDetails_t[] results + } + } + + <** @description : This signal indicates that one or more POI categories were added, updated or removed.**> + broadcast CategoriesUpdated { + out { + <** @description : List of POI categories modified or added.**> + poiCategoryAndReason_t[] poiCategories + } + } + + <** @description : This signal updates the search or proximity alert status of the specified handle.**> + broadcast PoiStatus { + out { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : enum(INVALID,NOT_STARTED,SEARCHING,FINISHED, ... ).**> + UInt16 statusValue + } + } + + <** @description : This signal updates in the poi results list.**> + broadcast ResultListChanged { + out { + <** @description : poi search unique handle.**> + UInt8 poiSearchHandle + <** @description : Number of items of the results list.**> + UInt16 resultListSize + } + } +} \ No newline at end of file diff --git a/api/franca/navigation/poiservice/POIServiceTypes.fidl b/api/franca/navigation/poiservice/POIServiceTypes.fidl new file mode 100755 index 0000000..d24e0d3 --- /dev/null +++ b/api/franca/navigation/poiservice/POIServiceTypes.fidl @@ -0,0 +1,272 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.poiservice + +import org.genivi.navigation.NavigationTypes.* from "../NavigationTypes.fidl" + +typeCollection POIServiceTypes { + version { + major 0 + minor 1 + } + + <** @description: TODO replace this workaround as soon as possible!!**> + union variant_t { + + } + + + <** @description:**> + struct details_t { + <** @description : list of parent categories unique id.**> + UInt16[] parents_id + <** @description : visual icons set.**> + variant_t icons + <** @description : name.**> + String name + <** @description : short category description (optional).**> + String short_desc + <** @description : media associated (html web site, audio, video, ...) (optional).**> + variant_t media + } + + <** @description:**> + struct operator_t { + <** @description : enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....).**> + UInt16 operator_id + <** @description : attribute operator name.**> + String operator_name + } + + + <** @description:**> + struct categoryAttribute_t { + <** @description : attribute unique name.**> + String name + <** @description : enum(INVALID,STRING,INTEGER,COORDINATES ...).**> + UInt16 type + <** @description:**> + operator_t[] operators + } + + + <** @description:**> + struct categorySortOption_t { + <** @description : enum(SORT_DEFAULT,SORT_BY_DISTANCE,SORT_BY_TIME,ATTRIBUTE_CUSTOM, ... ).**> + UInt16 id + <** @description : name to be displayed by application.**> + String name + } + + + <** @description:**> + struct CAMCategory_t { + <** @description : struct(list of parents_id, icons, name, short_desc, media).**> + details_t details + <** @description : array[struct(name, type, array[struct(operator_id, operator_name)])].**> + categoryAttribute_t[] attributes + <** @description : array[struct(id, name)].**> + categorySortOption_t[] sortOptions + } + + + <** @description:**> + struct CAMCategoryUpdate_t { + <** @description : enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...). Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in **> + UInt16 id + <** @description : array[struct(name, type, array[struct(operator_id, operator_name)])].**> + categoryAttribute_t[] attributes + <** @description : array[struct(id, name)].**> + categorySortOption_t[] sortOptions + } + + + + <** @description:**> + struct poiAttribute_t + { + <** @description:attribute unique name (see data model)**> + String name + <** @description:enum(INVALID,STRING,INTEGER,COORDINATES ...)**> + UInt16 type + <** @description:The value depends on the attribute specifications and type**> + variant_t value + } + + + + <** @description:**> + struct categoryRadius_t + { + <** @description : enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...). Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in **> + UInt16 id + <** @description : activation or search radius around the position (in 10 meters) for the category. If value is 0 (zero), the default radius (defined for a category) is applied.**> + UInt32 radius + } + + + <** @description:**> + struct poiDetails_t + { + <** @description:POI id**> + UInt32 id + <** @description:POI name**> + String name + <** @description:latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250**> + Double latitude + <** @description:longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250**> + Double longitude + <** @description:altitude above the sea level of the current position in meters**> + Int32 altitude + } + + + <** @description:**> + struct searchResultDetails_t + { + <** @description: struct(id,name,latitude,longitude,altitude).**> + poiDetails_t details + <** @description: array[unique_id].**> + UInt16[] categories + <** @description: array[struct(name,type,value)].**> + poiAttribute_t[] attributes + } + + <** @description:**> + struct searchResult_t + { + <** @description:POI id**> + UInt32 id + <** @description:distance in meters to poi from center of the search or from vehicle if search along**> + UInt32 distance + <** @description:enum(OFF_ROUTE,ON_ROUTE,INSIDE_CORRIDOR, ... )**> + UInt16 route_status + <** @description:List of attributes requested. It could be empty**> + poiAttribute_t[] attributes + } + + + <** @description:**> + struct poiCAMDetails_t + { + <** @description:POI unique id as known by the content access module. This id will be used by POI service to request POI details.**> + UInt32 source_id + <** @description:POI name.**> + String name + <** @description:POI category unique id.**> + UInt16 category + <** @description:POI location.**> + Coordinate3D location + <** @description:distance in meters to poi from center of the search.**> + UInt16 distance + <** @description:List of attributes requested. It could be empty.**> + poiAttribute_t[] attributes + } + + + <** @description:**> + struct attributeDetails_t + { + <** @description : attribute unique name (see data model).**> + String name + <** @description : enum(INVALID,ALL_CATEGORIES,AIRPORT,RESTAURANT,HOTEL,GAZ_STATION,CAR_PARK, ...). Note: A POI category is a unique ID. It could be a predefined category or a custom one defined by a POI plug-in **> + UInt16 poiCategory + <** @description : enum(INVALID,STRING,INTEGER,COORDINATES ...).**> + UInt16 type + <** @description : value or partial value. The value depends on the attribute specifications and type.**> + variant_t value + <** @description : enum(INVALID,MORE_THAN,LESS_THAN,EQUAL, ....).**> + UInt16 oper + <** @description : true if the attribute is mandatory for the search and false for optional.**> + Boolean mandatory + } + + <** @description:**> + struct categoryDetails_t + { + <** @description : Category unique id.**> + UInt16 unique_id + <** @description : list of parent categories unique id.**> + UInt16[] parents_id + <** @description : visual icons set.**> + variant_t icons + <** @description : name.**> + String name + <** @description : true if the category is a pre-defined one (top level), false for customized categories created by plug-in.**> + Boolean top_level + <** @description : short category description (optional).**> + String description + <** @description : media associated (html web site, audio, video, ...) (optional).**> + variant_t media + } + + <** @description:**> + struct category_t + { + <** @description : struct(unique_id, list of parents_id, icons, name, top_level, short_desc, media).**> + categoryDetails_t details + <** @description : array[struct(name, type, array[struct(operator_id, operator_name)].**> + categoryAttribute_t[] attributes + <** @description : array[struct(id, name)].**> + categorySortOption_t[] sortOptions + } + + <** @description:**> + struct poiCategoryAndLevel_t + { + <** @description : Category unique id.**> + UInt16 unique_id + <** @description : true if the category is a pre-defined one (top level), false for customized categories created by plug-in.**> + Boolean top_level + } + + <** @description:**> + struct poiCategoryAndName_t + { + <** @description : Category unique id.**> + UInt16 unique_id + <** @description : name.**> + String name + <** @description : true if the category is a pre-defined one (top level), false for customized categories created by plug-in.**> + Boolean top_level + } + + <** @description:**> + struct poiCategoryAndReason_t + { + <** @description : Category unique id.**> + UInt16 unique_id + <** @description : enum(ADDED,REMOVED,ATTR_ADDED,ATTR_MODIFIED,ATTR_REMOVED, ... ) .**> + UInt16 reason + } + <** @description:**> + struct poiCategoryAndStatus_t + { + <** @description : Category unique id.**> + UInt16 unique_id + <** @description : true if the category is available .**> + UInt16 status + } + + <** @description:**> + struct poiAddedDetails_t + { + <** @description:POI name**> + String name + <** @description:latitude of a vertex of the polygon in format %3.6f. Range [-90:+90]. Example: 48.053250**> + Double latitude + <** @description:longitude of a vertex of the polygon in format %3.6f. Range [-180:+180]. Example: 48.053250**> + Double longitude + <** @description:altitude above the sea level of the current position in meters**> + Int32 altitude + <** @description: array[struct(name,type,value)].**> + poiAttribute_t[] attributes + } + +} diff --git a/api/franca/navigation/poiservice/ServiceContentAccess.fidl b/api/franca/navigation/poiservice/ServiceContentAccess.fidl new file mode 100755 index 0000000..2797588 --- /dev/null +++ b/api/franca/navigation/poiservice/ServiceContentAccess.fidl @@ -0,0 +1,94 @@ +/* +SPDX-License-Identifier: MPL-2.0 +Copyright (C) 2014, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Continental Automotive GmbH, BMW Car IT GmbH, Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation, Elektrobit Automotive GmbH +This Source Code Form is subject to the terms of the +Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +this file, you can obtain one at http://mozilla.org/MPL/2.0/. +*/ + +package org.genivi.navigation.poiservice + +import org.genivi.navigation.poiservice.POIServiceTypes.* from "POIServiceTypes.fidl" + + +<** @description : This interface offers a set of common methods for Content Access Modules (CAM). The CAM provide and update POI and categories information from remote sources to the POIService modules.**> +interface POIContentAccess { + version { + major 1 + minor 0 + } + <** @description : Register to the POI provider module + When the CAM registers, it provides a name and then get a unique id. This id must be used everytime the CAM communicates with the POI service component. + After the registration is done, the CAM can start to update POI categories and POI attributes as well as registers POI categories to search for.**> + method RegisterContentAccessModule { + in { + <** @description : The name of the CAM.**> + String moduleName + } + + out { + <** @description : Content access module unique id as known by the POI service component.**> + UInt8 camId + } + + } + <** @description : Remove CAM from POI provider module.**> + method UnRegisterContentAccessModule { + in { + <** @description : Content access module unique id as known by the POI service component.**> + UInt8 camId + } + } + <** @description : Register to the POI provider module the categories you can search for POI. + The categories could be predifined one or customized ones. In order to register a customized category, you might need to create it before and add it to the POI service component.**> + method RegisterPoiCategories { + in { + <** @description : Content access module unique id as known by the POI service component.**> + UInt8 camId + <** @description : array[unique_id]. + List of POI categories to register. + unique_id = Unique category id. + **> + UInt16[] poiCategories + } + } + <** @description : Update categories in the POI service component. It could be a predifined or a customed one. + The CAM provides for each categories the list of attributes (mandatories like name or optional) it wants to update. + Depending on the local database write policy, the CAM might only be able to update customized attributes for a category and not the predefined ones so some update could be rejected.**> + method UpdateCategories { + in { + <** @description : Content access module unique id as known by the POI service component.**> + UInt8 camId + <** @description : array[unique_id, attributes, sortOptions].**> + CAMCategoryUpdate_t[] poiCategories + } + } + <** @description : Add new categories to the POI service component. + The CAM provides for each categories the name, the parent categories, the top level attribute, the list of attributes, the icons, ... .**> + method AddCategories { + in { + <** @description : Content access module unique id as known by the POI service component.**> + UInt8 camId + <** @description : List of details for all the POI categories.**> + CAMCategory_t[] poiCategories + } + out { + <** + @description : array of unique POI categories as registered by the POI service component. + Note: A POI category is a unique ID + **> + UInt16[] poiCategoriesId + } + } + <** @description : Remove categories from the POI service component. It could be a predifined or a customed one. + Depending on the local database write policy, the CAM might only not be able to remove some categories.**> + method RemoveCategories { + in { + <** @description : Content access module unique id as known by the POI service component.**> + UInt8 camId + <** @description : array[unique_id]. + List of POI categories to remove.**> + UInt16[] poiCategories + } + } +} \ No newline at end of file -- cgit v1.2.1