summaryrefslogtreecommitdiff
path: root/test/navigation/test-guidance.py
diff options
context:
space:
mode:
authorasanoaozora <fifitaneki@hotmail.com>2017-05-23 18:06:26 +0200
committerasanoaozora <fifitaneki@hotmail.com>2017-05-23 18:06:26 +0200
commitd74c02eaf2edf2a9911e641ab39b57f196c11fdc (patch)
tree40742d8fe588141741a06d3025a08db933147112 /test/navigation/test-guidance.py
parent312fedf2360633e7d76f9a70a17c5d4961964e34 (diff)
downloadpoi-service-d74c02eaf2edf2a9911e641ab39b57f196c11fdc.tar.gz
refine organization of test scripts
Diffstat (limited to 'test/navigation/test-guidance.py')
-rwxr-xr-xtest/navigation/test-guidance.py361
1 files changed, 0 insertions, 361 deletions
diff --git a/test/navigation/test-guidance.py b/test/navigation/test-guidance.py
deleted file mode 100755
index be44295..0000000
--- a/test/navigation/test-guidance.py
+++ /dev/null
@@ -1,361 +0,0 @@
-#!/usr/bin/python
-
-"""
-**************************************************************************
-* @licence app begin@
-* SPDX-License-Identifier: MPL-2.0
-*
-* \copyright Copyright (C) 2016, XS Embedded GmbH, PCA Peugeot Citroen
-*
-* \file test-guidance.py
-*
-* \brief This simple test shows how the guidance
-* could be easily tested using a python script
-*
-* \author Marco Residori <marco.residori@xse.de>
-* \author Philippe Colliot <philippe.colliot@mpsa.com>
-*
-* \version 1.1
-*
-* 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/.
-* List of changes:
-*
-* @licence end@
-**************************************************************************
-"""
-
-import dbus
-import gobject
-import dbus.mainloop.glib
-from collections import namedtuple,defaultdict
-from _dbus_bindings import Int32
-from PIL.GimpGradientFile import SEGMENTS
-from xml.dom.minidom import parse
-import xml.dom.minidom
-import argparse
-import sys
-import errno
-import time
-from dltTrigger import *
-#import pdb
-#pdb.set_trace()
-
-from pip import locations
-
-#name of the test
-test_name = "guidance"
-
-#constants as defined in the Navigation API
-GENIVI_NAVIGATIONCORE_LATITUDE = 0x00a0
-GENIVI_NAVIGATIONCORE_LONGITUDE = 0x00a1
-GENIVI_NAVIGATIONCORE_TOTAL_TIME = 0x018e
-GENIVI_NAVIGATIONCORE_TOTAL_DISTANCE = 0x018f
-GENIVI_NAVIGATIONCORE_ROAD_NAME = 0x0147
-GENIVI_NAVIGATIONCORE_START_LATITUDE = 0x0141
-GENIVI_NAVIGATIONCORE_END_LATITUDE = 0x0142
-GENIVI_NAVIGATIONCORE_START_LONGITUDE = 0x0143
-GENIVI_NAVIGATIONCORE_END_LONGITUDE = 0x0144
-GENIVI_NAVIGATIONCORE_DISTANCE = 0x0148
-GENIVI_NAVIGATIONCORE_TIME = 0x0149
-GENIVI_NAVIGATIONCORE_SPEED = 0x00a4
-GENIVI_NAVIGATIONCORE_ACTIVE = 0x0060
-
-#constants used into the script
-TIME_OUT = 10000
-HORIZONTAL_SIZE = 800
-VERTICAL_SIZE = 480
-MAIN_MAP = 0x0010
-NUMBER_OF_SEGMENTS = 500
-ZOOM_GUIDANCE = 2
-
-#add signal receivers
-def routing_routeCalculationProgressUpdate_handler(routeHandle, status, percentage):
- print 'Route Calculation: ' + str(int(percentage)) + ' %'
-
-def routing_routeCalculationSuccessful_handler(routeHandle,unfullfilledPreferences):
- global g_guidance_active
- print 'Route Calculation Successfull: ' + str(routeHandle)
- #get route overview
- overview = g_routing_interface.GetRouteOverview(dbus.UInt32(g_route_handle),dbus.Array([dbus.Int32(GENIVI_NAVIGATIONCORE_TOTAL_DISTANCE),dbus.Int32(GENIVI_NAVIGATIONCORE_TOTAL_TIME)]))
- #retrieve distance
- totalDistance = dbus.Struct(overview[dbus.Int32(GENIVI_NAVIGATIONCORE_TOTAL_DISTANCE)])
- print 'Total Distance: ' + str(totalDistance[1]/1000) + ' km'
- totalTime = dbus.Struct(overview[dbus.Int32(GENIVI_NAVIGATIONCORE_TOTAL_TIME)])
- m, s = divmod(totalTime[1], 60)
- h, m = divmod(m, 60)
- print "Total Time: %d:%02d:%02d" % (h, m, s)
- #get route segments GetRouteSegments(const uint32_t& routeHandle, const int16_t& detailLevel, const std::vector< DBusCommonAPIEnumeration >& valuesToReturn, const uint32_t& numberOfSegments, const uint32_t& offset, uint32_t& totalNumberOfSegments, std::vector< std::map< DBusCommonAPIEnumeration, DBusCommonAPIVariant > >& routeSegments)
- valuesToReturn = [dbus.Int32(GENIVI_NAVIGATIONCORE_ROAD_NAME),
- dbus.Int32(GENIVI_NAVIGATIONCORE_START_LATITUDE),
- dbus.Int32(GENIVI_NAVIGATIONCORE_END_LATITUDE),
- dbus.Int32(GENIVI_NAVIGATIONCORE_START_LONGITUDE),
- dbus.Int32(GENIVI_NAVIGATIONCORE_END_LONGITUDE),
- dbus.Int32(GENIVI_NAVIGATIONCORE_DISTANCE),
- dbus.Int32(GENIVI_NAVIGATIONCORE_TIME),
- dbus.Int32(GENIVI_NAVIGATIONCORE_SPEED)]
- numberOfSegments = NUMBER_OF_SEGMENTS
- detailLevel = 0
- offset = 0
- ret = g_routing_interface.GetRouteSegments(dbus.UInt32(g_route_handle),dbus.Int16(detailLevel),dbus.Array(valuesToReturn),dbus.UInt32(numberOfSegments),dbus.UInt32(offset))
- print "Total number of segments: " + str(ret[0])
- #len(ret[1]) is size
- #ret[1][0][GENIVI_NAVIGATIONCORE_START_LATITUDE] is the start latitude
- g_guidance_active = True
-# pdb.set_trace()
- display_route(routeHandle)
- launch_guidance(routeHandle)
-
-def session_sessionDeleted_handler(sessionHandle):
- print('Session handle deleted: '+str(sessionHandle))
- if sessionHandle == g_navigationcore_session_handle:
- print 'Test PASSED'
- else:
- print 'Test FAILED'
- exit()
-
-def routing_routeDeleted_handler(routeHandle):
- print('Route handle deleted: '+str(routeHandle))
-
-def guidance_guidanceStatusChanged_handler(guidanceStatus,routeHandle):
- global g_guidance_active
- print('Guidance status changed: '+str(guidanceStatus))
- if guidanceStatus != GENIVI_NAVIGATIONCORE_ACTIVE and g_guidance_active == True:
- g_guidance_active = False
- route = g_current_route + 1
- if route < routes.length:
- launch_route_calculation(route)
- else:
- for i in range(routes.length):
- g_routing_interface.DeleteRoute(dbus.UInt32(g_navigationcore_session_handle),dbus.UInt32(routes[i].getElementsByTagName("handle")[0].childNodes[0].data))
- g_navigationcore_session_interface.DeleteSession(dbus.UInt32(g_navigationcore_session_handle))
-
-def guidance_positionOnRouteChanged_handler(offsetOnRoute):
- print "Offset on route: " +str(offsetOnRoute)
-
-def guidance_maneuverChanged_handler(maneuver):
- print "Maneuver: " +str(maneuver)
- ret = g_guidance_interface.GetDestinationInformation()
- print "Travel time: " +str(ret[1])
- ret = g_guidance_interface.GetManeuversList(dbus.UInt16(10),dbus.UInt32(0))
- print "Number of maneuvers: " +str(ret[1])
- print "Next road to turn: " +str(ret[2][0][4])
- g_mapmatchedposition_interface.SetSimulationMode(dbus.UInt32(g_navigationcore_session_handle),dbus.Boolean(False))
- g_guidance_interface.StopGuidance(dbus.UInt32(g_navigationcore_session_handle))
-
-def mapmatchedposition_simulationStatusChanged_handler(simulationStatus):
- print "Simulation status: " +str(simulationStatus)
-
-#timeout
-
-def timeout():
- print 'Timeout Expired'
- print '\nTest FAILED'
- exit()
-
-def exit():
- stopTrigger(test_name)
- loop.quit()
-
-def display_route(route):
- ret = g_routing_interface.GetRouteBoundingBox(dbus.UInt32(g_route_handle))
- g_mapviewercontrol_interface.SetMapViewBoundingBox(dbus.UInt32(g_mapviewer_sessionhandle),dbus.UInt32(g_mapviewer_maphandle),ret)
- g_mapviewercontrol_interface.DisplayRoute( \
- dbus.UInt32(g_mapviewer_sessionhandle), \
- dbus.UInt32(g_mapviewer_maphandle), \
- dbus.UInt32(route), \
- dbus.Boolean(True))
-
-def launch_guidance(route):
- g_mapmatchedposition_interface.SetSimulationMode(dbus.UInt32(g_navigationcore_session_handle),dbus.Boolean(True))
- g_guidance_interface.StartGuidance(dbus.UInt32(g_navigationcore_session_handle),dbus.UInt32(route))
- g_mapviewercontrol_interface.SetFollowCarMode(dbus.UInt32(g_navigationcore_session_handle),dbus.UInt32(g_mapviewer_maphandle),True)
- g_mapviewercontrol_interface.SetMapViewScale(dbus.UInt32(g_mapviewer_sessionhandle),dbus.UInt32(g_mapviewer_maphandle),ZOOM_GUIDANCE)
- g_mapviewercontrol_interface.SetTargetPoint(dbus.UInt32(g_mapviewer_sessionhandle),\
- dbus.UInt32(g_mapviewer_maphandle),\
- dbus.Struct((\
- dbus.Double(locations[routes[g_current_route].getElementsByTagName("start")[0].childNodes[0].data][0]),\
- dbus.Double(locations[routes[g_current_route].getElementsByTagName("start")[0].childNodes[0].data][1]),\
- dbus.Double(0)\
- )))
- g_mapmatchedposition_interface.StartSimulation(g_navigationcore_session_handle)
-
-def launch_route_calculation(route):
- global g_current_route
- global g_route_handle
- global g_routing_interface
- global g_navigationcore_session_handle
- g_current_route = route
- print 'Route name: '+routes[g_current_route].getElementsByTagName("name")[0].childNodes[0].data
- #get route handle
- ret = g_routing_interface.CreateRoute(dbus.UInt32(g_navigationcore_session_handle))
- g_route_handle=ret[1]
- routes[g_current_route].getElementsByTagName("handle")[0].childNodes[0].data = g_route_handle
- print 'Route handle: ' + str(g_route_handle)
- start = routes[g_current_route].getElementsByTagName("start")[0].childNodes[0].data
- dest = routes[g_current_route].getElementsByTagName("destination")[0].childNodes[0].data
- print 'Calculating route from \
-'+start+'(' + str(locations[routes[g_current_route].getElementsByTagName("start")[0].childNodes[0].data][0]) + ',' + str(locations[routes[g_current_route].getElementsByTagName("start")[0].childNodes[0].data][1]) + ') to \
-'+dest+'(' + str(locations[routes[g_current_route].getElementsByTagName("destination")[0].childNodes[0].data][0]) + ',' + str(locations[routes[g_current_route].getElementsByTagName("destination")[0].childNodes[0].data][1]) + ')'
- #set waypoints
- waypointDoubleCapiType = 0x03
- g_routing_interface.SetWaypoints(dbus.UInt32(g_navigationcore_session_handle), \
- dbus.UInt32(g_route_handle), \
- dbus.Boolean(0), \
- dbus.Array([ \
- dbus.Dictionary({dbus.Int32(GENIVI_NAVIGATIONCORE_LATITUDE):dbus.Struct([dbus.Byte(waypointDoubleCapiType),dbus.Double(locations[routes[g_current_route].getElementsByTagName("start")[0].childNodes[0].data][0])]),dbus.Int32(GENIVI_NAVIGATIONCORE_LONGITUDE):dbus.Struct([dbus.Byte(waypointDoubleCapiType),dbus.Double(locations[routes[g_current_route].getElementsByTagName("start")[0].childNodes[0].data][1])])}), \
- dbus.Dictionary({dbus.Int32(GENIVI_NAVIGATIONCORE_LATITUDE):dbus.Struct([dbus.Byte(waypointDoubleCapiType),dbus.Double(locations[routes[g_current_route].getElementsByTagName("destination")[0].childNodes[0].data][0])]),dbus.Int32(GENIVI_NAVIGATIONCORE_LONGITUDE):dbus.Struct([dbus.Byte(waypointDoubleCapiType),dbus.Double(locations[routes[g_current_route].getElementsByTagName("destination")[0].childNodes[0].data][1])])}) \
- ]) \
- )
-
- #calculate route
- g_routing_interface.CalculateRoute(dbus.UInt32(g_navigationcore_session_handle),dbus.UInt32(g_route_handle))
-
-def createMapView():
- global g_mapviewer_sessionhandle
- global g_mapviewer_sessionstatus
- global g_mapviewer_sessionlist
- global g_mapviewer_maphandle
-
- #get mapviewer session handle
- ret = g_mapviewer_session_interface.CreateSession(dbus.String('test mapviewer'))
- g_mapviewer_sessionhandle=ret[1]
- print 'Mapviewer session handle: ' + str(g_mapviewer_sessionhandle)
-
- g_mapviewer_sessionstatus = g_mapviewer_session_interface.GetSessionStatus(dbus.UInt32(g_mapviewer_sessionhandle));
- print 'Mapviewer session status: ' + str(g_mapviewer_sessionstatus)
-
- g_mapviewer_sessionlist = g_mapviewer_session_interface.GetAllSessions();
- print 'Mapviewer active sessions = ' + str(len(g_mapviewer_sessionlist))
-
- #get mapviewer handle
- ret = g_mapviewercontrol_interface.CreateMapViewInstance( \
- dbus.UInt32(g_mapviewer_sessionhandle), \
- dbus.Struct((dbus.UInt16(HORIZONTAL_SIZE),dbus.UInt16(VERTICAL_SIZE))), \
- dbus.Int32(MAIN_MAP))
- g_mapviewer_maphandle=ret[1]
-
- print 'MapView handle: ' + str(g_mapviewer_maphandle)
-
- time.sleep(2)
-
- print 'Stop following the car position'
- g_mapviewercontrol_interface.SetFollowCarMode( \
- dbus.UInt32(g_mapviewer_sessionhandle), \
- dbus.UInt32(g_mapviewer_maphandle), \
- dbus.Boolean(False))
-
-def deleteMapView():
- g_mapviewercontrol_interface.ReleaseMapViewInstance( \
- dbus.UInt32(g_mapviewer_sessionhandle), \
- dbus.UInt32(g_mapviewer_maphandle))
-
- g_mapviewer_session_interface.DeleteSession(g_mapviewer_sessionhandle)
-
-
-print('--------------------------')
-print('Guidance Test')
-print('--------------------------')
-
-parser = argparse.ArgumentParser(description='Route Calculation Test for navigation PoC and FSA.')
-parser.add_argument('-r','--rou',action='store', dest='routes', help='List of routes in xml format')
-args = parser.parse_args()
-
-if args.routes == None:
- print('route file is missing')
- sys.exit(1)
-else:
- try:
- DOMTree = xml.dom.minidom.parse(args.routes)
- except OSError as e:
- if e.errno == errno.ENOENT:
- print('file not exists')
- sys.exit(1)
- route_set = DOMTree.documentElement
-
-print("Country : %s" % route_set.getAttribute("country"))
-
-routes = route_set.getElementsByTagName("route")
-
-#create dictionary with the locations
-locations = {}
-for location in route_set.getElementsByTagName("location"):
- lat_long = [location.getElementsByTagName("latitude")[0].childNodes[0].data,location.getElementsByTagName("longitude")[0].childNodes[0].data]
- locations[location.getAttribute("name")] = lat_long
-
-if __name__ == '__main__':
- dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
-
-#connect to session bus
-bus = dbus.SessionBus()
-
-bus.add_signal_receiver(routing_routeCalculationProgressUpdate_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.Routing", \
- signal_name = "RouteCalculationProgressUpdate")
-
-bus.add_signal_receiver(routing_routeCalculationSuccessful_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.Routing", \
- signal_name = "RouteCalculationSuccessful")
-
-bus.add_signal_receiver(routing_routeDeleted_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.Routing", \
- signal_name = "RouteDeleted")
-
-bus.add_signal_receiver(session_sessionDeleted_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.Session", \
- signal_name = "SessionDeleted")
-
-bus.add_signal_receiver(guidance_guidanceStatusChanged_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.Guidance", \
- signal_name = "GuidanceStatusChanged")
-
-bus.add_signal_receiver(guidance_positionOnRouteChanged_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.Guidance", \
- signal_name = "PositionOnRouteChanged")
-
-bus.add_signal_receiver(guidance_maneuverChanged_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.Guidance", \
- signal_name = "ManeuverChanged")
-
-bus.add_signal_receiver(mapmatchedposition_simulationStatusChanged_handler, \
- dbus_interface = "org.genivi.navigation.navigationcore.MapMatchedPosition", \
- signal_name = "SimulationStatusChanged")
-
-startTrigger(test_name)
-
-navigationcore_session_obj = bus.get_object('org.genivi.navigation.navigationcore.Session','/org/genivi/navigationcore')
-g_navigationcore_session_interface = dbus.Interface(navigationcore_session_obj, dbus_interface='org.genivi.navigation.navigationcore.Session')
-
-routing_obj = bus.get_object('org.genivi.navigation.navigationcore.Routing','/org/genivi/navigationcore')
-g_routing_interface = dbus.Interface(routing_obj, dbus_interface='org.genivi.navigation.navigationcore.Routing')
-
-guidance_obj = bus.get_object('org.genivi.navigation.navigationcore.Guidance','/org/genivi/navigationcore')
-g_guidance_interface = dbus.Interface(guidance_obj, dbus_interface='org.genivi.navigation.navigationcore.Guidance')
-
-mapviewer_session_obj = bus.get_object('org.genivi.navigation.mapviewer.Session','/org/genivi/mapviewer')
-g_mapviewer_session_interface = dbus.Interface(mapviewer_session_obj, dbus_interface='org.genivi.navigation.mapviewer.Session')
-
-g_mapviewercontrol_obj = bus.get_object('org.genivi.navigation.mapviewer.MapViewerControl','/org/genivi/mapviewer')
-g_mapviewercontrol_interface = dbus.Interface(g_mapviewercontrol_obj, dbus_interface='org.genivi.navigation.mapviewer.MapViewerControl')
-
-g_mapmatchedposition_obj = bus.get_object('org.genivi.navigation.navigationcore.MapMatchedPosition','/org/genivi/navigationcore')
-g_mapmatchedposition_interface = dbus.Interface(g_mapmatchedposition_obj, dbus_interface='org.genivi.navigation.navigationcore.MapMatchedPosition')
-
-#get navigationcore session handle
-ret = g_navigationcore_session_handle = g_navigationcore_session_interface.CreateSession(dbus.String("test guidance"))
-g_navigationcore_session_handle=ret[1]
-print 'Navigation core session handle: ' + str(g_navigationcore_session_handle)
-
-createMapView()
-
-g_current_route = 0
-g_guidance_active = False
-launch_route_calculation(0)
-
-#main loop
-gobject.timeout_add(TIME_OUT, timeout)
-loop = gobject.MainLoop()
-loop.run()
-
-#deleteMapView()