summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author <philippe colliot>2014-05-26 18:23:05 +0200
committer <philippe colliot>2014-05-26 18:23:05 +0200
commitea97ccb1334a02dd4aea3e02151a8e764db62f07 (patch)
treeb7d43b70a3603bdaf5b39fc594465adc78ac5f2f
parentb7d33c478901058371a14a396ccf7f8853ad4e4e (diff)
downloadpoi-service-ea97ccb1334a02dd4aea3e02151a8e764db62f07.tar.gz
[navigation-api/navigation-poc] Alignment with the V3.0.0, POC update
-rwxr-xr-xapi/map-viewer/genivi-mapviewer-configuration.xml8
-rw-r--r--api/map-viewer/genivi-mapviewer-constants.xml9
-rwxr-xr-xapi/map-viewer/genivi-mapviewer-mapviewercontrol.xml231
-rwxr-xr-xapi/map-viewer/genivi-mapviewer-session.xml8
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-configuration.xml8
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-constants.xml39
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-guidance.xml36
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-locationinput.xml8
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-mapmatchedposition.xml8
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-routing.xml8
-rwxr-xr-xapi/navigation-core/genivi-navigationcore-session.xml8
-rw-r--r--src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx134
12 files changed, 360 insertions, 145 deletions
diff --git a/api/map-viewer/genivi-mapviewer-configuration.xml b/api/map-viewer/genivi-mapviewer-configuration.xml
index 6939312..dc73bae 100755
--- a/api/map-viewer/genivi-mapviewer-configuration.xml
+++ b/api/map-viewer/genivi-mapviewer-configuration.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/mapviewer" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.mapviewer.Configuration">
- <version>2.0.0 (07-06-2013)</version>
+ <version>3.0.0 (21-01-2014)</version>
<doc>
<line>Configuration = This interface offers functions to set and retrieve configuration parameters</line>
</doc>
diff --git a/api/map-viewer/genivi-mapviewer-constants.xml b/api/map-viewer/genivi-mapviewer-constants.xml
index cc4515e..2f6d8dd 100644
--- a/api/map-viewer/genivi-mapviewer-constants.xml
+++ b/api/map-viewer/genivi-mapviewer-constants.xml
@@ -1,13 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="constants.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
+
<constants name="MapViewer">
- <version>3.0.0-alpha (07-06-2013)</version>
+ <version>3.0.0 (21-01-2014)</version>
<doc>
<line>This document defines the constants used in the MapViewer APIs</line>
</doc>
diff --git a/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml b/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
index 5edfb92..6788710 100755
--- a/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
+++ b/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/mapviewer" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.mapviewer.MapViewerControl">
- <version>3.0.0-alpha (07-06-2013)</version>
+ <version>3.1.0-alpha (03-03-2014)</version>
<doc>
<line>MapViewerControl = This interface offers functions to control the MapViewer</line>
</doc>
@@ -187,6 +181,21 @@
</doc>
</arg>
</method>
+ <signal name="FollowCarModeChanged">
+ <doc>
+ <line>FollowCarModeChanged = This signal is emitted when the follow-car-mode changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="followCarMode" type="b">
+ <doc>
+ <line>followCarMode = flag. If true, the current car position is interpreted as position of the point the camera must look at</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetCameraPosition">
<doc>
<line>SetCameraPosition = This method sets the coordinates of the point at which the camera must be positioned</line>
@@ -229,6 +238,24 @@
</doc>
</arg>
</method>
+ <signal name="CameraPositionChanged">
+ <doc>
+ <line>CameraPositionChanged = This signal is emitted when the position of the camera changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="targetPoint" type="(ddi)">
+ <doc>
+ <line>targetPoint = (lat,lon,alt)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ <line>alt = altitude to the ground in meters</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetCameraHeadingAngle">
<doc>
<line>SetCameraHeadingAngle = This method sets the map view heading angle</line>
@@ -320,6 +347,29 @@
</doc>
</arg>
</method>
+ <signal name="CameraHeadingChanged">
+ <doc>
+ <line>CameraHeadingAngleChanged = This signal is emitted when the heading angle of the camera changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="headingType" type="q">
+ <doc>
+ <line>headingType = enum(INVALID,CONSTANT_ANGLE,TRACK_UP,TOWARDS_TARGET, ... )</line>
+ </doc>
+ </arg>
+ <arg name="headingAngle" type="i">
+ <doc>
+ <line>headingAngle = heading angle in degrees. Range [0:360]</line>
+ <line>The angle in degrees between projection on the ground plane of the line through the center of the screen and the top-centre of the screen, and the North direction</line>
+ <line>0 degrees means that the map view is oriented such that North is at the top of the screen</line>
+ <line>Degrees are measured clockwise such that 90 degrees correspond to the East direction</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetCameraTiltAngle">
<doc>
<line>SetCameraTiltAngle = This method sets the camera tilt angle</line>
@@ -359,6 +409,23 @@
</doc>
</arg>
</method>
+ <signal name="CameraTiltAngleChanged">
+ <doc>
+ <line>CameraTiltAngleChanged = This signal is emitted when the camera tilt angle changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="tilt" type="i">
+ <doc>
+ <line>tilt = tilt angle in degrees. Range [-180:180]</line>
+ <line>Example: 0 = down (straight down to the ground plane), 90 = front (parrallel to the ground plane), 180 = top (straight up to the sky)</line>
+ <line>Negative angles [0:-180] result in an upside down view</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetCameraRollAngle">
<obligation>Optional</obligation>
<doc>
@@ -432,6 +499,21 @@
</doc>
</arg>
</method>
+ <signal name="CameraDistanceFromTargetPointChanged">
+ <doc>
+ <line>CameraDistanceFromTargetPointChanged = This signal is emitted when the camera distance from the target point changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="distance" type="u">
+ <doc>
+ <line>distance = distance from the view point in meters</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetMapViewScaleMode">
<doc>
<line>SetMapViewScaleMode = This method sets the scaling mode.</line>
@@ -597,6 +679,21 @@
</doc>
</arg>
</method>
+ <signal name="MapViewPerspectiveChanged">
+ <doc>
+ <line>MapViewPerspectiveChanged = This signal is emitted when the map perspective chnages</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="perspective" type="q">
+ <doc>
+ <line>perspective = enum(INVALID,2D,3D, ... )</line>
+ </doc>
+ </arg>
+ </signal>
<method name="GetSupportedMapViewPerspectives">
<doc>
<line>GetSupportedMapViewPerspectives = This method retrieves the supported mapview perspectives</line>
@@ -649,6 +746,24 @@
</doc>
</arg>
</method>
+ <signal name="MapViewObjectVisibilityChanged">
+ <doc>
+ <line>MapViewObjectVisibilityChanged = This signal is emitted when the type of objects shown on the map changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="objectVisibilityList" type="a{qb}">
+ <doc>
+ <line> objectVisibilityList = array[objectVisibility]</line>
+ <line> objectVisibility = dictionary[key,value]</line>
+ <line> key = enum[BUILDINGS,TERRAIN, ...]</line>
+ <line> value = value of type 'b'; if true the objects are shown else they are not shown</line>
+ </doc>
+ </arg>
+ </signal>
<method name="GetSupportedMapViewObjectVisibilities">
<doc>
<line>GetSupportedMapViewObjectVisibilities = This method gets the supported object visibilities.</line>
@@ -812,6 +927,25 @@
</doc>
</arg>
</method>
+ <signal name="MapViewBoundingBoxChanged">
+ <doc>
+ <line>MapViewBoundingBoxChanged = This signal is emitted when the bounding box of a map instance changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="boundingBox" type="((dd)(dd))">
+ <doc>
+ <line>boundingBox = struct(top-left-corner,bottom-right-corner)</line>
+ <line>top-left-corner = struct(lat,lon)</line>
+ <line>bottom-right-corner = struct(lat,lon)</line>
+ <line>lat = latitude in format %3.6f. Range[-90:+90]</line>
+ <line>lon = longitude in format %3.6f. Range[-180:+180]</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetMapViewSaveArea">
<doc>
<line>SetMapViewSaveArea = This methods defines the area that the HMI guarantees not to
@@ -861,6 +995,27 @@ cover with other windows or user interface elements</line>
</doc>
</arg>
</method>
+ <signal name="MapViewSaveAreaChanged">
+ <doc>
+ <line>MapViewSaveAreaChanged = This signal is emitted when the area that the HMI guarantees not to cover with other windows or user interface elements chnages</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="saveArea" type="(dddd)">
+ <doc>
+ <line>boundingBox = struct(rect-left,rect-right,rect-top,rect-bottom)</line>
+ <line>rect-left = covered area on the left. Range [0:1]</line>
+ <line>rect-right = covered area on the right. Range [0:1]</line>
+ <line>rect-top = covered area on top. Range [0:1]</line>
+ <line>rect-bottom = covered area at the bottom. Range [0:1]</line>
+ <line>Note: 0.0 means there is no covered area (offset) from that side</line>
+ <line>When all four parameters are 0 then the save area is equal to the viewport area (being the default)</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetMapViewPan">
<doc>
<line>SetMapViewPan = This method pans a given map instance</line>
@@ -1059,6 +1214,21 @@ cover with other windows or user interface elements</line>
</doc>
</arg>
</method>
+ <signal name="MapViewPerformanceLevelChanged">
+ <doc>
+ <line>MapViewPerformanceLevelChanged = This signal is emitted when the perfomance level of a map instance changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="performanceLevel" type="q">
+ <doc>
+ <line>performanceLevel = enum(INVALID,LEVEL1,LEVEL2,LEVEL3,LEVEL4,LEVEL5, ... )</line>
+ </doc>
+ </arg>
+ </signal>
<method name="GetSupportedMapViewPerformanceLevels">
<doc>
<line>GetSupportedMapViewPerformanceLevels = This method retrieves the supported perfomance levels</line>
@@ -1242,6 +1412,37 @@ cover with other windows or user interface elements</line>
</doc>
</arg>
</method>
+ <signal name="PoiCategoriesVisibilityChanged">
+ <doc>
+ <line>PoiCategoriesVisibilityChanged = This signal is emitted when the visibility of POI categories on a map instance changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="poiCategoryIds" type="aq">
+ <doc>
+ <line>poiCategoryIds = array[poiCategoryId]</line>
+ <line>poiCategoryId = a POI category as defined in the 'GENIVI POIService API'.</line>
+ </doc>
+ </arg>
+ <arg name="visible" type="b">
+ <doc>
+ <line>visible = flag. TRUE means that the POI categories are visible</line>
+ </doc>
+ </arg>
+ <arg name="minScaleID" type="y">
+ <doc>
+ <line>minScaleID = minimun scale on which the POI categories are displayed</line>
+ </doc>
+ </arg>
+ <arg name="maxScaleID" type="y">
+ <doc>
+ <line>maxScaleID = maximum scale on which the POI categories are displayed</line>
+ </doc>
+ </arg>
+ </signal>
<method name="SetTrafficIncidentsVisibility">
<doc>
<line>SetTrafficIncidentsVisibility = Set the visibility of Traffic Incidents on the map.</line>
@@ -1299,6 +1500,22 @@ cover with other windows or user interface elements</line>
</doc>
</arg>
</method>
+ <signal name="MapViewThemeChanged">
+ <doc>
+ <line>MapViewThemeChanged = This signal is emitted when the theme of a map view instance changes</line>
+ </doc>
+ <arg name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ </doc>
+ </arg>
+ <arg name="mapViewTheme" type="q">
+ <doc>
+ <line>mapViewTheme = enum(INVALID,THEME_1,THEME_2,THEME_3, ... )</line>
+ <line>Note: Themes are implementation specific. Example: THEME_1 = day color, THEME_2 = night color</line>
+ </doc>
+ </arg>
+ </signal>
<method name="GetSupportedMapViewThemes">
<doc>
<line>GetSupportedMapViewThemes = This method retrieves the supported mapview themes</line>
diff --git a/api/map-viewer/genivi-mapviewer-session.xml b/api/map-viewer/genivi-mapviewer-session.xml
index f2a8a12..911f645 100755
--- a/api/map-viewer/genivi-mapviewer-session.xml
+++ b/api/map-viewer/genivi-mapviewer-session.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/mapviewer" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.mapviewer.Session">
- <version>3.0.0-alpha (07-06-2013)</version>
+ <version>3.0.0 (21-01-2014)</version>
<doc>
<line>Session = This interface offers functions to create and delete sessions</line>
</doc>
diff --git a/api/navigation-core/genivi-navigationcore-configuration.xml b/api/navigation-core/genivi-navigationcore-configuration.xml
index 8585e50..0aa1bb9 100755
--- a/api/navigation-core/genivi-navigationcore-configuration.xml
+++ b/api/navigation-core/genivi-navigationcore-configuration.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.navigationcore.Configuration">
- <version>3.0.0-alpha (07-06-2013)</version>
+ <version>3.0.0 (21-01-2014)</version>
<doc>
<line>Configuration = This interface offers functions to set and retrieve configuration parameters</line>
</doc>
diff --git a/api/navigation-core/genivi-navigationcore-constants.xml b/api/navigation-core/genivi-navigationcore-constants.xml
index 64993cc..7a8ae0b 100755
--- a/api/navigation-core/genivi-navigationcore-constants.xml
+++ b/api/navigation-core/genivi-navigationcore-constants.xml
@@ -1,13 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="constants.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
+
<constants name="NavigationCore">
- <version>3.0.0-alpha (23-10-2013)</version>
+ <version>3.0.0 (21-01-2014)</version>
<doc>
<line>This document defines the constants used in the NavigationCore APIs</line>
</doc>
@@ -60,7 +55,7 @@
<id name="ROUNDABOUT" value="0x0072" />
<id name="HIGHWAY_ENTER" value="0x0073" />
<id name="HIGHWAY_EXIT" value="0x0074" />
- <id name="HIGHWAY_CHANGE_LANE" value="0x0075" />
+ <id name="FOLLOW_SPECIFIC_LANE" value="0x0075" />
<id name="DESTINATION" value="0x0076" />
<id name="WAYPOINT" value="0x0077" />
<id name="TURN" value="0x0078" />
@@ -209,4 +204,32 @@
<id name="SIMULATION_STATUS_PAUSED" value="0x0222" />
<id name="SIMULATION_STATUS_FIXED_POSITION" value="0x0223" />
+ <id name="ROAD_FORM_CHANGE" value="0x0230" />
+ <id name="ROAD_REGULAR" value="0x0231" />
+ <id name="ROAD_HIGHWAY_MOTORWAY" value="0x0232" />
+ <id name="ROAD_FERRY" value="0x0233" />
+
+ <id name="DIRECTION" value="0x0240" />
+ <id name="EXIT_NUMBER" value="0x0241" />
+ <id name="ROAD_FORM" value="0x0242" />
+ <id name="LANE_INFO" value="0x0243" />
+
+ <id name="LANE_INFO_BITMASK_STRAIGHT" value="0x0001" />
+ <id name="LANE_INFO_BITMASK_SLIGHTRIGHT" value="0x0002" />
+ <id name="LANE_INFO_BITMASK_RIGHT" value="0x0004" />
+ <id name="LANE_INFO_BITMASK_SHARPRIGHT" value="0x0008" />
+ <id name="LANE_INFO_BITMASK_RIGHTUTURN" value="0x0010" />
+ <id name="LANE_INFO_BITMASK_SLIGHTLEFT" value="0x0020" />
+ <id name="LANE_INFO_BITMASK_LEFT" value="0x0040" />
+ <id name="LANE_INFO_BITMASK_SHARPLEFT" value="0x0080" />
+ <id name="LANE_INFO_BITMASK_LEFTUTURN" value="0x0100" />
+
+ <id name="DIVIDER_UNDEFINED" value="0x0250" />
+ <id name="DIVIDER_INTERRUPTEDLONG" value="0x0251" />
+ <id name="DIVIDER_INTERRUPTEDSHORT" value="0x0252" />
+ <id name="DIVIDER_SOLIDSINGLE" value="0x0253" />
+ <id name="DIVIDER_SOLIDDOUBLE" value="0x0254" />
+ <id name="DIVIDER_SOLIDINTERRUPTED" value="0x0255" />
+ <id name="DIVIDER_INTERRUPTEDSOLID" value="0x0256" />
+
</constants>
diff --git a/api/navigation-core/genivi-navigationcore-guidance.xml b/api/navigation-core/genivi-navigationcore-guidance.xml
index 7217fb6..82b47a4 100755
--- a/api/navigation-core/genivi-navigationcore-guidance.xml
+++ b/api/navigation-core/genivi-navigationcore-guidance.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.navigationcore.Guidance">
- <version>3.0.0-alpha (23-10-2013)</version>
+ <version>3.1.0-alpha (03-03-2014)</version>
<doc>
<line>Guidance = This interface offers functions that implement the route-guidance functionality of a navigation system</line>
</doc>
@@ -243,21 +237,37 @@
<line>Note: the number corresponds to the number of elements in the array</line>
</doc>
</arg>
- <arg name="maneuversList" type="a(ssqqua(uui(qq)(qs)))" direction="out">
+ <arg name="maneuversList" type="a(ssqqua(uuiqa(qv)))" direction="out">
<doc>
- <line>array[struct(roadNumberAfterManeuver,roadNameAfterManeuver,roadPropertyAfterManeuver,drivingSide,offsetOfNextManeuver,array[struct(offsetOfManeuver,travelTime,direction,struct(maneuver,maneuverLength),struct(maneuverDirection,exitNumber))])]</line>
+ <line>maneuversList = array[struct(roadNumberAfterManeuver,roadNameAfterManeuver,roadPropertyAfterManeuver,drivingSide,offsetOfNextManeuver,maneuverDetails)]</line>
<line>roadNumberAfterManeuver = the number of the road after the maneuver (if a road has multiple road numbers, they will be separated by slashes ('/') and combined into one string)</line>
<line>roadNameAfterManeuver = the name of the road after the maneuver</line>
<line>roadPropertyAfterManeuver = enum(TOLL_ROADS, ... ,DEFAULT)</line>
<line>drivingSide = enum(LEFT,RIGHT)</line>
<line>offsetOfNextManeuver = the offset of the next maneuver in meters from the beginning of the route (next maneuver is the second maneuver on the route ahead)</line>
+ <line>maneuverDetails = array[struct(offsetOfManeuver,travelTime,direction,maneuver,maneuverData)]</line>
<line>offsetOfManeuver = the offset of the current maneuver in meters from the beginning of the route (current maneuver is the first maneuver on the route ahead)</line>
<line>travelTime = travel time to the basic maneuver in seconds</line>
<line>direction = direction of the maneuver in degree relatively to the North. Range [0:360]</line>
- <line>maneuver = enum(INVALID,STRAIGHT_ON,TURN,CROSSROAD,ROUNDABOUT,HIGHWAY_ENTER,HIGHWAY_EXIT,BIFURCATION,HIGHWAY_CHANGE_LANE,DESTINATION,WAYPOINT)</line>
- <line>maneuverLength = when maneuver=ROUNDABOUT the length of the route segment between the entry to and the exit from the roundabout; 0 otherwise.</line>
- <line>maneuverDirection = enum(INVALID,STRAIGHT_ON,LEFT,SLIGHT_LEFT,HARD_LEFT,RIGHT,SLIGHT_RIGHT,HARD_RIGHT,UTURN_RIGHT, UTURN_LEFT)</line>
- <line>exitNumber = when maneuver=ROUNDABOUT or maneuver=HIGHWAY_EXIT the exit number; null otherwise.</line>
+ <line>maneuver = enum(INVALID,STRAIGHT_ON,TURN,CROSSROAD,ROUNDABOUT,HIGHWAY_ENTER,HIGHWAY_EXIT,BIFURCATION,FOLLOW_SPECIFIC_LANE,DESTINATION,WAYPOINT,ROAD_FORM_CHANGE)</line>
+ <line>maneuverData = array[struct(key, value)]</line>
+ <line>key = enum(LENGTH,DIRECTION,EXIT_NUMBER,ROAD_FORM,LANE_INFO,LATITUDE,LONGITUDE,ALTITUDE)</line>
+ <line>key = LENGTH, value of type 'q', when maneuver=ROUNDABOUT, expresses the length of the route segment between the entry to and the exit from the roundabout</line>
+ <line>key = DIRECTION, value of type 'q', enum(INVALID,STRAIGHT_ON,LEFT,SLIGHT_LEFT,HARD_LEFT,RIGHT,SLIGHT_RIGHT,HARD_RIGHT,UTURN_RIGHT,UTURN_LEFT)</line>
+ <line>key = EXIT_NUMBER, when maneuver=ROUNDABOUT, value of type 'q' that expresses the roundabout exit number</line>
+ <line> when maneuver=HIGHWAY_EXIT, value of type 's' that expresses the highway exit number</line>
+ <line>key = ROAD_FORM, value of type 'q', enum(INVALID,ROAD_REGULAR,ROAD_HIGHWAY_MOTORWAY,ROAD_FERRY)</line>
+ <line>key = LANE_INFO, value of type 'a(uuuq)', array[struct(laneIndex,laneDirections,directionToFollow,divider)]</line>
+ <line>laneIndex = number of the individual lane. Counting starts from zero, beginning at the left-most lane in the direction of travel (independent of the driving side)</line>
+ <line>laneDirections = bitfield where each bit corresponds to a certain direction. A 1-bit indicates that the corresponding part of the lane arrow is drawn in the lane information on the street (see the lane info bitmasks)</line>
+ <line>directionToFollow = bitfield where each bit corresponds to a certain direction. A 1-bit indicates that the corresponding part of the lane arrow matches the direction of the corresponding maneuver (see the lane info bitmasks). At most one bit of this bitmask will be set.</line>
+ <line>The bitmasks are: LANE_INFO_BITMASK_STRAIGHT,LANE_INFO_BITMASK_SLIGHTRIGHT,LANE_INFO_BITMASK_RIGHT,LANE_INFO_BITMASK_SHARPRIGHT,LANE_INFO_BITMASK_RIGHTUTURN,LANE_INFO_BITMASK_SLIGHTLEFT,LANE_INFO_BITMASK_LEFT,LANE_INFO_BITMASK_SHARPLEFT,LANE_INFO_BITMASK_LEFTUTURN</line>
+ <line>divider = indicates the type of divider between the given lane and the next one to the right, in the direction of travel</line>
+ <line> enum(DIVIDER_UNDEFINED,DIVIDER_INTERRUPTEDLONG,DIVIDER_INTERRUPTEDSHORT,DIVIDER_SOLIDSINGLE,DIVIDER_SOLIDDOUBLE,DIVIDER_SOLIDINTERRUPTED,DIVIDER_INTERRUPTEDSOLID)</line>
+ <line>Note: To describe the divider on the left side of the left-most lane, use the following entry in LANE_INFO: (laneIndex=0xffffffff,laneDirections=0x00000000,directionToFollow=0x00000000,divider=type)</line>
+ <line>key = LATITUDE, value = value of type 'd', that expresses the latitude of the starting point in format %3.6f. Range [-90:+90]. Example: 48.053250</line>
+ <line>key = LONGITUDE, value = value of type 'd', that expresses the longitude of the starting point in format %3.6f. Range [-180:+180]. Example: 8.324500</line>
+ <line>key = ALTITUDE, value = value of type 'i', that expresses the altitude of the starting point in meters</line>
</doc>
</arg>
<error name="org.genivi.navigationcore.Guidance.Error.NoManeuver">
diff --git a/api/navigation-core/genivi-navigationcore-locationinput.xml b/api/navigation-core/genivi-navigationcore-locationinput.xml
index 6c57400..c4ee51f 100755
--- a/api/navigation-core/genivi-navigationcore-locationinput.xml
+++ b/api/navigation-core/genivi-navigationcore-locationinput.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.navigationcore.LocationInput">
- <version>3.0.0-alpha (07-06-2013)</version>
+ <version>3.0.0 (21-01-2014)</version>
<doc>
<line>LocationInput = This interface offers functions that implement the location-input functionality of a navigation system</line>
</doc>
diff --git a/api/navigation-core/genivi-navigationcore-mapmatchedposition.xml b/api/navigation-core/genivi-navigationcore-mapmatchedposition.xml
index e0da874..aa73b37 100755
--- a/api/navigation-core/genivi-navigationcore-mapmatchedposition.xml
+++ b/api/navigation-core/genivi-navigationcore-mapmatchedposition.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.navigationcore.MapMatchedPosition">
- <version>3.0.0-alpha (23-10-2013)</version>
+ <version>3.0.0 (21-01-2014)</version>
<doc>
<line>MapMatchedPosition = This interface offers functions to retrieve the map matched position and to simulate positioning</line>
<line></line>
diff --git a/api/navigation-core/genivi-navigationcore-routing.xml b/api/navigation-core/genivi-navigationcore-routing.xml
index 841fd60..72db5c6 100755
--- a/api/navigation-core/genivi-navigationcore-routing.xml
+++ b/api/navigation-core/genivi-navigationcore-routing.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.navigationcore.Routing">
- <version>3.0.0-alpha (07-06-2013)</version>
+ <version>3.0.0 (22-01-2014)</version>
<doc>
<line>Routing = This interface offers functions that implement the routing functionality of a navigation system</line>
</doc>
diff --git a/api/navigation-core/genivi-navigationcore-session.xml b/api/navigation-core/genivi-navigationcore-session.xml
index 36a552a..1ebcbb7 100755
--- a/api/navigation-core/genivi-navigationcore-session.xml
+++ b/api/navigation-core/genivi-navigationcore-session.xml
@@ -1,14 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="introspect.xsl"?>
-<!-- SPDX-License-Identifier: MPL-2.0
- Copyright (C) 2014, BMW Car IT GmbH, Continental Automotive GmbH, PCA Peugeot Citroën, XS Embedded GmbH, TomTom International B.V., Alpine Electronics R&D Europe GmbH, AISIN AW CO., LTD., Neusoft Technology Solutions GmbH, Jaguar Land Rover Limited, Visteon Corporation
- 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/.
--->
<node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="/org/genivi/navigationcore" xsi:noNamespaceSchemaLocation="introspect.xsd">
<interface name="org.genivi.navigationcore.Session">
- <version>3.0.0-alpha (07-06-2013)</version>
+ <version>3.0.0 (22-01-2014)</version>
<doc>
<line>Session = This interface offers functions to create and delete sessions</line>
</doc>
diff --git a/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx b/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx
index c3f6820..1a92dfe 100644
--- a/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx
+++ b/src/navigation/navigation-core/guidance-plugin/genivi_navigationcore_guidance.cxx
@@ -66,8 +66,8 @@ class GuidanceObj
void ResumeGuidance(uint32_t sessionHandle);
void GetGuidanceStatus(uint16_t& guidanceStatus, uint32_t& routeHandle);
void GetDestinationInformation(uint32_t& offset, uint32_t& TravelTime, int32_t& Direction, int16_t& TimeZone);
- void GetManeuver(struct item *item, uint32_t& DistanceToManeuver, ::DBus::Struct< uint16_t, uint16_t >& Maneuver, std::string& RoadAfterManeuver, uint16_t& ManeuverDirection);
- void GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const uint32_t& maneuverOffset, uint16_t& numberOfManeuvers, std::vector< ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, ::DBus::Struct< uint16_t, uint16_t >, ::DBus::Struct< uint16_t, std::string > > > > >& maneuversList);
+ void GetManeuver(struct item *item, uint32_t& DistanceToManeuver, uint16_t& Maneuver, std::string& RoadAfterManeuver, ::DBus::Struct< uint16_t, ::DBus::Variant >& ManeuverData);
+ void GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const uint32_t& maneuverOffset, uint16_t& numberOfManeuvers, std::vector< ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, uint16_t, std::vector< ::DBus::Struct< uint16_t, ::DBus::Variant > > > > > >& maneuversList);
void GetGuidanceDetails(bool& voiceGuidance, bool& vehicleOnTheRoad, bool& isDestinationReached, uint16_t& maneuver);
GuidanceObj(class Guidance *guidance, uint32_t SessionHandle, uint32_t RouteHandle);
~GuidanceObj();
@@ -134,6 +134,15 @@ get_vehicle(const char *source_prefix)
return ret;
}
+static DBus::Variant
+variant_uint16(uint16_t i)
+{
+ DBus::Variant variant;
+ DBus::MessageIter iter=variant.writer();
+ iter << i;
+ return variant;
+}
+
class Guidance
: public org::genivi::navigationcore::Guidance_adaptor,
public DBus::IntrospectableAdaptor,
@@ -277,8 +286,8 @@ class Guidance
throw DBus::ErrorNotSupported("Not yet supported");
}
- void
- GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const uint32_t& maneuverOffset, uint16_t& numberOfManeuvers, std::vector< ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, ::DBus::Struct< uint16_t, uint16_t >, ::DBus::Struct< uint16_t, std::string > > > > >& maneuversList)
+ void
+ GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const uint32_t& maneuverOffset, uint16_t& numberOfManeuvers, std::vector< ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, uint16_t, std::vector< ::DBus::Struct< uint16_t, ::DBus::Variant > > > > > >& maneuversList)
{
if (!guidance) {
dbg(0,"no guidance active\n");
@@ -371,7 +380,7 @@ GuidanceObj::GetDestinationInformation(uint32_t& Distance, uint32_t& TravelTime,
}
void
-GuidanceObj::GetManeuver(struct item *item, uint32_t& DistanceToManeuver, ::DBus::Struct< uint16_t, uint16_t >& Maneuver, std::string& RoadAfterManeuver, uint16_t& ManeuverDirection)
+GuidanceObj::GetManeuver(struct item *item, uint32_t& DistanceToManeuver, uint16_t& Maneuver, std::string& RoadAfterManeuver, ::DBus::Struct< uint16_t, ::DBus::Variant >& ManeuverData)
{
struct attr length, street_name;
if (item_attr_get(item, attr_length, &length)) {
@@ -380,113 +389,114 @@ GuidanceObj::GetManeuver(struct item *item, uint32_t& DistanceToManeuver, ::DBus
if (item_attr_get(item, attr_street_name, &street_name)) {
RoadAfterManeuver=std::string(street_name.u.str);
}
+ ManeuverData._1 = GENIVI_NAVIGATIONCORE_DIRECTION;
switch (item->type) {
case type_nav_straight:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_STRAIGHT_ON;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_STRAIGHT_ON);
break;
case type_nav_turnaround:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_UTURN_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_UTURN_LEFT);
break;
case type_nav_right_1:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_SLIGHT_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_SLIGHT_RIGHT);
break;
case type_nav_right_2:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_RIGHT);
break;
case type_nav_right_3:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_HARD_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_HARD_RIGHT);
break;
case type_nav_left_1:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_SLIGHT_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_SLIGHT_LEFT);
break;
case type_nav_left_2:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_LEFT);
break;
case type_nav_left_3:
- Maneuver._1=GENIVI_NAVIGATIONCORE_CROSSROAD;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_HARD_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_CROSSROAD;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_HARD_LEFT);
break;
// FIXME: Are ManeuverDirection values right here?
case type_nav_roundabout_r1:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_HARD_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_HARD_RIGHT);
break;
case type_nav_roundabout_r2:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_RIGHT);
break;
case type_nav_roundabout_r3:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_SLIGHT_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_SLIGHT_RIGHT);
break;
case type_nav_roundabout_r4:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_STRAIGHT_ON;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_STRAIGHT_ON);
break;
case type_nav_roundabout_r5:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_SLIGHT_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_SLIGHT_LEFT);
break;
case type_nav_roundabout_r6:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_LEFT);
break;
case type_nav_roundabout_r7:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_HARD_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_HARD_LEFT);
break;
case type_nav_roundabout_r8:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_UTURN_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_UTURN_LEFT);
break;
// FIXME: Distinguish between clockwise and counterclockwise roundabout?
case type_nav_roundabout_l1:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_HARD_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_HARD_LEFT);
break;
case type_nav_roundabout_l2:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_LEFT);
break;
case type_nav_roundabout_l3:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_SLIGHT_LEFT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_SLIGHT_LEFT);
break;
case type_nav_roundabout_l4:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_STRAIGHT_ON;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_STRAIGHT_ON);
break;
case type_nav_roundabout_l5:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_SLIGHT_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_SLIGHT_RIGHT);
break;
case type_nav_roundabout_l6:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_RIGHT);
break;
case type_nav_roundabout_l7:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_HARD_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_HARD_RIGHT);
break;
case type_nav_roundabout_l8:
- Maneuver._1=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_UTURN_RIGHT;
+ Maneuver=GENIVI_NAVIGATIONCORE_ROUNDABOUT;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_UTURN_RIGHT);
break;
case type_nav_destination:
- Maneuver._1=GENIVI_NAVIGATIONCORE_DESTINATION;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_STRAIGHT_ON;
+ Maneuver=GENIVI_NAVIGATIONCORE_DESTINATION;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_STRAIGHT_ON);
break;
default:
dbg(0,"Unable to convert type %s\n",item_to_name(item->type));
- Maneuver._1=GENIVI_NAVIGATIONCORE_INVALID;
- ManeuverDirection=GENIVI_NAVIGATIONCORE_INVALID;
+ Maneuver=GENIVI_NAVIGATIONCORE_INVALID;
+ ManeuverData._2=variant_uint16(GENIVI_NAVIGATIONCORE_INVALID);
}
}
@@ -497,7 +507,7 @@ GuidanceObj::GetGuidanceDetails(bool& voiceGuidance, bool& vehicleOnTheRoad, boo
}
void
-GuidanceObj::GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const uint32_t& maneuverOffset, uint16_t& numberOfManeuvers, std::vector< ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, ::DBus::Struct< uint16_t, uint16_t >, ::DBus::Struct< uint16_t, std::string > > > > >& maneuversList)
+GuidanceObj::GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const uint32_t& maneuverOffset, uint16_t& numberOfManeuvers, std::vector< ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, uint16_t, std::vector< ::DBus::Struct< uint16_t, ::DBus::Variant > > > > > >& maneuversList)
{
struct map_rect *mr=get_map_rect();
struct item *item;
@@ -506,13 +516,15 @@ GuidanceObj::GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const
maneuverIndex = 0;
while (item=get_item(mr)) { //scan the list of maneuvers of the route
if (maneuverIndex >= maneuverOffset && maneuverIndex < maneuverOffset+requestedNumberOfManeuvers) {
- ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, ::DBus::Struct< uint16_t, uint16_t >, ::DBus::Struct< uint16_t, std::string > > > >maneuver;
- ::DBus::Struct< uint32_t, uint32_t, int32_t, ::DBus::Struct< uint16_t, uint16_t >, ::DBus::Struct< uint16_t, std::string > > sub_maneuver;
+ ::DBus::Struct< std::string, std::string, uint16_t, uint16_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, uint16_t, std::vector< ::DBus::Struct< uint16_t, ::DBus::Variant > > > > >maneuver;
+ ::DBus::Struct< uint32_t, uint32_t, int32_t, uint16_t, std::vector< ::DBus::Struct< uint16_t, ::DBus::Variant > > > sub_maneuver;
+ ::DBus::Struct< uint16_t, ::DBus::Variant > maneuver_data;
maneuver._1 = ""; //roadNumberAfterManeuver
maneuver._3 = GENIVI_NAVIGATIONCORE_DEFAULT; //roadPropertyAfterManeuver
maneuver._4 = GENIVI_NAVIGATIONCORE_RIGHT; //drivingSide
maneuver._5 = 0; //offsetOfNextManeuver
- GetManeuver(item, sub_maneuver._1, sub_maneuver._4, maneuver._2, sub_maneuver._5._1);
+ GetManeuver(item, sub_maneuver._1, sub_maneuver._4, maneuver._2, maneuver_data);
+ sub_maneuver._5.push_back(maneuver_data);
maneuver._6.push_back(sub_maneuver);
if (maneuversList.size())
maneuversList.back()._5 = sub_maneuver._1; //offsetOfNextManeuver of the last record is the offsetOfManeuver of this one