diff options
Diffstat (limited to 'test/navigation/script/test-map-viewer-control.py')
-rwxr-xr-x | test/navigation/script/test-map-viewer-control.py | 203 |
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() |