From 4c3e24b04f8ff1e41a94f1c1dd181ae3412c3db9 Mon Sep 17 00:00:00 2001 From: asanoaozora Date: Tue, 27 Jun 2017 15:31:15 +0200 Subject: fix a bug and add DLT support in poi-cam plugin --- src/navigation/poi-cam/CMakeLists.txt | 2 + .../poi-cam/genivi_poiservice_cam_navit.cxx | 64 +++++++++++++++------- src/poi-service/poi-server/main.cpp | 4 ++ 3 files changed, 51 insertions(+), 19 deletions(-) diff --git a/src/navigation/poi-cam/CMakeLists.txt b/src/navigation/poi-cam/CMakeLists.txt index 3b2b2e5..8f6297b 100644 --- a/src/navigation/poi-cam/CMakeLists.txt +++ b/src/navigation/poi-cam/CMakeLists.txt @@ -69,5 +69,7 @@ if(NOT DEFINED CMAKE_SUPPRESS_DEVELOPER_WARNINGS) endif() module_add_library(genivi_poiservice_cam_navit genivi_poiservice_cam_navit.cxx ${DBUS_GENERATED_INCLUDE_DIR}/poi-service/genivi-poiservice-poicontentaccess_proxy.h ${DBUS_GENERATED_INCLUDE_DIR}/poi-service/genivi-poiservice-contentaccessmodule_adaptor.h) +target_link_libraries(genivi_poiservice_cam_navit ${LIBRARIES}) +add_dependencies(genivi_poiservice_cam_navit ${API_DIR}/poi-service) diff --git a/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx b/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx index f5ab752..fa2d798 100644 --- a/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx +++ b/src/navigation/poi-cam/genivi_poiservice_cam_navit.cxx @@ -41,17 +41,15 @@ #include #include #include "navigation-common-dbus.h" +#include "log.h" + +DLT_DECLARE_CONTEXT(gCtx); #if (!DEBUG_ENABLED) #undef dbg #define dbg(level,...) ; #endif -enum { - POI_CONTENTACCESSMODULE_CONNECTION=0, - POI_CONTENTACCESS_CONNECTION, - CONNECTION_AMOUNT -}; #include "genivi-poiservice-constants.h" #include "genivi-poiservice-poicontentaccess_proxy.h" @@ -59,6 +57,14 @@ enum { #include +enum { + POI_CONTENTACCESSMODULE_CONNECTION=0, + POI_CONTENTACCESS_CONNECTION, + CONNECTION_AMOUNT +}; + +#define MAX_RESULT_LIST_SIZE 256 + static DBus::Glib::BusDispatcher dispatchers[CONNECTION_AMOUNT]; static DBus::Connection *conns[CONNECTION_AMOUNT]; static const char *cam_name="org.genivi.navigation.poiservice.POIContentAccessModuleNavit"; @@ -88,6 +94,7 @@ class PoiContentAccess PoiContentAccess(DBus::Connection &connection) : DBus::ObjectProxy(connection, "/org/genivi/poiservice/POIContentAccess","org.genivi.navigation.poiservice.POIContentAccess") { + LOG_INFO_MSG(gCtx,"POI content access client"); } }; @@ -116,6 +123,7 @@ class ContentAccessModule std::vector< ::DBus::Struct< uint32_t, std::string, uint32_t, ::DBus::Struct< double, double, double >, uint16_t, std::vector< ::DBus::Struct< uint32_t, int32_t, DBusCommonAPIVariant > > > > m_resultList; std::string m_inputString; int m_max_radius; + uint16_t m_max_requested_size; bool (*m_sort_func)(::DBus::Struct< uint32_t, std::string, uint32_t, ::DBus::Struct< double, double, double >, uint16_t, std::vector< ::DBus::Struct< uint32_t, int32_t, DBusCommonAPIVariant > > > a, ::DBus::Struct< uint32_t, std::string, uint32_t, ::DBus::Struct< double, double, double >, uint16_t, std::vector< ::DBus::Struct< uint32_t, int32_t, DBusCommonAPIVariant > > > b); struct coord m_center; double m_scale; @@ -131,6 +139,8 @@ class ContentAccessModule ContentAccessModule(DBus::Connection &connection) : DBus::ObjectAdaptor(connection, "/org/genivi/poiservice/POIContentAccessModule") { + LOG_INFO_MSG(gCtx,"POI content access module server"); + m_mapset=NULL; m_msh=NULL; m_map_rect=NULL; @@ -187,16 +197,19 @@ class ContentAccessModule delete(pca); } - void + bool map_next(void) { m_map=mapset_next(m_msh, 1); if (m_map_rect) map_rect_destroy(m_map_rect); - if (m_map) + if (m_map){ m_map_rect=map_rect_new(m_map, &m_selection); + return true; + } else m_map_rect=NULL; + return false; } bool @@ -339,7 +352,8 @@ class ContentAccessModule struct attr navit; struct coord_geo g; dbg(lvl_debug,"enter handle=%d size=%d location=%f,%f,%d string='%s' sortOption=%d\n",poiSearchHandle, maxSize, location._1,location._2,location._3, inputString.c_str(), sortOption); - m_resultList.resize(0); + m_max_requested_size=maxSize; + m_resultList.resize(0); m_max_radius=0; m_inputString=inputString; poiCategoryIdRadius categoryIdRadius; @@ -411,11 +425,16 @@ class ContentAccessModule }while((isFound==false)&&(indextype == (m_poiCategoriesIdRadius.at(index)).formerId) { - isFound=add_poi(item,(m_poiCategoriesIdRadius.at(index)).givenId,m_inputString); + if(add_poi(item,(m_poiCategoriesIdRadius.at(index)).givenId,m_inputString)){ + //poi are added into m_resultList + LOG_DEBUG(gCtx,"POI added: %s count: %d",(m_resultList.at(count))._2.c_str(), count); + count++; + isFound=true; + } } index++; }while((isFound==false)&&(index