summaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
authorMarco Residori <marco.residori@xse.de>2014-05-21 15:53:40 +0200
committerMarco Residori <marco.residori@xse.de>2014-05-21 15:53:40 +0200
commit1a965e643cf77e4b69d321e81a301c9aced2bfd7 (patch)
tree66b759a057ffff9c7d42ec74fff07bf7294d5830 /api
parent063d25dbf44e6ae56d780736705b4f7df5da439c (diff)
downloadpoi-service-1a965e643cf77e4b69d321e81a301c9aced2bfd7.tar.gz
Add franca fidl files on behalf of Torsten Mosis (Elektrobit)
Diffstat (limited to 'api')
-rwxr-xr-xapi/franca/navigation/NavigationTypes.fidl52
-rwxr-xr-xapi/franca/navigation/mapviewer/MapViewerControl.fidl1456
-rwxr-xr-xapi/franca/navigation/mapviewer/MapViewerControlTypes.fidl175
-rwxr-xr-xapi/franca/navigation/navigationcore/Guidance.fidl377
-rwxr-xr-xapi/franca/navigation/navigationcore/GuidanceTypes.fidl161
-rwxr-xr-xapi/franca/navigation/navigationcore/LocationInput.fidl448
-rwxr-xr-xapi/franca/navigation/navigationcore/LocationInputTypes.fidl58
-rwxr-xr-xapi/franca/navigation/navigationcore/MapMatchedPosition.fidl291
-rwxr-xr-xapi/franca/navigation/navigationcore/MapMatchedPositionTypes.fidl124
-rwxr-xr-xapi/franca/navigation/navigationcore/Routing.fidl615
-rwxr-xr-xapi/franca/navigation/navigationcore/RoutingTypes.fidl183
-rwxr-xr-xapi/franca/navigation/poiservice/ContentAccessModule.fidl105
-rwxr-xr-xapi/franca/navigation/poiservice/POISearch.fidl291
-rwxr-xr-xapi/franca/navigation/poiservice/POIServiceTypes.fidl272
-rwxr-xr-xapi/franca/navigation/poiservice/ServiceContentAccess.fidl94
15 files changed, 4702 insertions, 0 deletions
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