summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorasanoaozora <fifitaneki@hotmail.com>2016-08-06 10:59:54 +0200
committerasanoaozora <fifitaneki@hotmail.com>2016-08-06 10:59:54 +0200
commit533149d90c1dc3970a2299bb633f1c3c8afc4c11 (patch)
tree3a4729f5a1cd80bf0178faefa7ee0e27e76a385f
parent7f214ad407820a8cee50b41642551a8ffe46c85d (diff)
downloadpoi-service-533149d90c1dc3970a2299bb633f1c3c8afc4c11.tar.gz
CommonAPI: map viewer plugin OK
-rw-r--r--src/navigation/CMakeLists.txt4
-rw-r--r--src/navigation/commonapi-dbus.ini45
-rw-r--r--src/navigation/commonapi4dbus.ini4
-rw-r--r--src/navigation/map-viewer/CMakeLists.txt10
-rw-r--r--src/navigation/map-viewer/mapviewercontrol-server-plugin/genivi_mapviewer_mapviewercontrol.cxx89
-rw-r--r--src/navigation/navigation-core/CMakeLists.txt7
-rw-r--r--src/navigation/navigation-core/enhancedposition-client-plugin/genivi_positioning_enhancedposition.cxx24
-rw-r--r--src/navigation/navigation-core/navit_genivi_navigationcore_capi.xsl4
-rw-r--r--src/navigation/navigation-core/poicam-server-plugin/genivi_poiservice_cam_navit.cxx12
-rwxr-xr-xtest/navigation/test-map-viewer-control-capi.py163
-rw-r--r--test/poi-service/poi-manager-client/commonapi-dbus.ini4
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>&#x0A; </xsl:text>
<plugin path="../../navigation-core/mapmatchedposition-server-plugin/.libs/libgenivi_navigationcore_mapmatchedposition_server.so" ondemand="no"/>
<xsl:text>&#x0A; </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>&#x0A; </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