summaryrefslogtreecommitdiff
path: root/test/navigation/script-capi/test-map-viewer-control-capi.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/navigation/script-capi/test-map-viewer-control-capi.py')
-rwxr-xr-xtest/navigation/script-capi/test-map-viewer-control-capi.py177
1 files changed, 124 insertions, 53 deletions
diff --git a/test/navigation/script-capi/test-map-viewer-control-capi.py b/test/navigation/script-capi/test-map-viewer-control-capi.py
index 47da06d..4f70ca8 100755
--- a/test/navigation/script-capi/test-map-viewer-control-capi.py
+++ b/test/navigation/script-capi/test-map-viewer-control-capi.py
@@ -6,8 +6,9 @@
* SPDX-License-Identifier: MPL-2.0
*
* \copyright Copyright (C) 2015, Mentor Graphics
+* \copyright Copyright (C) 2017, PSA Group
*
-* \file test-map-viewer-control.py
+* \file test-map-viewer-control-capi.py
*
* \brief This simple test shows how the mapviewer
* could be easily tested using a python script
@@ -32,8 +33,12 @@ import gobject
import dbus.mainloop.glib
import time
from dltTrigger import *
-#import pdb
-#pdb.set_trace()
+from xml.dom.minidom import parse
+import xml.dom.minidom
+import argparse
+import sys
+import errno
+#import pdb; pdb.set_trace()
#name of the test
test_name = "map viewer"
@@ -41,6 +46,8 @@ test_name = "map viewer"
#constants as defined in the Navigation API
LATITUDE = 0x00a0
LONGITUDE = 0x00a1
+MAPVIEWER_MAX = 0x0041
+MAPVIEWER_MIN = 0x0040
MAIN_MAP = 0x0010
SPLIT_SCREEN = 0x0011
@@ -48,56 +55,123 @@ SPLIT_SCREEN = 0x0011
#constants used by the script
HORIZONTAL_SIZE = 800
VERTICAL_SIZE = 480
-TIME_OUT = 10000
-MIN_SCALE = 0
-MAX_SCALE = 21
+TIME_OUT = 20000
+INIT_SCALE=2
+TEST_STEP_START=0
+TEST_STEP_SCALE=1
+TEST_STEP_ROTATE=2
+
+# List of coordinates
+LATITUDE = list()
+LONGITUDE = list()
+ALTITUDE = list()
+COUNTRY_STRING = list()
+CITY_STRING = list()
+STREET_STRING = list()
+HOUSE_NUMBER_STRING = list()
def mapviewer_mapViewScaleChanged_handler(mapViewInstanceHandle,scale,isMinMax):
global g_scale
+ global step
new_scale=int(scale)
print("Scale: "+str(new_scale))
print('Is min max: '+str(int(isMinMax)))
- time.sleep(0.25)
- if g_scale > new_scale and new_scale !=MIN_SCALE:
- print("Zoom in")
- g_scale=new_scale
- MapViewerControl_interface.setMapViewScaleByDelta( \
- dbus.UInt32(sessionhandle), \
- dbus.UInt32(mapviewerhandle), \
- dbus.Int16(1))
- else:
- if new_scale < MAX_SCALE:
- print("Zoom out")
+ if step ==TEST_STEP_SCALE:
+ time.sleep(0.25)
+ if g_scale > new_scale and isMinMax !=MAPVIEWER_MIN:
+ print("Zoom in")
g_scale=new_scale
MapViewerControl_interface.setMapViewScaleByDelta( \
dbus.UInt32(sessionhandle), \
dbus.UInt32(mapviewerhandle), \
dbus.Int16(-1))
else:
- print 'Test PASSED'
- MapViewerControl_interface.releaseMapViewInstance( \
- dbus.UInt32(sessionhandle), \
- dbus.UInt32(mapviewerhandle))
- session_interface.deleteSession(sessionhandle)
- exit()
+ 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()
#timeout
def timeout():
- print 'Timeout Expired'
- print '\nTest FAILED'
+ print('Timeout Expired')
+ print ('\nTest FAILED')
exit()
+
def exit():
+ MapViewerControl_interface.releaseMapViewInstance( \
+ dbus.UInt32(sessionhandle), \
+ dbus.UInt32(mapviewerhandle))
+ session_interface.deleteSession(sessionhandle)
stopTrigger(test_name)
loop.quit()
-print '\n--------------------------'
-print 'MapViewerControl Test'
-print '--------------------------\n'
+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))
+ 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()
+ else:
+ if step ==TEST_STEP_ROTATE:
+ exit()
+
+print('\n--------------------------')
+print('MapViewerControl Test')
+print('--------------------------\n')
+
+parser = argparse.ArgumentParser(description='Map Viewer Test for navigation PoC and FSA.')
+parser.add_argument('-l','--loc',action='store', dest='locations', help='List of locations in xml format')
+parser.add_argument("-v", "--verbose", action='store_true',help='print the whole log messages')
+args = parser.parse_args()
+
+if args.locations == None:
+ print('location file is missing')
+ sys.exit(1)
+else:
+ try:
+ DOMTree = xml.dom.minidom.parse(args.locations)
+ except OSError as e:
+ if e.errno == errno.ENOENT:
+ print('file not exists')
+ sys.exit(1)
+ location_set = DOMTree.documentElement
+
+print("Area : %s" % location_set.getAttribute("area"))
+
+locations = location_set.getElementsByTagName("location")
+
+for location in location_set.getElementsByTagName("location"):
+ LATITUDE.append(location.getElementsByTagName("latitude")[0].childNodes[0].data)
+ LONGITUDE.append(location.getElementsByTagName("longitude")[0].childNodes[0].data)
+ ALTITUDE.append(0)
+ COUNTRY_STRING.append(location.getElementsByTagName("country")[0].childNodes[0].data)
+ CITY_STRING.append(location.getElementsByTagName("city")[0].childNodes[0].data)
+ STREET_STRING.append(location.getElementsByTagName("street")[0].childNodes[0].data)
+ HOUSE_NUMBER_STRING.append(location.getElementsByTagName("number")[0].childNodes[0].data)
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
+
#connect to session bus
bus = dbus.SessionBus()
@@ -105,21 +179,22 @@ bus.add_signal_receiver(mapviewer_mapViewScaleChanged_handler, \
dbus_interface = "org.genivi.navigation.mapviewer.MapViewerControl.v4_0", \
signal_name = "mapViewScaleChanged")
+
startTrigger(test_name)
session = bus.get_object('org.genivi.navigation.mapviewer.Session.v4_0_Session','/Session')
session_interface = dbus.Interface(session, dbus_interface='org.genivi.navigation.mapviewer.Session.v4_0')
#get session handle
-ret = session_interface.createSession(dbus.String('test mapviewer'))
+ret = session_interface.createSession(dbus.String("test mapviewer"))
sessionhandle=ret[1]
-print 'Session handle: ' + str(sessionhandle)
+print('Session handle: ' + str(sessionhandle))
sessionstatus = session_interface.getSessionStatus(dbus.UInt32(sessionhandle));
-print 'Session status: ' + str(sessionstatus)
+print ('Session status: ' + str(sessionstatus))
sessionlist = session_interface.getAllSessions();
-print 'Active sessions = ' + str(len(sessionlist))
+print( 'Active sessions = ' + str(len(sessionlist)))
MapViewerControl_obj = bus.get_object('org.genivi.navigation.mapviewer.MapViewerControl.v4_0_MapViewerControl','/MapViewerControl')
MapViewerControl_interface = dbus.Interface(MapViewerControl_obj, dbus_interface='org.genivi.navigation.mapviewer.MapViewerControl.v4_0')
@@ -131,22 +206,23 @@ ret = MapViewerControl_interface.createMapViewInstance( \
dbus.Int32(MAIN_MAP))
mapviewerhandle=ret[1]
-print 'MapView handle: ' + str(mapviewerhandle)
+print('MapView handle: ' + str(mapviewerhandle))
-# Bern
-lat1 = 46.9479
-lon1 = 7.4446
-alt1 = 0
+index=0
+
+lat1 = LATITUDE[index]
+lon1 = LONGITUDE[index]
+alt1 = ALTITUDE[index]
time.sleep(2)
-print 'Stop following the car position'
+print ('Stop following the car position')
MapViewerControl_interface.setFollowCarMode( \
dbus.UInt32(sessionhandle), \
dbus.UInt32(mapviewerhandle), \
dbus.Boolean(False))
-print 'Set center in Bern(' + str(lat1) + ',' + str(lon1) + ')'
+print('Set center in '+ CITY_STRING[index]+ ' (' + str(lat1) + ',' + str(lon1) + ')')
MapViewerControl_interface.setTargetPoint( \
dbus.UInt32(sessionhandle), \
dbus.UInt32(mapviewerhandle), \
@@ -160,16 +236,16 @@ lat2 = targetPoint[0]
lon2 = targetPoint[1]
alt2 = targetPoint[2]
-print 'Get center -> (' + str(lat2) + ',' + str(lon2) + ')'
+print ('Get center -> (' + str(lat2) + ',' + str(lon2) + ')' )
-if round(lat1,4) != round(lat2,4) :
- print '\nTest Failed:' + str(round(lat1,4)) + '!=' + str(round(lat2,4)) + '\n'
+if round(float(lat1),4) != round(float(lat2),4) :
+ print ('\nTest Failed:' + str(round(float(lat1),4)) + '!=' + str(round(float(lat2),4)) + '\n' )
-if round(lon1,4) != round(lon2,4) :
- print '\nTest Failed:' + str(round(lon1,4)) + '!=' + str(round(lon2,4)) + '\n'
+if round(float(lon1),4) != round(float(lon2),4) :
+ print('\nTest Failed:' + str(round(float(lon1),4)) + '!=' + str(round(float(lon2),4)) + '\n' )
-if round(alt1,4) != round(alt2,4) :
- print '\nTest Failed:' + str(round(alt1,4)) + '!=' + str(round(alt2,4)) + '\n'
+if round(float(alt1),4) != round(float(alt2),4) :
+ print('\nTest Failed:' + str(round(float(alt1),4)) + '!=' + str(round(float(alt2),4)) + '\n')
ret=MapViewerControl_interface.getMapViewScale(dbus.UInt32(mapviewerhandle))
print('Scale: '+str(int(ret[0])))
@@ -177,16 +253,11 @@ print('Is min max: '+str(int(ret[1])))
g_scale=int(ret[0])
-time.sleep(0.25)
-
-print 'Zoom in'
-MapViewerControl_interface.setMapViewScaleByDelta(dbus.UInt32(sessionhandle), dbus.UInt32(mapviewerhandle), dbus.Int16(1))
+step=TEST_STEP_START
+next_step()
#main loop
gobject.timeout_add(TIME_OUT, timeout)
loop = gobject.MainLoop()
loop.run()
-
-
-