summaryrefslogtreecommitdiff
path: root/test/navigation/script/test-map-viewer-control.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/navigation/script/test-map-viewer-control.py')
-rwxr-xr-xtest/navigation/script/test-map-viewer-control.py203
1 files changed, 152 insertions, 51 deletions
diff --git a/test/navigation/script/test-map-viewer-control.py b/test/navigation/script/test-map-viewer-control.py
index 5cc5515..0c278d4 100755
--- a/test/navigation/script/test-map-viewer-control.py
+++ b/test/navigation/script/test-map-viewer-control.py
@@ -6,6 +6,7 @@
* SPDX-License-Identifier: MPL-2.0
*
* \copyright Copyright (C) 2015, Mentor Graphics
+* \copyright Copyright (C) 2017, PSA GROUP
*
* \file test-map-viewer-control.py
*
@@ -47,18 +48,27 @@ LATITUDE = 0x00a0
LONGITUDE = 0x00a1
MAPVIEWER_MAX = 0x0041
MAPVIEWER_MIN = 0x0040
-
+PERSPECTIVE_TWO_D = 0x0020
+PERSPECTIVE_THREE_D = 0x0021
MAIN_MAP = 0x0010
SPLIT_SCREEN = 0x0011
#constants used by the script
HORIZONTAL_SIZE = 800
VERTICAL_SIZE = 480
-TIME_OUT = 20000
-INIT_SCALE=2
+TIME_OUT = 1000000
+INIT_SCALE=8
+SCALE_FOR_ROTATE=4
+SCALE_FOR_THREE_D=4
TEST_STEP_START=0
TEST_STEP_SCALE=1
TEST_STEP_ROTATE=2
+TEST_STEP_THREE_D=3
+SCALE_DELTA_DECREASE=-1
+SCALE_DELTA_INCREASE=1
+ROTATE_INCREMENT=5
+ROTATE_MAX=360
+ROTATE_SPEED=30
# List of coordinates
LATITUDE = list()
@@ -69,34 +79,111 @@ CITY_STRING = list()
STREET_STRING = list()
HOUSE_NUMBER_STRING = list()
-def mapviewer_mapViewScaleChanged_handler(mapViewInstanceHandle,scale,isMinMax):
+def init_test_rotate():
+ print ('Test rotate')
+ MapViewerControl_interface.SetMapViewScale( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle), \
+ dbus.UInt16(SCALE_FOR_ROTATE))
+
+def test_rotate():
+ global g_angle
+ if g_angle < (ROTATE_MAX-ROTATE_INCREMENT):
+ g_angle += ROTATE_INCREMENT
+ MapViewerControl_interface.SetMapViewRotation( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle), \
+ dbus.Int16(g_angle), \
+ dbus.Int16(ROTATE_SPEED))
+ return True
+ else:
+ print('Test rotate PASSED')
+ return False
+
+def init_test_scale():
+ print ('Test scale')
+ MapViewerControl_interface.SetMapViewScale( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle), \
+ dbus.UInt16(INIT_SCALE))
+
+def test_scale(scale,isMinMax):
global g_scale
- global step
- new_scale=int(scale)
- print("Scale: "+str(new_scale))
- print('Is min max: '+str(int(isMinMax)))
- if step ==TEST_STEP_SCALE:
- time.sleep(0.25)
- if g_scale > new_scale and isMinMax !=MAPVIEWER_MIN:
+ global g_scale_delta
+ global g_heading_angle
+ print("Scale: "+str(scale))
+ print('Is min max: '+str(isMinMax))
+ g_scale=scale
+ if g_scale_delta==SCALE_DELTA_DECREASE:
+ if isMinMax !=MAPVIEWER_MIN:
print("Zoom in")
- g_scale=new_scale
MapViewerControl_interface.SetMapViewScaleByDelta( \
dbus.UInt32(sessionhandle), \
dbus.UInt32(mapviewerhandle), \
- dbus.Int16(-1))
+ dbus.Int16(g_scale_delta))
+ return True
else:
- if isMinMax !=MAPVIEWER_MAX:
- print("Zoom out")
- g_scale=new_scale
- MapViewerControl_interface.SetMapViewScaleByDelta( \
- dbus.UInt32(sessionhandle), \
- dbus.UInt32(mapviewerhandle), \
- dbus.Int16(1))
- else:
- print('Test scale PASSED')
- next_step()
+ print("Zoom out")
+ g_scale_delta=SCALE_DELTA_INCREASE
+ MapViewerControl_interface.SetMapViewScaleByDelta( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle), \
+ dbus.Int16(g_scale_delta))
+ return True
+ else:
+ if isMinMax !=MAPVIEWER_MAX:
+ print("Zoom out")
+ MapViewerControl_interface.SetMapViewScaleByDelta( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle), \
+ dbus.Int16(g_scale_delta))
+ return True
+ else:
+ print('Test scale PASSED')
+ return False
+
-#timeout
+def init_test_three_d():
+ print('Test 3D')
+ MapViewerControl_interface.SetMapViewScale( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle), \
+ dbus.UInt16(SCALE_FOR_THREE_D))
+
+def test_three_d():
+ MapViewerControl_interface.SetMapViewPerspective(\
+ dbus.UInt32(sessionhandle),\
+ dbus.UInt32(mapviewerhandle), \
+ PERSPECTIVE_THREE_D)
+ return False
+
+def mapviewer_mapViewRotated_handler(mapViewInstanceHandle):
+ if step ==TEST_STEP_ROTATE:
+ if test_rotate()==False:
+ next_step()
+
+def mapviewer_mapViewScaleChanged_handler(mapViewInstanceHandle,scale,isMinMax):
+ global step
+ if step ==TEST_STEP_SCALE:
+ if test_scale(int(scale),int(isMinMax))==False:
+ next_step()
+ else:
+ if step == TEST_STEP_ROTATE:
+ test_rotate()
+ else:
+ if step == TEST_STEP_THREE_D:
+ test_three_d()
+
+
+def mapviewer_mapViewPerspectiveChanged_handler(mapViewInstanceHandle, perspective):
+ print("Perspective: "+str(perspective))
+ if step==TEST_STEP_THREE_D:
+ if int(perspective)==PERSPECTIVE_THREE_D:
+ print('Test 3D PASSED')
+ else:
+ print('Test 3D failed')
+ exit()
+
def timeout():
print('Timeout Expired')
print ('\nTest FAILED')
@@ -115,22 +202,16 @@ def next_step():
global step
if step == TEST_STEP_START:
step=TEST_STEP_SCALE
- print ('Test scale')
- MapViewerControl_interface.SetMapViewScale( \
- dbus.UInt32(sessionhandle), \
- dbus.UInt32(mapviewerhandle), \
- dbus.UInt16(INIT_SCALE))
+ init_test_scale()
else:
if step ==TEST_STEP_SCALE:
step=TEST_STEP_ROTATE
- print ('Test rotate')
- MapViewerControl_interface.SetMapViewScale( \
- dbus.UInt32(sessionhandle), \
- dbus.UInt32(mapviewerhandle), \
- dbus.UInt16(INIT_SCALE))
- exit()
+ init_test_rotate()
else:
if step ==TEST_STEP_ROTATE:
+ step=TEST_STEP_THREE_D
+ init_test_three_d()
+ else:
exit()
print('\n--------------------------')
@@ -178,7 +259,14 @@ bus.add_signal_receiver(mapviewer_mapViewScaleChanged_handler, \
dbus_interface = "org.genivi.navigation.mapviewer.MapViewerControl", \
signal_name = "MapViewScaleChanged")
+bus.add_signal_receiver(mapviewer_mapViewRotated_handler, \
+ dbus_interface = "org.genivi.navigation.mapviewer.MapViewerControl", \
+ signal_name = "MapViewRotated")
+bus.add_signal_receiver(mapviewer_mapViewPerspectiveChanged_handler, \
+ dbus_interface = "org.genivi.navigation.mapviewer.MapViewerControl", \
+ signal_name = "MapViewPerspectiveChanged")
+
startTrigger(test_name)
session = bus.get_object('org.genivi.navigation.mapviewer.Session','/org/genivi/mapviewer')
@@ -207,12 +295,6 @@ mapviewerhandle=ret[1]
print('MapView handle: ' + str(mapviewerhandle))
-index=0
-
-lat1 = LATITUDE[index]
-lon1 = LONGITUDE[index]
-alt1 = ALTITUDE[index]
-
time.sleep(2)
print ('Stop following the car position')
@@ -221,42 +303,61 @@ MapViewerControl_interface.SetFollowCarMode( \
dbus.UInt32(mapviewerhandle), \
dbus.Boolean(False))
+#init the target (it's the first location in the input file by default) and test
+index=0
+lat1 = LATITUDE[index]
+lon1 = LONGITUDE[index]
+alt1 = ALTITUDE[index]
print('Set center in '+ CITY_STRING[index]+ ' (' + str(lat1) + ',' + str(lon1) + ')')
MapViewerControl_interface.SetTargetPoint( \
dbus.UInt32(sessionhandle), \
dbus.UInt32(mapviewerhandle), \
dbus.Struct((dbus.Double(lat1),dbus.Double(lon1),dbus.Double(alt1))))
-
-# Get current position
targetPoint = MapViewerControl_interface.GetTargetPoint( \
dbus.UInt32(mapviewerhandle) )
-
lat2 = targetPoint[0]
lon2 = targetPoint[1]
alt2 = targetPoint[2]
-
-print ('Get center -> (' + str(lat2) + ',' + str(lon2) + ')' )
-
if round(float(lat1),4) != round(float(lat2),4) :
print ('\nTest Failed:' + str(round(float(lat1),4)) + '!=' + str(round(float(lat2),4)) + '\n' )
-
+ exit()
if round(float(lon1),4) != round(float(lon2),4) :
print('\nTest Failed:' + str(round(float(lon1),4)) + '!=' + str(round(float(lon2),4)) + '\n' )
-
+ exit()
if round(float(alt1),4) != round(float(alt2),4) :
print('\nTest Failed:' + str(round(float(alt1),4)) + '!=' + str(round(float(alt2),4)) + '\n')
+ exit()
+#init the scale
+#get the default
ret=MapViewerControl_interface.GetMapViewScale(dbus.UInt32(mapviewerhandle))
print('Scale: '+str(int(ret[0])))
print('Is min max: '+str(int(ret[1])))
+#and set it to init value
+g_scale=INIT_SCALE
+g_scale_delta=SCALE_DELTA_DECREASE
+MapViewerControl_interface.SetMapViewScale( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle), \
+ dbus.UInt16(g_scale))
+
+#wait for map refresh
+time.sleep(0.25)
-g_scale=int(ret[0])
+#init the perspective to 2D
+MapViewerControl_interface.SetMapViewPerspective(dbus.UInt32(sessionhandle),dbus.UInt32(mapviewerhandle), PERSPECTIVE_TWO_D)
+
+#init the heading angle
+MapViewerControl_interface.SetCameraHeadingAngle(dbus.UInt32(sessionhandle),dbus.UInt32(mapviewerhandle), dbus.Int32(0))
+ret=MapViewerControl_interface.GetCameraHeading(dbus.UInt32(mapviewerhandle))
+print('Heading: '+str(int(ret[1])))
+g_angle=int(ret[0])
step=TEST_STEP_START
next_step()
#main loop
-gobject.timeout_add(TIME_OUT, timeout)
+g_timer_timeout=gobject.timeout_add(TIME_OUT, timeout)
loop = gobject.MainLoop()
loop.run()