diff options
author | asanoaozora <fifitaneki@hotmail.com> | 2016-08-06 10:59:54 +0200 |
---|---|---|
committer | asanoaozora <fifitaneki@hotmail.com> | 2016-08-06 10:59:54 +0200 |
commit | 533149d90c1dc3970a2299bb633f1c3c8afc4c11 (patch) | |
tree | 3a4729f5a1cd80bf0178faefa7ee0e27e76a385f | |
parent | 7f214ad407820a8cee50b41642551a8ffe46c85d (diff) | |
download | poi-service-533149d90c1dc3970a2299bb633f1c3c8afc4c11.tar.gz |
CommonAPI: map viewer plugin OK
11 files changed, 289 insertions, 77 deletions
diff --git a/src/navigation/CMakeLists.txt b/src/navigation/CMakeLists.txt index 13eb1ae..bb599cc 100644 --- a/src/navigation/CMakeLists.txt +++ b/src/navigation/CMakeLists.txt @@ -144,8 +144,6 @@ add_subdirectory(navigation-core) add_subdirectory(map-viewer) -add_subdirectory(poi-cam) - if (NOT WITH_PLUGIN_MIGRATION) -# add_subdirectory(poi-cam) + add_subdirectory(poi-cam) endif() diff --git a/src/navigation/commonapi-dbus.ini b/src/navigation/commonapi-dbus.ini new file mode 100644 index 0000000..2541d48 --- /dev/null +++ b/src/navigation/commonapi-dbus.ini @@ -0,0 +1,45 @@ +[local:org.genivi.navigation.navigationcore.Configuration:Configuration] +service=org.genivi.navigation.navigationcore +path=/org/genivi/navigation/navigationcore/Configuration +interface=org.genivi.navigation.navigationcore.Configuration +[local:org.genivi.navigation.navigationcore.Guidance:Guidance] +service=org.genivi.navigation.navigationcore +path=/org/genivi/navigation/navigationcore/Guidance +interface=org.genivi.navigation.navigationcore.Guidance +[local:org.genivi.navigation.navigationcore.LocationInput:LocationInput] +service=org.genivi.navigation.navigationcore +path=/org/genivi/navigation/navigationcore/LocationInput +interface=org.genivi.navigation.navigationcore.LocationInput +[local:org.genivi.navigation.navigationcore.MapMatchedPosition:MapMatchedPosition] +service=org.genivi.navigation.navigationcore +path=/org/genivi/navigation/navigationcore/MapMatchedPosition +interface=org.genivi.navigation.navigationcore.MapMatchedPosition +[local:org.genivi.navigation.navigationcore.Routing:Routing] +service=org.genivi.navigation.navigationcore +path=/org/genivi/navigation/navigationcore/Routing +interface=org.genivi.navigation.navigationcore.Routing +[local:org.genivi.navigation.navigationcore.Session:Session] +service=org.genivi.navigation.navigationcore +path=/org/genivi/navigation/navigationcore/Session +interface=org.genivi.navigation.navigationcore.Session +[local:org.genivi.navigation.poiservice.POIContentAccessModule:POIContentAccessModuleService] +service=org.genivi.navigation.poiservice +path=/org/genivi/navigation/poiservice/POIContentAccessModule +interface=org.genivi.navigation.poiservice.POIContentAccessModule +[local:org.genivi.navigation.poiservice.POIContentAccess:POIContentAccessService] +service=org.genivi.navigation.poiservice +path=/org/genivi/navigation/poiservice/POIContentAccess +interface=org.genivi.navigation.poiservice.POIContentAccess +[local:org.genivi.navigation.mapviewer.Configuration:Configuration] +service=org.genivi.navigation.mapviewer +path=/org/genivi/navigation/mapviewer/Configuration +interface=org.genivi.navigation.mapviewer.Configuration +[local:org.genivi.navigation.mapviewer.MapViewerControl:MapViewerControl] +service=org.genivi.navigation.mapviewer +path=/org/genivi/navigation/mapviewer/MapViewerControl +interface=org.genivi.navigation.mapviewer.MapViewerControl +[local:org.genivi.navigation.mapviewer.Session:Session] +service=org.genivi.navigation.mapviewer +path=/org/genivi/navigation/mapviewer/Session +interface=org.genivi.navigation.mapviewer.Session + diff --git a/src/navigation/commonapi4dbus.ini b/src/navigation/commonapi4dbus.ini new file mode 100644 index 0000000..1e5b30b --- /dev/null +++ b/src/navigation/commonapi4dbus.ini @@ -0,0 +1,4 @@ +[default] +binding=dbus + + diff --git a/src/navigation/map-viewer/CMakeLists.txt b/src/navigation/map-viewer/CMakeLists.txt index e176cc3..ad8194d 100644 --- a/src/navigation/map-viewer/CMakeLists.txt +++ b/src/navigation/map-viewer/CMakeLists.txt @@ -89,15 +89,11 @@ if(${YOCTO_CONFIG}) include_directories(${STAGING_INCDIR}/navit) endif() -add_subdirectory(configuration-plugin) -add_subdirectory(mapviewercontrol-plugin) -add_subdirectory(session-plugin) - if (WITH_PLUGIN_MIGRATION) set(FRANCA_DIR "${API_DIR}/franca") -# add_subdirectory(configuration-server-plugin) -# add_subdirectory(mapviewercontrol-server-plugin) -# add_subdirectory(session-server-plugin) + add_subdirectory(configuration-server-plugin) + add_subdirectory(mapviewercontrol-server-plugin) + add_subdirectory(session-server-plugin) else() add_subdirectory(configuration-plugin) add_subdirectory(mapviewercontrol-plugin) 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 24f6534..fd87ab4 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 @@ -115,12 +115,13 @@ class MapViewerControlObj bool m_force_draw; MapViewerControl::MapPerspective m_perspective; bool m_follow_car; - MapViewerControlServerStub *m_mapviewercontrol; + MapViewerControlServerStub *mp_mapviewercontrol; std::vector<DisplayedRoute *> m_displayed_routes; - MapMatchedPositionClientProxy *m_mapmatchedposition; - RoutingClientProxy *m_routing; - struct point m_pan; + MapMatchedPositionClientProxy *mp_mapMatchedPositionClientProxy; + RoutingClientProxy* mp_routingClientProxy; + struct point m_pan; int m_pan_action; + void MoveMap(void); void SetFollowCarMode(NavigationTypes::Handle SessionHandle, bool active); void GetFollowCarMode(bool& active); @@ -188,9 +189,10 @@ class MapMatchedPositionClientProxy { myServiceMapMatchedPosition = runtime->buildProxy<MapMatchedPositionProxy>(domain, instance); - while (!myServiceMapMatchedPosition->isAvailable()) { - usleep(10); - } +// not working correctly (blocked) so removed for the moment +// while (!myServiceRouting->isAvailable()) { +// usleep(10); +// } } void setListeners() @@ -204,6 +206,7 @@ class MapMatchedPositionClientProxy event_add_timeout(0, 0, mp_callback); } }; + static void positionVehicleNavitUpdate(std::shared_ptr<MapMatchedPositionProxyDefault> pos, struct vehicle *v) { std::vector< MapMatchedPosition::PositionItemKey > valuesToReturn; @@ -250,10 +253,10 @@ class RoutingClientProxy RoutingClientProxy(const std::string & domain, const std::string & instance) { myServiceRouting = runtime->buildProxy<RoutingProxy>(domain, instance); - - while (!myServiceRouting->isAvailable()) { - usleep(10); - } +// not working correctly (blocked) so removed for the moment +// while (!myServiceRouting->isAvailable()) { +// usleep(10); +// } } void connectToMapViewer(MapViewerControlObj *obj) @@ -305,27 +308,29 @@ class NavigationCoreSessionClientProxy { myServiceNavigationCoreSession = runtime->buildProxy<SessionProxy>(domain, instance); - while (!myServiceNavigationCoreSession->isAvailable()) { - usleep(10); - } +// not working correctly (blocked) so removed for the moment +// while (!myServiceRouting->isAvailable()) { +// usleep(10); +// } } }; -static MapMatchedPositionClientProxy* mp_mapMatchedPositionClientProxy; -static RoutingClientProxy* mp_routingClientProxy; static NavigationCoreSessionClientProxy* mp_navigationCoreSessionClientProxy; class MapViewerControlServerStub : public MapViewerControlStubDefault { public: #define MAX_SESSION_HANDLE 256 +#define FIRST_SESSION_HANDLE 1 MapViewerControlServerStub() { + mp_handles[FIRST_SESSION_HANDLE]=NULL; m_version.setVersionMajor(3); m_version.setVersionMinor(0); m_version.setVersionMicro(0); m_version.setDate("21-01-2014"); + } /** @@ -344,12 +349,12 @@ class MapViewerControlServerStub : public MapViewerControlStubDefault dbg(lvl_debug,"enter\n"); if (_mapViewType != MapViewerControl::MapViewType::MAIN_MAP) throw DBus::ErrorInvalidArgs("Unsupported mapViewType"); - NavigationTypes::Handle _mapViewInstanceHandle=1; - while (mp_handles[_mapViewInstanceHandle]) { + NavigationTypes::Handle _mapViewInstanceHandle=FIRST_SESSION_HANDLE; + while ((mp_handles.count(_mapViewInstanceHandle)>0 ) && (mp_handles[_mapViewInstanceHandle] != NULL)) { _mapViewInstanceHandle++; if (_mapViewInstanceHandle == MAX_SESSION_HANDLE) throw DBus::ErrorLimitsExceeded("Out of mapviewinstance handles"); - } + } mp_handles[_mapViewInstanceHandle]=new MapViewerControlObj(this, _mapViewInstanceHandle, _mapViewSize); _reply(_mapViewInstanceHandle); } @@ -360,11 +365,16 @@ class MapViewerControlServerStub : public MapViewerControlStubDefault */ void releaseMapViewInstance(const std::shared_ptr<CommonAPI::ClientId> _client, ::v4::org::genivi::navigation::NavigationTypes::Handle _sessionHandle, ::v4::org::genivi::navigation::NavigationTypes::Handle _mapViewInstanceHandle, releaseMapViewInstanceReply_t _reply) { - MapViewerControlObj *obj=mp_handles[_mapViewInstanceHandle]; - if (!obj) - throw DBus::ErrorInvalidArgs("Invalid mapviewinstance handle"); - delete(obj); - mp_handles[_mapViewInstanceHandle]=NULL; + if (mp_handles.find(_mapViewInstanceHandle) != mp_handles.end()) + { + MapViewerControlObj *obj=mp_handles[_mapViewInstanceHandle]; + delete(obj); + mp_handles[_mapViewInstanceHandle]=NULL; + } + else { + throw DBus::ErrorInvalidArgs("Invalid mapviewinstance handle"); + } + _reply(); } @@ -1489,6 +1499,13 @@ void MapViewerControlObj::DisplayRoute(NavigationTypes::Handle SessionHandle, NavigationTypes::Handle RouteHandle, bool highlighted) { HideRoute(SessionHandle, RouteHandle); + + if (m_navigationcore_session == NavigationTypes::BasicEnum::INVALID) + { + CommonAPI::CallStatus status; + mp_navigationCoreSessionClientProxy->myServiceNavigationCoreSession->createSession(std::string("MapViewerControl"),status,m_navigationcore_session); + } + DisplayedRoute *route=new DisplayedRoute(this,m_navigationcore_session,RouteHandle,m_mapset); route->Show(); m_displayed_routes.push_back(route); @@ -1599,7 +1616,7 @@ class RoutingClientProxy; MapViewerControlObj::MapViewerControlObj(MapViewerControlServerStub *mapviewercontrol, NavigationTypes::Handle handle, const MapViewerControl::Dimension &MapViewSize) { - m_mapviewercontrol=mapviewercontrol; + mp_mapviewercontrol=mapviewercontrol; m_handle=handle; m_navit.type=attr_navit; m_scrollspeed=0; @@ -1608,13 +1625,13 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControlServerStub *mapviewerco m_perspective=MapViewerControl::MapPerspective::PERSPECTIVE_2D; m_follow_car=true; + m_navigationcore_session = NavigationTypes::BasicEnum::INVALID; //init the routing client const std::string domain = "local"; const std::string instanceRouting = "Routing"; mp_routingClientProxy = new RoutingClientProxy(domain,instanceRouting); mp_routingClientProxy->setListeners(); mp_routingClientProxy->connectToMapViewer(this); - struct attr navit_template; struct attr navit_flags={attr_flags};navit_flags.u.num=2; struct attr *navit_attrs[]={&navit_flags,NULL}; @@ -1627,7 +1644,7 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControlServerStub *mapviewerco dbg(lvl_debug,"failed to create new navit instance\n"); return; } - const char *graphics=getenv("NAVIT_GRAPHICS"); + const char *graphics=getenv("NAVIT_GRAPHICS"); if (!graphics) graphics="gtk_drawing_area"; struct attr graphics_type={attr_type};graphics_type.u.str=(char *)graphics; @@ -1637,13 +1654,13 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControlServerStub *mapviewerco struct attr *graphics_attrs[]={&graphics_type,&graphics_w,&graphics_h,&graphics_window_title,NULL}; m_graphics.type=attr_graphics; m_graphics.u.graphics=graphics_new(&m_navit,graphics_attrs); - g_free(graphics_window_title.u.str); + g_free(graphics_window_title.u.str); if (!m_graphics.u.graphics) { dbg(lvl_debug,"failed to create new graphics\n"); return; } - m_postdraw_callback=callback_new_attr_1(reinterpret_cast<void (*)(void)>(MapViewerControlObj_PostDraw), attr_postdraw, this); + m_postdraw_callback=callback_new_attr_1(reinterpret_cast<void (*)(void)>(MapViewerControlObj_PostDraw), attr_postdraw, this); m_move_callback=callback_new_1(reinterpret_cast<void (*)(void)>(MapViewerControlObj_MoveMap), this); graphics_add_callback(m_graphics.u.graphics, m_postdraw_callback); navit_add_attr(m_navit.u.navit, &m_graphics); @@ -1653,7 +1670,7 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControlServerStub *mapviewerco dbg(lvl_debug,"failed to get mapset\n"); return; } - mapset.u.mapset=mapset_dup(mapset.u.mapset); + mapset.u.mapset=mapset_dup(mapset.u.mapset); m_mapset=mapset.u.mapset; navit_add_attr(m_navit.u.navit, &mapset); @@ -1678,7 +1695,6 @@ MapViewerControlObj::MapViewerControlObj(MapViewerControlServerStub *mapviewerco mp_mapMatchedPositionClientProxy->setListeners(); mp_mapMatchedPositionClientProxy->connectToMapViewer(this); mp_mapMatchedPositionClientProxy->connectToVehicle(m_vehicle.u.vehicle); - navit_init(m_navit.u.navit); graphics_get_data(m_graphics.u.graphics,"window"); struct transformation *trans=navit_get_trans(m_navit.u.navit); @@ -1760,8 +1776,8 @@ MapViewerControlObj::~MapViewerControlObj() vehicle_destroy(m_vehicle.u.vehicle); #endif navit_destroy(m_navit.u.navit); - delete(m_routing); - delete(m_mapmatchedposition); + delete(mp_routingClientProxy); + delete(mp_mapMatchedPositionClientProxy); } uint32_t @@ -1851,7 +1867,7 @@ DisplayedRoute::DisplayedRoute(class MapViewerControlObj *mapviewer, uint8_t Rou m_shown=false; uint32_t totalNumberOfSegments; CommonAPI::CallStatus status; - mapviewer->m_routing->myServiceRouting->getRouteSegments(RouteHandle, 1, valuesToReturn, 0xffffffff, 0, status,totalNumberOfSegments, RouteShape); + mapviewer->mp_routingClientProxy->myServiceRouting->getRouteSegments(RouteHandle, 1, valuesToReturn, 0xffffffff, 0, status,totalNumberOfSegments, RouteShape); m_filename=g_strdup_printf("/tmp/genivi_route_map_%d_%d.bin",mapviewer->m_handle,RouteHandle); FILE *f=fopen(m_filename,"w"); int count=RouteShape.size(); @@ -1912,12 +1928,9 @@ plugin_init(void) } //init the session client - const std::string instanceNavigationCoreSession = "NavigationCoreSession"; + const std::string instanceNavigationCoreSession = "Session"; mp_navigationCoreSessionClientProxy = new NavigationCoreSessionClientProxy(domain,instanceNavigationCoreSession); - CommonAPI::CallStatus status; - mp_navigationCoreSessionClientProxy->myServiceNavigationCoreSession->createSession(std::string("MapViewerControl"),status,m_navigationcore_session); - #if LM if (ilm_init() != ILM_SUCCESS) { dbg(lvl_error,"error on ilm_init\n"); diff --git a/src/navigation/navigation-core/CMakeLists.txt b/src/navigation/navigation-core/CMakeLists.txt index 5f8e679..d6b08c9 100644 --- a/src/navigation/navigation-core/CMakeLists.txt +++ b/src/navigation/navigation-core/CMakeLists.txt @@ -89,9 +89,6 @@ if(${YOCTO_CONFIG}) include_directories(${STAGING_INCDIR}/navit) endif() - -add_subdirectory(enhancedposition-plugin) - if (WITH_PLUGIN_MIGRATION) set(FRANCA_DIR "${API_DIR}/franca") add_subdirectory(configuration-server-plugin) @@ -100,8 +97,8 @@ if (WITH_PLUGIN_MIGRATION) add_subdirectory(mapmatchedposition-server-plugin) add_subdirectory(routing-server-plugin) add_subdirectory(session-server-plugin) -# add_subdirectory(poicam-server-plugin) -# add_subdirectory(enhancedposition-client-plugin) + add_subdirectory(poicam-server-plugin) + add_subdirectory(enhancedposition-client-plugin) else() add_subdirectory(configuration-plugin) add_subdirectory(locationinput-plugin) diff --git a/src/navigation/navigation-core/enhancedposition-client-plugin/genivi_positioning_enhancedposition.cxx b/src/navigation/navigation-core/enhancedposition-client-plugin/genivi_positioning_enhancedposition.cxx index d7c592d..583432a 100644 --- a/src/navigation/navigation-core/enhancedposition-client-plugin/genivi_positioning_enhancedposition.cxx +++ b/src/navigation/navigation-core/enhancedposition-client-plugin/genivi_positioning_enhancedposition.cxx @@ -89,9 +89,10 @@ class EnhancedPositionClientProxy { myServiceEnhancedPosition = runtime->buildProxy<EnhancedPositionProxy>(domain, instance); - while (!myServiceEnhancedPosition->isAvailable()) { - usleep(10); - } +// not working correctly (blocked) so removed for the moment +// while (!myServiceEnhancedPosition->isAvailable()) { +// usleep(10); +// } } void connectToVehicle(struct vehicle_priv *priv) @@ -203,6 +204,7 @@ static int vehicle_enhancedposition_position_attr_get(struct vehicle_priv *priv, static int vehicle_enhancedposition_set_attr(struct vehicle_priv *priv, struct attr *attr) { dbg(lvl_debug, "enter\n"); + return 1; } // navit plugin callbacks @@ -212,16 +214,6 @@ struct vehicle_methods vehicle_enhancedposition_methods = { vehicle_enhancedposition_set_attr, }; -static double -double_variant(DBus::Variant variant) -{ - double d; - DBus::MessageIter iter=variant.reader(); - iter >> d; - return d; -} - - static void vehicle_process_map(struct vehicle_priv *priv, EnhancedPositionServiceTypes::PositionInfo& map) { @@ -278,7 +270,6 @@ vehicle_enhancedposition_new(struct vehicle_methods *meth, *meth=vehicle_enhancedposition_methods; ret = g_new0(struct vehicle_priv, 1); - //init the enhanced position service client const std::string domain = "local"; const std::string instanceEnhancedposition = "Enhancedposition"; @@ -287,7 +278,7 @@ vehicle_enhancedposition_new(struct vehicle_methods *meth, ret->enhanced_position->connectToVehicle(ret); ret->cb=callback_new_1(callback_cast(vehicle_enhancedposition_callback), ret); - ret->cbl=cbl; + ret->cbl=cbl; return ret; } @@ -296,5 +287,8 @@ void plugin_init(void) { event_request_system("glib","genivi_navigationcore_enhpos"); + // Common API data init + runtime = CommonAPI::Runtime::get(); + plugin_register_vehicle_type("enhancedposition", vehicle_enhancedposition_new); } diff --git a/src/navigation/navigation-core/navit_genivi_navigationcore_capi.xsl b/src/navigation/navigation-core/navit_genivi_navigationcore_capi.xsl index 68cd29d..3a8b869 100644 --- a/src/navigation/navigation-core/navit_genivi_navigationcore_capi.xsl +++ b/src/navigation/navigation-core/navit_genivi_navigationcore_capi.xsl @@ -35,9 +35,9 @@ <xsl:text>
 </xsl:text> <plugin path="../../navigation-core/mapmatchedposition-server-plugin/.libs/libgenivi_navigationcore_mapmatchedposition_server.so" ondemand="no"/> <xsl:text>
 </xsl:text> - <plugin path="../../navigation-core/enhancedposition-plugin/.libs/libgenivi_positioning_enhancedposition.so" ondemand="no"/> + <plugin path="../../navigation-core/poicam-server-plugin/.libs/libgenivi_poiservice_cam_server.so" ondemand="no"/> <xsl:text>
 </xsl:text> - <plugin path="../../poi-cam/.libs/libgenivi_poiservice_cam_navit.so" ondemand="no"/> + <plugin path="../../navigation-core/enhancedposition-client-plugin/.libs/libgenivi_positioning_enhancedposition_client.so" ondemand="no"/> </xsl:template> <xsl:template match="/config/plugins/plugin"> <xsl:copy><xsl:apply-templates select="@*|node()"/></xsl:copy> diff --git a/src/navigation/navigation-core/poicam-server-plugin/genivi_poiservice_cam_navit.cxx b/src/navigation/navigation-core/poicam-server-plugin/genivi_poiservice_cam_navit.cxx index 13b43d8..55ab977 100644 --- a/src/navigation/navigation-core/poicam-server-plugin/genivi_poiservice_cam_navit.cxx +++ b/src/navigation/navigation-core/poicam-server-plugin/genivi_poiservice_cam_navit.cxx @@ -436,15 +436,13 @@ plugin_init(void) std::this_thread::sleep_for(std::chrono::milliseconds(100)); successfullyRegistered = runtime->registerService(domain, instancePOIContentAccessModule, myServicePOIContentAccessModule); } - const std::string instancePOIContentAccess = "POIContentAccess"; - myServicePOIContentAccess = runtime->buildProxy<POIContentAccessProxy>(domain, instancePOIContentAccess); - while (!myServicePOIContentAccess->isAvailable()) { - usleep(10); - } - - myServicePOIContentAccessModule->register_cam(); + // not working correctly (blocked) so removed for the moment +// while (!myServicePOIContentAccess->isAvailable()) { +// usleep(10); +// } + myServicePOIContentAccessModule->register_cam(); } diff --git a/test/navigation/test-map-viewer-control-capi.py b/test/navigation/test-map-viewer-control-capi.py new file mode 100755 index 0000000..09f3500 --- /dev/null +++ b/test/navigation/test-map-viewer-control-capi.py @@ -0,0 +1,163 @@ +#!/usr/bin/python + +""" +************************************************************************** +* @licence app begin@ +* SPDX-License-Identifier: MPL-2.0 +* +* \copyright Copyright (C) 2015, Mentor Graphics +* +* \file test-map-viewer-control.py +* +* \brief This simple test shows how the mapviewer +* could be easily tested using a python script +* +* \author Marco Residori <marco.residori@mentor_graphics.com> +* \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: +* 04-02-2016, Philippe Colliot, Update to the new API ('i' for enumerations and 'yv' for variants), add some methods +* +* @licence end@ +************************************************************************** +""" + +import dbus +import gobject +import time + +#import pdb; pdb.set_trace() + +#constants as defined in the Navigation API +LATITUDE = 0x00a0 +LONGITUDE = 0x00a1 + +MAIN_MAP = 0x0010 +SPLIT_SCREEN = 0x0011 + +#constants used by the script +HORIZONTAL_SIZE = 800 +VERTICAL_SIZE = 480 + +print '\n--------------------------' +print 'MapViewerControl Test' +print '--------------------------\n' + +#connect to session bus +bus = dbus.SessionBus() + +session = bus.get_object('org.genivi.navigation.mapviewer.Session_Session','/Session') +session_interface = dbus.Interface(session, dbus_interface='org.genivi.navigation.mapviewer.Session') + +#get session handle +sessionhandle = session_interface.createSession(dbus.String('test mapviewer')) +print 'Session handle: ' + str(sessionhandle) + +sessionstatus = session_interface.getSessionStatus(dbus.UInt32(sessionhandle)); +print 'Session status: ' + str(sessionstatus) + +sessionlist = session_interface.getAllSessions(); +print 'Active sessions = ' + str(len(sessionlist)) + +MapViewerControl_obj = bus.get_object('org.genivi.navigation.mapviewer.MapViewerControl_MapViewerControl','/MapViewerControl') +MapViewerControl_interface = dbus.Interface(MapViewerControl_obj, dbus_interface='org.genivi.navigation.mapviewer.MapViewerControl') + +#get mapviewer handle +mapviewerhandle = MapViewerControl_interface.createMapViewInstance( \ + dbus.UInt32(sessionhandle), \ + dbus.Struct((dbus.UInt16(HORIZONTAL_SIZE),dbus.UInt16(VERTICAL_SIZE))), \ + dbus.Int32(MAIN_MAP)) + +print 'MapView handle: ' + str(mapviewerhandle) + +# Bern +lat1 = 46.9479 +lon1 = 7.4446 +alt1 = 0 + +time.sleep(2) + +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) + ')' +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(lat1,4) != round(lat2,4) : + print '\nTest Failed:' + str(round(lat1,4)) + '!=' + str(round(lat2,4)) + '\n' + +if round(lon1,4) != round(lon2,4) : + print '\nTest Failed:' + str(round(lon1,4)) + '!=' + str(round(lon2,4)) + '\n' + +if round(alt1,4) != round(alt2,4) : + print '\nTest Failed:' + str(round(alt1,4)) + '!=' + str(round(alt2,4)) + '\n' + +time.sleep(1) + +print 'Zoom in' +MapViewerControl_interface.setMapViewScaleByDelta( \ + dbus.UInt32(sessionhandle), \ + dbus.UInt32(mapviewerhandle), \ + dbus.Int16(1)) + +time.sleep(2) + +print 'Zoom in' +MapViewerControl_interface.setMapViewScaleByDelta( \ + dbus.UInt32(sessionhandle), \ + dbus.UInt32(mapviewerhandle), \ + dbus.Int16(1)) + +time.sleep(2) + +print 'Zoom out' +MapViewerControl_interface.setMapViewScaleByDelta( \ + dbus.UInt32(sessionhandle), \ + dbus.UInt32(mapviewerhandle), \ + dbus.Int16(-1)) + +time.sleep(2) + +print 'Zoom out' +MapViewerControl_interface.setMapViewScaleByDelta( \ + dbus.UInt32(sessionhandle), \ + dbus.UInt32(mapviewerhandle), \ + dbus.Int16(-1)) + +time.sleep(2) + +MapViewerControl_interface.releaseMapViewInstance( \ + dbus.UInt32(sessionhandle), \ + dbus.UInt32(mapviewerhandle)) + +session_interface.deleteSession(sessionhandle) + +time.sleep(1) + +print '\nTest Finished\n' + + + + + diff --git a/test/poi-service/poi-manager-client/commonapi-dbus.ini b/test/poi-service/poi-manager-client/commonapi-dbus.ini index 2c56b8e..087c481 100644 --- a/test/poi-service/poi-manager-client/commonapi-dbus.ini +++ b/test/poi-service/poi-manager-client/commonapi-dbus.ini @@ -2,4 +2,8 @@ service=org.genivi.navigation.poiservice path=/org/genivi/navigation/poiservice/POIContentAccessModule interface=org.genivi.navigation.poiservice.POIContentAccessModule +[local:org.genivi.navigation.poiservice.POIContentAccess:POIContentAccessService] +service=org.genivi.navigation.poiservice +path=/org/genivi/navigation/poiservice/POIContentAccess +interface=org.genivi.navigation.poiservice.POIContentAccess |