summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorasanoaozora <fifitaneki@hotmail.com>2017-04-28 11:23:56 +0200
committerasanoaozora <fifitaneki@hotmail.com>2017-04-28 11:23:56 +0200
commitb865fbca8d4e308ae8b4862ad94ea8b30f87e5ba (patch)
treecc30213637bbf47f725dcf5125e0cc78abc81530
parent70e44b6b5df23d8a8708885f1f4f7ce90cb12fae (diff)
downloadpoi-service-b865fbca8d4e308ae8b4862ad94ea8b30f87e5ba.tar.gz
GT-3434 GT-3435 GT-3494 GT-3495 GT-3496
GT-3434 Unclear ByteBuffer type for LaneType bitmask laneDirections GT-3435 VehicleReturnedToTheRoadNetwork broadcast is missing from Guidance API GT-3494 setTargetPoint is ambiguous GT-3495 Documentation for travelTime can be improved GT-3496 Add map gesture support to MapViewer
-rwxr-xr-xapi/franca/navigation/mapviewer/MapViewerControl.fidl289
-rw-r--r--api/franca/navigation/navigationcore/Guidance.fidl22
-rw-r--r--api/map-viewer/genivi-mapviewer-mapviewercontrol.xml299
-rw-r--r--api/navigation-core/genivi-navigationcore-guidance.xml12
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx86
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx34
6 files changed, 691 insertions, 51 deletions
diff --git a/api/franca/navigation/mapviewer/MapViewerControl.fidl b/api/franca/navigation/mapviewer/MapViewerControl.fidl
index e29af10..0e297ed 100755
--- a/api/franca/navigation/mapviewer/MapViewerControl.fidl
+++ b/api/franca/navigation/mapviewer/MapViewerControl.fidl
@@ -390,7 +390,7 @@ interface MapViewerControl {
}
<**
- @description : setTargetPoint = This method sets the position of the point the camera is always aimed at
+ @description : setTargetPoint = This method sets the position of the point the camera is aimed at
**>
method setTargetPoint {
in {
@@ -1349,6 +1349,286 @@ interface MapViewerControl {
}
<**
+ @description : mapViewRotateBegin = Begin a rotation gesture.
+ **>
+ method mapViewRotateBegin {
+ in {
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.
+ **>
+ Pixel anchorPoint
+
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_ANCHOR_POINT
+ }
+ }
+
+
+ <**
+ @description : mapViewRotateUpdate = Provide an update for the rotation gesture.
+ **>
+ method mapViewRotateUpdate {
+ in {
+
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.
+ **>
+ Pixel anchorPoint
+
+ <**
+ @description : rotationAngle = The rotation angle in degrees.
+ Range [-179: 180]. Positive (negative) value should result in clockwise (counterclockwise) rotation.
+ **>
+ Int16 rotationAngle
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_ANCHOR_POINT
+ INVALID_ROTATION_ANGLE
+ INVALID_CALL_SEQUENCE
+ }
+ }
+
+ <**
+ @description : mapViewRotateEnd = End the rotation gesture.
+ **>
+ method mapViewRotateEnd {
+ in {
+
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : velocity = The remaining velocity of rotation, in degrees per second.
+ **>
+ UInt16 velocity
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_CALL_SEQUENCE
+ }
+ }
+
+ <**
+ @description : mapViewPinchBegin = Begin a pinch gesture.
+ **>
+ method mapViewPinchBegin {
+ in {
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.
+ **>
+ Pixel anchorPoint
+
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_ANCHOR_POINT
+ }
+ }
+
+
+ <**
+ @description : mapViewPinchUpdate = Provide an update for the pinch gesture.
+ **>
+ method mapViewPinchUpdate {
+ in {
+
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.
+ **>
+ Pixel anchorPoint
+
+ <**
+ @description : scaleFactor = Scale factor relative to the scale during mapViewPinchBegin call
+ **>
+ Double scaleFactor
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_ANCHOR_POINT
+ INVALID_CALL_SEQUENCE
+ }
+ }
+
+ <**
+ @description : mapViewPinchEnd = End the pinch gesture.
+ **>
+ method mapViewPinchEnd {
+ in {
+
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : velocity = The remaining velocity of scale, in scale factor per second.
+ **>
+ Double velocity
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_CALL_SEQUENCE
+ }
+ }
+
+
+ <**
+ @description : mapViewTiltBegin = Begin a tilt gesture.
+ **>
+ method mapViewTiltBegin {
+ in {
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : anchorPoint = Specifies coordinates in pixels on the screen where the gesture is started.
+ **>
+ Pixel anchorPoint
+
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_ANCHOR_POINT
+ }
+ }
+
+
+ <**
+ @description : mapViewTiltUpdate = Provide an update for the tilt gesture.
+ **>
+ method mapViewTiltUpdate {
+ in {
+
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : scale = Current translation on y axis, in pixels from origin coordinates passed in mapViewTiltBegin.
+ **>
+ Int32 translation
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_CALL_SEQUENCE
+ }
+ }
+
+ <**
+ @description : mapViewTiltEnd = End the tilt gesture.
+ **>
+ method mapViewTiltEnd {
+ in {
+
+ <**
+ @description : sessionHandle = Session handle.
+ **>
+ Handle sessionHandle
+
+ <**
+ @description : mapViewInstanceHandle = Map instance handle.
+ **>
+ Handle mapViewInstanceHandle
+
+ <**
+ @description : velocity = The remaining velocity on the y axis, in pixels per second.
+
+ **>
+ UInt32 velocity
+ }
+ error {
+ OK
+ INVALID_SESSION_HANDLE
+ INVALID_MAP_VIEW_INSTANCE_HANDLE
+ INVALID_CALL_SEQUENCE
+ }
+ }
+
+ <**
@description : setMapViewRotation = This method rotates the map
**>
method setMapViewRotation {
@@ -1392,14 +1672,15 @@ interface MapViewerControl {
out {
<**
- @description : rotationAngle = rotation angle in degrees measured from the North axis clockwise. Range[0:360]
+ @description : rotationAngle = rotation angle in degrees measured from the North axis clockwise if possitive
+ or counter clockwise if negative. Range[-179:180].
**>
Int32 rotationAngle
<**
- @description : rotationAnglePerFrame = partial rotation for each map frame in degrees
+ @description : rotationAnglePerSecond = partial rotation angle per second
**>
- Int32 rotationAnglePerFrame
+ Int32 rotationAnglePerSecond
}
}
diff --git a/api/franca/navigation/navigationcore/Guidance.fidl b/api/franca/navigation/navigationcore/Guidance.fidl
index 64de71f..5fedd18 100644
--- a/api/franca/navigation/navigationcore/Guidance.fidl
+++ b/api/franca/navigation/navigationcore/Guidance.fidl
@@ -26,7 +26,7 @@ interface Guidance {
NOT_AVAILABLE = 2
}
- enumeration LaneType extends BasicEnum {
+ enumeration LaneType extends BasicEnum { // Used by laneDirections and directionToFollow (into the UInt32 bitfield)
LANE_INFO_BITMASK_STRAIGHT = 1
LANE_INFO_BITMASK_SLIGHTRIGHT = 2
LANE_INFO_BITMASK_RIGHT = 4
@@ -146,14 +146,14 @@ interface Guidance {
struct LaneInfo { //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)
UInt32 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)
- ByteBuffer 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)
- LaneType 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.
+ UInt32 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 LaneType bitmasks)
+ UInt32 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 LaneType bitmasks). At most one bit of this bitmask will be set.
LaneDivider divider //indicates the type of divider between the given lane and the next one to the right, in the direction of travel
}
struct WaypointStruct {
UInt32 waypointOffset //the offset of the way point in meters from the beginning of the route
- UInt32 travelTime //time to reach the way point in seconds
+ UInt32 travelTime //time to reach the waypoint in seconds from the current position
Int32 direction //direction of the way point in degree relatively to the North. Range [0:360]
Side side
Int16 timeZone //time zone of the way point. It is expressed as the time difference from the UTC in minutes
@@ -477,6 +477,12 @@ interface Guidance {
broadcast vehicleLeftTheRoadNetwork {
}
+ <**
+ @description : vehicleReturnedToTheRoadNetwork = This signal is emitted when the vehicle returns to the road network
+ **>
+ broadcast vehicleReturnedToTheRoadNetwork {
+ }
+
<**
@description : guidanceStatusChanged = This signal is emitted when the guidance status changes
**>
@@ -543,6 +549,12 @@ interface Guidance {
}
<**
+ @description : vehicleReturnedToTheRoute = This signal is emitted when the vehicle has returned to the route
+ **>
+ broadcast vehicleReturnedToTheRoute {
+ }
+
+ <**
@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 {
@@ -572,4 +584,4 @@ interface Guidance {
RouteChangedCause changeCause
}
}
-} \ No newline at end of file
+}
diff --git a/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml b/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
index 6b4c65e..738a787 100644
--- a/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
+++ b/api/map-viewer/genivi-mapviewer-mapviewercontrol.xml
@@ -114,8 +114,8 @@
</method>
<method name="SetTargetPoint">
<doc>
- <line>SetTargetPoint = This method sets the position of the point the camera is always aimed at</line>
- <line>Note: the target point is typically visualized in the center of the map</line>
+ <line>SetTargetPoint = This method sets the position of the point the camera is aimed at</line>
+ <line>Note: the target point is typically visualized in the center of the screen</line>
</doc>
<arg name="sessionHandle" type="u" direction="in">
<doc>
@@ -1075,6 +1075,287 @@ cover with other windows or user interface elements</line>
</doc>
</arg>
</method>
+ <method name="MapViewRotateBegin">
+ <doc>
+ <line>MapViewRotateBegin = MapViewRotateBegin = Begin a rotation gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="anchorPoint" type="(qq)">
+ <doc>
+ <line>anchorPoint (of type Pixel) = anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.</line>
+ <line>Pixel struct[x, y] = struct generated for DBus argument SetMapViewPan_pixelCoordinates</line>
+ <line>0: Pixel.x ('q') = Description missing</line>
+ <line>1: Pixel.y ('q') = Description missing</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_ANCHOR_POINT" id="3"/>
+ </method>
+ <method name="MapViewRotateUpdate">
+ <doc>
+ <line>MapViewRotateUpdate = MapViewRotateUpdate = Provide an update for the rotation gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="anchorPoint" type="(qq)">
+ <doc>
+ <line>anchorPoint (of type Pixel) = anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.</line>
+ <line>Pixel struct[x, y] = struct generated for DBus argument SetMapViewPan_pixelCoordinates</line>
+ <line>0: Pixel.x ('q') = Description missing</line>
+ <line>1: Pixel.y ('q') = Description missing</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="rotationAngle" type="n">
+ <doc>
+ <line>rotationAngle = rotationAngle = The rotation angle in degrees.</line>
+ <line>Range [-179: 180]. Positive (negative) value should result in clockwise (counterclockwise) rotation.</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_ANCHOR_POINT" id="3"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_ROTATION_ANGLE" id="4"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_CALL_SEQUENCE" id="5"/>
+ </method>
+ <method name="MapViewRotateEnd">
+ <doc>
+ <line>MapViewRotateEnd = MapViewRotateEnd = End the rotation gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="velocity" type="q">
+ <doc>
+ <line>velocity = velocity = The remaining velocity of rotation, in degrees per second.</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_CALL_SEQUENCE" id="3"/>
+ </method>
+ <method name="MapViewPinchBegin">
+ <doc>
+ <line>MapViewPinchBegin = MapViewPinchBegin = Begin a pinch gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="anchorPoint" type="(qq)">
+ <doc>
+ <line>anchorPoint (of type Pixel) = anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.</line>
+ <line>Pixel struct[x, y] = struct generated for DBus argument SetMapViewPan_pixelCoordinates</line>
+ <line>0: Pixel.x ('q') = Description missing</line>
+ <line>1: Pixel.y ('q') = Description missing</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_ANCHOR_POINT" id="3"/>
+ </method>
+ <method name="MapViewPinchUpdate">
+ <doc>
+ <line>MapViewPinchUpdate = MapViewPinchUpdate = Provide an update for the pinch gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="anchorPoint" type="(qq)">
+ <doc>
+ <line>anchorPoint (of type Pixel) = anchorPoint = Specifies coordinates in pixels on the screen where the gesture is anchored.</line>
+ <line>Pixel struct[x, y] = struct generated for DBus argument SetMapViewPan_pixelCoordinates</line>
+ <line>0: Pixel.x ('q') = Description missing</line>
+ <line>1: Pixel.y ('q') = Description missing</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="scaleFactor" type="d">
+ <doc>
+ <line>scaleFactor = scaleFactor = Scale factor relative to the scale during mapViewPinchBegin call</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_ANCHOR_POINT" id="3"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_CALL_SEQUENCE" id="4"/>
+ </method>
+ <method name="MapViewPinchEnd">
+ <doc>
+ <line>MapViewPinchEnd = MapViewPinchEnd = End the pinch gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="velocity" type="d">
+ <doc>
+ <line>velocity = velocity = The remaining velocity of scale, in scale factor per second.</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_CALL_SEQUENCE" id="3"/>
+ </method>
+ <method name="MapViewTiltBegin">
+ <doc>
+ <line>MapViewTiltBegin = MapViewTiltBegin = Begin a tilt gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="anchorPoint" type="(qq)">
+ <doc>
+ <line>anchorPoint (of type Pixel) = anchorPoint = Specifies coordinates in pixels on the screen where the gesture is started.</line>
+ <line>Pixel struct[x, y] = struct generated for DBus argument SetMapViewPan_pixelCoordinates</line>
+ <line>0: Pixel.x ('q') = Description missing</line>
+ <line>1: Pixel.y ('q') = Description missing</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_ANCHOR_POINT" id="3"/>
+ </method>
+ <method name="MapViewTiltUpdate">
+ <doc>
+ <line>MapViewTiltUpdate = MapViewTiltUpdate = Provide an update for the tilt gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="translation" type="i">
+ <doc>
+ <line>translation = scale = Current translation on y axis, in pixels from origin coordinates passed in mapViewTiltBegin.</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_CALL_SEQUENCE" id="3"/>
+ </method>
+ <method name="MapViewTiltEnd">
+ <doc>
+ <line>MapViewTiltEnd = MapViewTiltEnd = End the tilt gesture.</line>
+ </doc>
+ <arg direction="in" name="sessionHandle" type="u">
+ <doc>
+ <line>sessionHandle (of type Handle) = sessionHandle = Session handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
+ <doc>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle.</line>
+ <line>lineComment to be defined</line>
+ </doc>
+ </arg>
+ <arg direction="in" name="velocity" type="u">
+ <doc>
+ <line>velocity = velocity = The remaining velocity on the y axis, in pixels per second.</line>
+ </doc>
+ </arg>
+ <arg name="error" type="i" direction="out">
+ </arg>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.OK" id="0"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_SESSION_HANDLE" id="1"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_MAP_VIEW_INSTANCE_HANDLE" id="2"/>
+ <error name="org.genivi.navigation.mapviewer.MapViewerControl.Error.INVALID_CALL_SEQUENCE" id="3"/>
+ </method>
<method name="SetMapViewRotation">
<doc>
<line>SetMapViewRotation = This method rotates the map</line>
@@ -1106,19 +1387,21 @@ cover with other windows or user interface elements</line>
<doc>
<line>GetMapViewRotation = This method is particularly interesting for debugging purposes</line>
</doc>
- <arg name="mapViewInstanceHandle" type="u" direction="in">
+ <arg direction="in" name="mapViewInstanceHandle" type="u">
<doc>
- <line>mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>mapViewInstanceHandle (of type Handle) = mapViewInstanceHandle = Map instance handle. Range[0x0:0x7fffffff]. 0x0 is reserved as an invalid handle value</line>
+ <line>lineComment to be defined</line>
</doc>
</arg>
- <arg name="rotationAngle" type="i" direction="out">
+ <arg direction="out" name="rotationAngle" type="i">
<doc>
- <line>rotationAngle = rotation angle in degrees measured from the North axis clockwise. Range[0:360]</line>
+ <line>rotationAngle = rotationAngle = rotation angle in degrees measured from the North axis clockwise if possitive</line>
+ <line>or counter clockwise if negative. Range[-179:180].</line>
</doc>
</arg>
- <arg name="rotationAnglePerFrame" type="i" direction="out">
+ <arg direction="out" name="rotationAnglePerSecond" type="i">
<doc>
- <line>rotationAnglePerFrame = partial rotation for each map frame in degrees</line>
+ <line>rotationAnglePerSecond = rotationAnglePerSecond = partial rotation angle per second</line>
</doc>
</arg>
</method>
diff --git a/api/navigation-core/genivi-navigationcore-guidance.xml b/api/navigation-core/genivi-navigationcore-guidance.xml
index 49b35af..995954c 100644
--- a/api/navigation-core/genivi-navigationcore-guidance.xml
+++ b/api/navigation-core/genivi-navigationcore-guidance.xml
@@ -130,7 +130,7 @@
<doc>
<line>array[struct(waypointOffset,travelTime,direction,side,timeZone,daylightSavingTime,isDestination,number)]</line>
<line>waypointOffset = the offset of the way point in meters from the beginning of the route</line>
- <line>travelTime = time to reach the way point in seconds</line>
+ <line>travelTime = time to reach the waypoint in seconds from the current position</line>
<line>direction = direction of the way point in degree relatively to the North. Range [0:360]</line>
<line>side = enum(LEFT,RIGHT,NOT_AVAILABLE)</line>
<line>timeZone = time zone of the way point. It is expressed as the time difference from the UTC in minutes</line>
@@ -180,6 +180,11 @@
<line>VehicleLeftTheRoadNetwork = This signal is emitted when the vehicle exits from the road network</line>
</doc>
</signal>
+ <signal name="VehicleReturnedToTheRoadNetwork">
+ <doc>
+ <line>VehicleReturnedToTheRoadNetwork = This signal is emitted when the vehicle returns to the road network</line>
+ </doc>
+ </signal>
<signal name="GuidanceStatusChanged">
<doc>
<line>GuidanceStatusChanged = This signal is emitted when the guidance status changes</line>
@@ -301,6 +306,11 @@
<line>VehicleLeftTheRoute = This signal is emitted when the vehicle has left the route</line>
</doc>
</signal>
+ <signal name="VehicleReturnedToTheRoute">
+ <doc>
+ <line>VehicleReturnedToTheRoute = This signal is emitted when the vehicle has returned to the route</line>
+ </doc>
+ </signal>
<method name="SetRouteCalculationMode">
<doc>
<line>SetRouteCalculationMode = This method configures the way the navigation application wants the navigation core to behave of reroute trigger</line>
diff --git a/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx b/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
index db18c0d..5929cba 100644
--- a/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
+++ b/src/navigation/map-viewer/mapviewercontrol-plugin/genivi_mapviewer_mapviewercontrol.cxx
@@ -119,7 +119,7 @@ class MapViewerControlObj
struct mapset *m_mapset;
uint32_t m_handle;
double m_scrolldirection, m_scrollspeed;
- double m_rotationangle, m_rotationangleperframe;
+ double m_rotationangle, m_rotationanglepersecond;
struct callback *m_postdraw_callback;
struct callback *m_move_callback;
@@ -162,8 +162,8 @@ class MapViewerControlObj
void GetTargetPoint(::DBus::Struct<double, double, double> &target);
void SetMapViewPan(uint32_t SessionHandle, int32_t panningAction, ::DBus::Struct< uint16_t, uint16_t >p);
void GetMapViewPan(const int32_t &panningAction, ::DBus::Struct< uint16_t, uint16_t > &p);
- void SetMapViewRotation(uint32_t sessionHandle, double rotationAngle, double rotationAnglePerFrame);
- void GetMapViewRotation(int32_t& rotationAngle, int32_t& rotationAnglePerFrame);
+ void SetMapViewRotation(uint32_t sessionHandle, double rotationAngle, double rotationAnglePerSecond);
+ void GetMapViewRotation(int32_t& rotationAngle, int32_t& rotationAnglePerSecond);
void SetMapViewBoundingBox(uint32_t sessionHandle, const ::DBus::Struct< ::DBus::Struct< double, double >, ::DBus::Struct< double, double > >& boundingBox);
void GetMapViewBoundingBox(::DBus::Struct< ::DBus::Struct< double, double >, ::DBus::Struct< double, double > >& boundingBox);
void GetDisplayedRoutes(std::vector< ::DBus::Struct< uint32_t, bool > >& displayedRoutes);
@@ -734,12 +734,12 @@ class MapViewerControl
}
void
- GetMapViewRotation(const uint32_t& mapViewInstanceHandle, int32_t& rotationAngle, int32_t& rotationAnglePerFrame)
+ GetMapViewRotation(const uint32_t& mapViewInstanceHandle, int32_t& rotationAngle, int32_t& rotationAnglePerSecond)
{
MapViewerControlObj *obj=handles[mapViewInstanceHandle];
if (!obj)
throw DBus::ErrorInvalidArgs("Invalid mapviewinstance handle");
- else obj->GetMapViewRotation(rotationAngle, rotationAnglePerFrame);
+ else obj->GetMapViewRotation(rotationAngle, rotationAnglePerSecond);
}
void
@@ -939,6 +939,60 @@ class MapViewerControl
}
+ int32_t MapViewRotateBegin(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const ::DBus::Struct< uint16_t, uint16_t >& anchorPoint)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewRotateUpdate(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const ::DBus::Struct< uint16_t, uint16_t >& anchorPoint, const int16_t& rotationAngle)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewRotateEnd(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const uint16_t& velocity)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewPinchBegin(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const ::DBus::Struct< uint16_t, uint16_t >& anchorPoint)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewPinchUpdate(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const ::DBus::Struct< uint16_t, uint16_t >& anchorPoint, const double& scaleFactor)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewPinchEnd(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const double& velocity)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewTiltBegin(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const ::DBus::Struct< uint16_t, uint16_t >& anchorPoint)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewTiltUpdate(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const int32_t& translation)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
+ int32_t MapViewTiltEnd(const uint32_t& sessionHandle, const uint32_t& mapViewInstanceHandle, const uint32_t& velocity)
+ {
+ throw DBus::ErrorNotSupported("Not yet supported");
+ return 0;
+ }
+
};
void
@@ -1291,27 +1345,27 @@ MapViewerControlObj::GetTargetPoint(::DBus::Struct< double, double, double >&tar
void
MapViewerControlObj::MoveMap(void)
{
- if (m_scrollspeed || m_rotationangleperframe || m_force_draw) {
+ if (m_scrollspeed || m_rotationanglepersecond || m_force_draw) {
int w,h;
double refresh_time=0.3; // Time needed to redraw map
double r=m_scrollspeed*refresh_time;
struct point p;
struct transformation *t=navit_get_trans(m_navit.u.navit);
- if (m_rotationangleperframe) {
+ if (m_rotationanglepersecond) {
int yaw=transform_get_yaw(t);
int delta=((int)(m_rotationangle+0.5)-yaw)%360;
if (delta > 180)
delta-=180;
if (delta < -180)
delta+=180;
- if (delta < 0 && delta < -m_rotationangleperframe)
- delta=-m_rotationangleperframe;
- if (delta > 0 && delta > m_rotationangleperframe)
- delta=m_rotationangleperframe;
+ if (delta < 0 && delta < -m_rotationanglepersecond)
+ delta=-m_rotationanglepersecond;
+ if (delta > 0 && delta > m_rotationanglepersecond)
+ delta=m_rotationanglepersecond;
if (delta)
transform_set_yaw(t, yaw+delta);
else
- m_rotationangleperframe=0;
+ m_rotationanglepersecond=0;
}
transform_get_size(t, &w, &h);
p.x=w/2+sin(m_scrolldirection*M_PI/180)*r;
@@ -1373,20 +1427,20 @@ MapViewerControlObj::GetMapViewPan(const int32_t& panningAction, ::DBus::Struct<
}
void
-MapViewerControlObj::SetMapViewRotation(uint32_t sessionHandle, double rotationAngle, double rotationAnglePerFrame)
+MapViewerControlObj::SetMapViewRotation(uint32_t sessionHandle, double rotationAngle, double rotationAnglePerSecond)
{
m_rotationangle=rotationAngle;
- m_rotationangleperframe=rotationAnglePerFrame;
+ m_rotationanglepersecond=rotationAnglePerSecond;
SetFollowCarMode(sessionHandle, false);
MoveMap();
}
void
-MapViewerControlObj::GetMapViewRotation(int32_t& rotationAngle, int32_t& rotationAnglePerFrame)
+MapViewerControlObj::GetMapViewRotation(int32_t& rotationAngle, int32_t& rotationAnglePerSecond)
{
rotationAngle=m_rotationangle;
- rotationAnglePerFrame=m_rotationangleperframe;
+ rotationAnglePerSecond=m_rotationanglepersecond;
}
void
diff --git a/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx b/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
index e419331..be56f53 100644
--- a/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
+++ b/src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx
@@ -116,7 +116,7 @@ class MapViewerControlObj
struct mapset *m_mapset;
uint32_t m_handle;
double m_scrolldirection, m_scrollspeed;
- double m_rotationangle, m_rotationangleperframe;
+ double m_rotationangle, m_rotationanglepersecond;
struct callback *m_postdraw_callback;
struct callback *m_move_callback;
@@ -157,8 +157,8 @@ class MapViewerControlObj
void GetTargetPoint(NavigationTypes::Coordinate3D &target);
void SetMapViewPan(NavigationTypes::Handle SessionHandle, MapViewerControl::PanAction panningAction, MapViewerControl::Pixel p);
void GetMapViewPan(const int32_t &panningAction, MapViewerControl::Pixel &p);
- void SetMapViewRotation(NavigationTypes::Handle SessionHandle, double rotationAngle, double rotationAnglePerFrame);
- void GetMapViewRotation(int32_t& rotationAngle, int32_t& rotationAnglePerFrame);
+ void SetMapViewRotation(NavigationTypes::Handle SessionHandle, double rotationAngle, double rotationAnglePerSecond);
+ void GetMapViewRotation(int32_t& rotationAngle, int32_t& _rotationAnglePerSecond);
void SetMapViewBoundingBox(NavigationTypes::Handle SessionHandle, const NavigationTypes::Rectangle& boundingBox);
void GetMapViewBoundingBox(NavigationTypes::Rectangle& boundingBox);
void GetDisplayedRoutes(std::vector<MapViewerControl::DisplayedRoute> &displayedRoutes);
@@ -848,12 +848,12 @@ class MapViewerControlServerStub : public MapViewerControlStubDefault
*/
void getMapViewRotation(const std::shared_ptr<CommonAPI::ClientId> _client, ::v4::org::genivi::navigation::NavigationTypes::Handle _mapViewInstanceHandle, getMapViewRotationReply_t _reply){
int32_t _rotationAngle=0;
- int32_t _rotationAnglePerFrame=0;
+ int32_t _rotationAnglePerSecond=0;
MapViewerControlObj *obj=mp_handles[_mapViewInstanceHandle];
if (!obj)
throw DBus::ErrorInvalidArgs("Invalid mapviewinstance handle");
- else obj->GetMapViewRotation(_rotationAngle, _rotationAnglePerFrame);
- _reply(_rotationAngle,_rotationAnglePerFrame);
+ else obj->GetMapViewRotation(_rotationAngle, _rotationAnglePerSecond);
+ _reply(_rotationAngle,_rotationAnglePerSecond);
}
/**
@@ -1434,27 +1434,27 @@ MapViewerControlObj::GetTargetPoint(NavigationTypes::Coordinate3D&target)
void
MapViewerControlObj::MoveMap(void)
{
- if (m_scrollspeed || m_rotationangleperframe || m_force_draw) {
+ if (m_scrollspeed || m_rotationanglepersecond || m_force_draw) {
int w,h;
double refresh_time=0.3; // Time needed to redraw map
double r=m_scrollspeed*refresh_time;
struct point p;
struct transformation *t=navit_get_trans(m_navit.u.navit);
- if (m_rotationangleperframe) {
+ if (m_rotationanglepersecond) {
int yaw=transform_get_yaw(t);
int delta=((int)(m_rotationangle+0.5)-yaw)%360;
if (delta > 180)
delta-=180;
if (delta < -180)
delta+=180;
- if (delta < 0 && delta < -m_rotationangleperframe)
- delta=-m_rotationangleperframe;
- if (delta > 0 && delta > m_rotationangleperframe)
- delta=m_rotationangleperframe;
+ if (delta < 0 && delta < -m_rotationanglepersecond)
+ delta=-m_rotationanglepersecond;
+ if (delta > 0 && delta > m_rotationanglepersecond)
+ delta=m_rotationanglepersecond;
if (delta)
transform_set_yaw(t, yaw+delta);
else
- m_rotationangleperframe=0;
+ m_rotationanglepersecond=0;
}
transform_get_size(t, &w, &h);
p.x=w/2+sin(m_scrolldirection*M_PI/180)*r;
@@ -1515,20 +1515,20 @@ MapViewerControlObj::GetMapViewPan(const int32_t& panningAction, MapViewerContro
}
void
-MapViewerControlObj::SetMapViewRotation(NavigationTypes::Handle SessionHandle, double rotationAngle, double rotationAnglePerFrame)
+MapViewerControlObj::SetMapViewRotation(NavigationTypes::Handle SessionHandle, double rotationAngle, double rotationAnglePerSecond)
{
m_rotationangle=rotationAngle;
- m_rotationangleperframe=rotationAnglePerFrame;
+ m_rotationanglepersecond=rotationAnglePerSecond;
SetFollowCarMode(SessionHandle, false);
MoveMap();
}
void
-MapViewerControlObj::GetMapViewRotation(int32_t& rotationAngle, int32_t& rotationAnglePerFrame)
+MapViewerControlObj::GetMapViewRotation(int32_t& rotationAngle, int32_t& _rotationAnglePerSecond)
{
rotationAngle=m_rotationangle;
- rotationAnglePerFrame=m_rotationangleperframe;
+ _rotationAnglePerSecond=m_rotationanglepersecond;
}
void