aboutsummaryrefslogtreecommitdiffstats
path: root/libnavi
diff options
context:
space:
mode:
authorMatt Ranostay <matt.ranostay@konsulko.com>2019-10-19 13:45:11 -0700
committerMatt Ranostay <matt.ranostay@konsulko.com>2019-10-31 01:59:13 -0700
commit3e94024998c1615bd30306aab7537db22161a9ce (patch)
tree6bea3ac4de640d98c8c27ffd0c02f9eb86ca0773 /libnavi
parent9539611e896e61e27154bbb5917188753a983871 (diff)
binding: navigation: rewrite of navigation binding
To remove dependency on DBus the binding needed to be rewritten to output pure JSON output to subscribed consumers. Bug-AGL: SPEC-2880 Change-Id: Ie85dfccd42ca36119116a0fbfb16bf4e96efc184 Signed-off-by: Matt Ranostay <matt.ranostay@konsulko.com>
Diffstat (limited to 'libnavi')
-rw-r--r--libnavi/include/BinderClient.h57
-rw-r--r--libnavi/include/JsonRequestGenerator.h29
-rw-r--r--libnavi/include/JsonResponseAnalyzer.h25
-rw-r--r--libnavi/include/RequestManage.h64
-rw-r--r--libnavi/include/RequestManageListener.h17
-rw-r--r--libnavi/include/libnavicore.hpp69
-rw-r--r--libnavi/include/traces.h38
-rw-r--r--libnavi/src/BinderClient.cpp315
-rw-r--r--libnavi/src/JsonRequestGenerator.cpp188
-rw-r--r--libnavi/src/JsonResponseAnalyzer.cpp254
-rw-r--r--libnavi/src/RequestManage.cpp204
-rw-r--r--libnavi/src/navicore.cpp81
-rw-r--r--libnavi/src/navicorelistener.cpp28
13 files changed, 0 insertions, 1369 deletions
diff --git a/libnavi/include/BinderClient.h b/libnavi/include/BinderClient.h
deleted file mode 100644
index 70a6558..0000000
--- a/libnavi/include/BinderClient.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <map>
-#include <tuple>
-#include <vector>
-#include <string>
-
-#include "libnavicore.hpp"
-
-#include "RequestManageListener.h"
-#include "RequestManage.h"
-
-#define API_NAME "naviapi"
-
-/**
- * @brief API name
- */
-#define VERB_GETPOSITION "navicore_getposition"
-#define VERB_GETALLROUTES "navicore_getallroutes"
-#define VERB_CREATEROUTE "navicore_createroute"
-#define VERB_PAUSESIMULATION "navicore_pausesimulation"
-#define VERB_SETSIMULATIONMODE "navicore_setsimulationmode"
-#define VERB_CANCELROUTECALCULATION "navicore_cancelroutecalculation"
-#define VERB_SETWAYPOINTS "navicore_setwaypoints"
-#define VERB_CALCULATEROUTE "navicore_calculateroute"
-#define VERB_GETALLSESSIONS "navicore_getallsessions"
-
-/**
- * @brief Binder client class
- */
-class BinderClient : public RequestManageListener
-{
-public:
- BinderClient();
- ~BinderClient();
-
- bool ConnectServer(std::string url , naviapi::NavicoreListener* listener);
- void NavicoreGetPosition(const std::vector< int32_t >& valuesToReturn);
- void NavicoreGetAllRoutes();
- void NavicoreCreateRoute(const uint32_t& sessionHandle);
- void NavicorePauseSimulation(const uint32_t& sessionHandle);
- void NavicoreSetSimulationMode(const uint32_t& sessionHandle, const bool& activate);
- void NavicoreCancelRouteCalculation(const uint32_t& sessionHandle, const uint32_t& routeHandle);
- void NavicoreSetWaypoints(const uint32_t& sessionHandle, const uint32_t& routeHandle, const bool& startFromCurrentPosition, const std::vector<naviapi::Waypoint>& waypointsList);
- void NavicoreCalculateRoute(const uint32_t& sessionHandle, const uint32_t& routeHandle);
- void NavicoreGetAllSessions();
-
-private:
- void OnReply(struct json_object *reply);
-
-private:
- naviapi::NavicoreListener* navicoreListener;
- RequestManage* requestMng;
-};
-
diff --git a/libnavi/include/JsonRequestGenerator.h b/libnavi/include/JsonRequestGenerator.h
deleted file mode 100644
index 7cd6979..0000000
--- a/libnavi/include/JsonRequestGenerator.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <stdint.h>
-#include <string>
-#include <vector>
-
-#include "libnavicore.hpp"
-
-/**
-* @brief Class for generating Json request
-*/
-class JsonRequestGenerator
-{
-public:
- static std::string CreateRequestGetPosition(const std::vector< int32_t >& valuesToReturn);
- static std::string CreateRequestGetAllRoutes();
- static std::string CreateRequestCreateRoute(const uint32_t* sessionHandle);
- static std::string CreateRequestPauseSimulation(const uint32_t* sessionHandle);
- static std::string CreateRequestSetSimulationMode(const uint32_t* sessionHandle, const bool* activate);
- static std::string CreateRequestCancelRouteCalculation(const uint32_t* sessionHandle, const uint32_t* routeHandle);
- static std::string CreateRequestSetWaypoints(const uint32_t* sessionHandle, const uint32_t* routeHandle,
- const bool* startFromCurrentPosition, const std::vector<naviapi::Waypoint>* waypointsList);
- static std::string CreateRequestCalculateroute(const uint32_t* sessionHandle, const uint32_t* routeHandle);
- static std::string CreateRequestGetAllSessions();
-};
-
diff --git a/libnavi/include/JsonResponseAnalyzer.h b/libnavi/include/JsonResponseAnalyzer.h
deleted file mode 100644
index 50b2cd2..0000000
--- a/libnavi/include/JsonResponseAnalyzer.h
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <json-c/json.h>
-#include <stdint.h>
-#include <string>
-#include <vector>
-#include <map>
-
-#include "libnavicore.hpp"
-
-/**
-* @brief JSON response analysis class
-*/
-class JsonResponseAnalyzer
-{
-public:
- static std::map< int32_t, naviapi::variant > AnalyzeResponseGetPosition( std::string& res_json );
- static std::vector< uint32_t > AnalyzeResponseGetAllRoutes( std::string& res_json );
- static uint32_t AnalyzeResponseCreateRoute( std::string& res_json );
- static std::map<uint32_t, std::string> AnalyzeResponseGetAllSessions( std::string& res_json );
-};
-
diff --git a/libnavi/include/RequestManage.h b/libnavi/include/RequestManage.h
deleted file mode 100644
index 05ffcdf..0000000
--- a/libnavi/include/RequestManage.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <stdint.h>
-#include <string>
-#include <pthread.h>
-
-extern "C" {
- #include <afb/afb-wsj1.h>
- #include <afb/afb-ws-client.h>
-}
-
-#include "RequestManageListener.h"
-
-/**
-* @brief Class for request
-*/
-class RequestManage
-{
-public:
- pthread_cond_t cond;
- pthread_mutex_t mutex;
-
- struct afb_wsj1* wsj1;
- std::string* requestURL;
- struct afb_wsj1_itf wsj1_itf;
-
-private:
- RequestManageListener* listener;
- int request_cnt;
- uint32_t sessionHandle;
- uint32_t routeHandle;
-
- // Function called from thread
- static void* BinderThread(void* param);
-
- // Callback function
- void OnReply(struct afb_wsj1_msg *msg);
- void OnHangup(struct afb_wsj1 *wsj1);
- void OnCallStatic(const char *api, const char *verb, struct afb_wsj1_msg *msg);
- void OnEventStatic(const char *event, struct afb_wsj1_msg *msg);
-
- static void OnReplyStatic(void *closure, struct afb_wsj1_msg *msg);
- static void OnHangupStatic(void *closure, struct afb_wsj1 *wsj1);
- static void OnCallStatic(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg);
- static void OnEventStatic(void *closure, const char *event, struct afb_wsj1_msg *msg);
-
-// ==================================================================================================
-// public
-// ==================================================================================================
-public:
- RequestManage();
- ~RequestManage();
-
- bool Connect(const char* api_url, RequestManageListener* listener);
- bool IsConnect();
- bool CallBinderAPI(const char *api, const char *verb, const char *object);
- void SetSessionHandle(uint32_t session);
- uint32_t GetSessionHandle();
- void SetRouteHandle(uint32_t route);
- uint32_t GetRouteHandle();
-};
-
diff --git a/libnavi/include/RequestManageListener.h b/libnavi/include/RequestManageListener.h
deleted file mode 100644
index 3b0c932..0000000
--- a/libnavi/include/RequestManageListener.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <json-c/json.h>
-
-class RequestManageListener
-{
-public:
- RequestManageListener() {
- }
- virtual ~RequestManageListener() {
- }
-
- virtual void OnReply(struct json_object *reply) = 0;
-};
-
diff --git a/libnavi/include/libnavicore.hpp b/libnavi/include/libnavicore.hpp
deleted file mode 100644
index 66200d9..0000000
--- a/libnavi/include/libnavicore.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <map>
-#include <string>
-#include <tuple>
-#include <vector>
-
-#include <stdint.h>
-
-namespace naviapi {
-
-static const uint32_t NAVICORE_TIMESTAMP = 0x0010;
-static const uint32_t NAVICORE_LATITUDE = 0x00a0;
-static const uint32_t NAVICORE_LONGITUDE = 0x00a1;
-static const uint32_t NAVICORE_HEADING = 0x00a3;
-static const uint32_t NAVICORE_SPEED = 0x00a4;
-static const uint32_t NAVICORE_SIMULATION_MODE = 0x00e3;
-
-typedef union
-{
- bool _bool;
- int32_t _int32_t;
- uint32_t _uint32_t;
- double _double;
-} variant;
-
-typedef std::tuple<double, double> Waypoint;
-
-class NavicoreListener
-{
-public:
- NavicoreListener();
- virtual ~NavicoreListener();
-
- virtual void getAllSessions_reply(const std::map< uint32_t, std::string >& allSessions);
- virtual void getPosition_reply(std::map< int32_t, variant > position);
- virtual void getAllRoutes_reply(std::vector< uint32_t > allRoutes);
- virtual void createRoute_reply(uint32_t routeHandle);
-}; // class NavicoreListener
-
-class Navicore
-{
-private:
- NavicoreListener* mListener;
-
-public:
- Navicore();
- virtual ~Navicore();
-
- bool connect(int argc, char *argv[], NavicoreListener* listener);
- void disconnect();
-
- void getAllSessions();
- void getPosition(std::vector<int32_t> params);
- void getAllRoutes();
- void createRoute(uint32_t session);
-
- void pauseSimulation(uint32_t session);
- void setSimulationMode(uint32_t session, bool activate);
- void cancelRouteCalculation(uint32_t session, uint32_t routeHandle);
- void setWaypoints(uint32_t session, uint32_t routeHandle, bool flag, std::vector<Waypoint>);
- void calculateRoute(uint32_t session, uint32_t routeHandle);
-
-}; // class Navicore
-
-}; // namespace naviapi
-
diff --git a/libnavi/include/traces.h b/libnavi/include/traces.h
deleted file mode 100644
index a1f96ec..0000000
--- a/libnavi/include/traces.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#ifndef __TRACE_H__
-#define __TRACE_H__
-
-#include <stdio.h>
-
-#define BLACK "\033[30m"
-#define RED "\033[31m"
-#define GREEN "\033[32m"
-#define YELLOW "\033[33m"
-#define BLUE "\033[34m"
-#define PURPLE "\033[35m"
-#define DGREEN "\033[6m"
-#define WHITE "\033[7m"
-#define CYAN "\x1b[36m"
-#define NONE "\033[0m"
-
-#ifdef NDEBUG
-
-#define TRACE_DEBUG_JSON(fmt, args...)
-#define TRACE_DEBUG(fmt, args...)
-#define TRACE_INFO(fmt, args...)
-#define TRACE_WARN(fmt, args...)
-#define TRACE_ERROR(fmt, args...)
-
-#else
-
-#define TRACE_DEBUG(fmt, args...) do { fprintf(stderr, "[%s:%d] " CYAN "DEBUG" NONE ": " fmt "\n", __func__, __LINE__, ##args); } while(0)
-#define TRACE_INFO(fmt, args...) do { fprintf(stderr, "[%s:%d] " GREEN "INFO" NONE ": " fmt "\n", __func__, __LINE__, ##args); } while(0)
-#define TRACE_WARN(fmt, args...) do { fprintf(stderr, "[%s:%d] " YELLOW "WARN" NONE": " fmt "\n", __func__, __LINE__, ##args); } while(0)
-#define TRACE_ERROR(fmt, args...) do { fprintf(stderr, "[%s:%d] " RED "ERROR" NONE ": " fmt "\n", __func__, __LINE__, ##args); } while(0)
-
-#define TRACE_DEBUG_JSON(fmt, args...)
-
-#endif
-
-#endif // __TRACE_H__
diff --git a/libnavi/src/BinderClient.cpp b/libnavi/src/BinderClient.cpp
deleted file mode 100644
index 1e1e9e9..0000000
--- a/libnavi/src/BinderClient.cpp
+++ /dev/null
@@ -1,315 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include <cstring>
-
-#include "BinderClient.h"
-#include "JsonRequestGenerator.h"
-#include "JsonResponseAnalyzer.h"
-
-#include "traces.h"
-
-/**
- * @brief constructor
- */
-BinderClient::BinderClient() : navicoreListener(nullptr)
-{
- requestMng = new RequestManage();
-}
-
-/**
- * @brief Destructor
- */
-BinderClient::~BinderClient()
-{
- delete requestMng;
-}
-
-/**
- * @brief Connect with the Binder server
- */
-bool BinderClient::ConnectServer(std::string url, naviapi::NavicoreListener* listener)
-{
- this->navicoreListener = listener;
-
- if( !requestMng->Connect(url.c_str(), this))
- {
- TRACE_ERROR("cannot connect to binding service.\n");
- return false;
- }
-
- return true;
-}
-
-/**
- * @brief Call Genivi's GetPosition via Binder and get the result
- */
-void BinderClient::NavicoreGetPosition(const std::vector< int32_t >& valuesToReturn)
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- std::string req_json = JsonRequestGenerator::CreateRequestGetPosition(valuesToReturn);
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_GETPOSITION, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_getposition success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_getposition failed.\n");
- }
- }
-}
-
-/**
- * @brief Get route handle
- */
-void BinderClient::NavicoreGetAllRoutes()
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- std::string req_json = JsonRequestGenerator::CreateRequestGetAllRoutes();
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_GETALLROUTES, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_getallroutes success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_getallroutes failed.\n");
- }
- }
-}
-
-/**
- * @brief Generate route handle
- */
-void BinderClient::NavicoreCreateRoute(const uint32_t& sessionHandle)
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- uint32_t session = requestMng->GetSessionHandle();
- std::string req_json = JsonRequestGenerator::CreateRequestCreateRoute(&session);
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_CREATEROUTE, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_createroute success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_createroute failed.\n");
- }
- }
-}
-
-/**
- * @brief Pause demo
- */
-void BinderClient::NavicorePauseSimulation(const uint32_t& sessionHandle)
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- uint32_t session = requestMng->GetSessionHandle();
- std::string req_json = JsonRequestGenerator::CreateRequestPauseSimulation(&session);
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_PAUSESIMULATION, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_pausesimulationmode success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_pausesimulationmode failed.\n");
- }
- }
-}
-
-/**
- * @brief Simulation mode setting
- */
-void BinderClient::NavicoreSetSimulationMode(const uint32_t& sessionHandle, const bool& activate)
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- uint32_t session = requestMng->GetSessionHandle();
- std::string req_json = JsonRequestGenerator::CreateRequestSetSimulationMode(&session, &activate);
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_SETSIMULATIONMODE, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_setsimulationmode success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_setsimulationmode failed.\n");
- }
- }
-}
-
-/**
- * @brief Delete route information
- */
-void BinderClient::NavicoreCancelRouteCalculation(const uint32_t& sessionHandle, const uint32_t& routeHandle)
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- uint32_t session = requestMng->GetSessionHandle();
- std::string req_json = JsonRequestGenerator::CreateRequestCancelRouteCalculation(&session, &routeHandle);
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_CANCELROUTECALCULATION, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_cancelroutecalculation success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_cancelroutecalculation failed.\n");
- }
- }
-}
-
-/**
- * @brief Destination setting
- */
-void BinderClient::NavicoreSetWaypoints(const uint32_t& sessionHandle, const uint32_t& routeHandle, const bool& startFromCurrentPosition, const std::vector<naviapi::Waypoint>& waypointsList)
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- uint32_t session = requestMng->GetSessionHandle();
- uint32_t route = requestMng->GetRouteHandle();
- std::string req_json = JsonRequestGenerator::CreateRequestSetWaypoints(&session, &route,
- &startFromCurrentPosition, &waypointsList);
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_SETWAYPOINTS, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_setwaypoints success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_setwaypoints failed.\n");
- }
- }
-}
-
-/**
- * @brief Route calculation processing
- */
-void BinderClient::NavicoreCalculateRoute(const uint32_t& sessionHandle, const uint32_t& routeHandle)
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- uint32_t session = requestMng->GetSessionHandle();
- uint32_t route = requestMng->GetRouteHandle();
- std::string req_json = JsonRequestGenerator::CreateRequestCalculateroute(&session, &route);
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_CALCULATEROUTE, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_calculateroute success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_calculateroute failed.\n");
- }
- }
-}
-
-/**
- * @brief Retrieve session information
- * @return Map of session information
- */
-void BinderClient::NavicoreGetAllSessions()
-{
- // Check if it is connected
- if( requestMng->IsConnect() )
- {
- // JSON request generation
- std::string req_json = JsonRequestGenerator::CreateRequestGetAllSessions();
-
- // Send request
- if( requestMng->CallBinderAPI(API_NAME, VERB_GETALLSESSIONS, req_json.c_str()) )
- {
- TRACE_DEBUG("navicore_getallsessions success.\n");
- }
- else
- {
- TRACE_ERROR("navicore_getallsessions failed.\n");
- }
- }
-}
-
-void BinderClient::OnReply(struct json_object* reply)
-{
- struct json_object* requestObject = nullptr;
- json_object_object_get_ex(reply, "request", &requestObject);
-
- struct json_object* infoObject = nullptr;
- json_object_object_get_ex(requestObject, "info", &infoObject);
-
- const char* info = json_object_get_string(infoObject);
-
- char tmpVerb[256];
- strcpy(tmpVerb, info);
-
- // Create a new JSON response
- const char* json_str = json_object_to_json_string_ext(reply, JSON_C_TO_STRING_PRETTY);
- std::string response_json = std::string( json_str );
-
- if (strcmp(VERB_GETALLSESSIONS, tmpVerb) == 0)
- {
- std::map<uint32_t, std::string> ret = JsonResponseAnalyzer::AnalyzeResponseGetAllSessions(response_json);
-
- // keep session handle
- requestMng->SetSessionHandle( ret.begin()->first );
-
- this->navicoreListener->getAllSessions_reply(ret);
- }
- else if (strcmp(VERB_GETPOSITION, tmpVerb) == 0)
- {
- std::map< int32_t, naviapi::variant > ret = JsonResponseAnalyzer::AnalyzeResponseGetPosition(response_json);
-
- this->navicoreListener->getPosition_reply(ret);
- }
- else if (strcmp(VERB_GETALLROUTES, tmpVerb) == 0)
- {
- std::vector< uint32_t > ret = JsonResponseAnalyzer::AnalyzeResponseGetAllRoutes(response_json);
-
- // route handle
- if(ret.size() > 0)
- {
- requestMng->SetRouteHandle(ret[0]);
- }
-
- this->navicoreListener->getAllRoutes_reply(ret);
- }
- else if (strcmp(VERB_CREATEROUTE, tmpVerb) == 0)
- {
- uint32_t ret = JsonResponseAnalyzer::AnalyzeResponseCreateRoute(response_json);
-
- // keep route handle
- requestMng->SetRouteHandle(ret);
-
- this->navicoreListener->createRoute_reply(ret);
- }
-}
-
diff --git a/libnavi/src/JsonRequestGenerator.cpp b/libnavi/src/JsonRequestGenerator.cpp
deleted file mode 100644
index 09d68c0..0000000
--- a/libnavi/src/JsonRequestGenerator.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include <json-c/json.h>
-#include <traces.h>
-#include "JsonRequestGenerator.h"
-
-/**
- * @brief Generate request for navicore_getposition
- * @param valuesToReturn Key information you want to obtain
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestGetPosition(const std::vector< int32_t >& valuesToReturn)
-{
- std::vector< int32_t >::const_iterator itr;
-
- struct json_object* request_json = json_object_new_object();
- struct json_object* json_array = json_object_new_array();
-
- for (itr = valuesToReturn.begin(); itr != valuesToReturn.end(); itr++)
- {
- json_object_array_add(json_array, json_object_new_int(*itr));
- }
-
- json_object_object_add(request_json, "valuesToReturn", json_array);
- TRACE_DEBUG("CreateRequestGetPosition request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_getallroutes
- * @return json strin
- */
-std::string JsonRequestGenerator::CreateRequestGetAllRoutes()
-{
- // Request is empty and OK
- struct json_object* request_json = json_object_new_object();
- TRACE_DEBUG("CreateRequestGetAllRoutes request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_createroute
- * @param sessionHandle session handle
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestCreateRoute(const uint32_t* sessionHandle)
-{
- struct json_object* request_json = json_object_new_object();
- json_object_object_add(request_json, "sessionHandle", json_object_new_int(*sessionHandle));
- TRACE_DEBUG("CreateRequestCreateRoute request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_pausesimulation
- * @param sessionHandle session handle
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestPauseSimulation(const uint32_t* sessionHandle)
-{
- struct json_object* request_json = json_object_new_object();
- // sessionHandle
- json_object_object_add(request_json, "sessionHandle", json_object_new_int(*sessionHandle));
- TRACE_DEBUG("CreateRequestPauseSimulation request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_pausesimulation
- * @param sessionHandle session handle
- * @param active Simulation state
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestSetSimulationMode(const uint32_t* sessionHandle, const bool* activate)
-{
- struct json_object* request_json = json_object_new_object();
-
- // "sessionHandle"
- json_object_object_add(request_json, "sessionHandle", json_object_new_int(*sessionHandle));
-
- // "simulationMode"
- json_object_object_add(request_json, "simulationMode", json_object_new_boolean(*activate));
- TRACE_DEBUG("CreateRequestSetSimulationMode request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_pausesimulation
- * @param sessionHandle session handle
- * @param routeHandle route handle
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestCancelRouteCalculation(const uint32_t* sessionHandle, const uint32_t* routeHandle)
-{
- struct json_object* request_json = json_object_new_object();
-
- // "sessionHandle"
- json_object_object_add(request_json, "sessionHandle", json_object_new_int(*sessionHandle));
-
- // "route"
- json_object_object_add(request_json, "route", json_object_new_int(*routeHandle));
- TRACE_DEBUG("CreateRequestCancelRouteCalculation request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_setwaypoints
- * @param sessionHandle session handle
- * @param routeHandle route handle
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestSetWaypoints(const uint32_t* sessionHandle, const uint32_t* routeHandle,
- const bool* startFromCurrentPosition, const std::vector<naviapi::Waypoint>* waypointsList)
-{
- naviapi::Waypoint destWp;
-
- struct json_object* request_json = json_object_new_object();
- struct json_object* json_array = json_object_new_array();
-
- // "sessionHandle"
- json_object_object_add(request_json, "sessionHandle", json_object_new_int(*sessionHandle));
-
- // "route"
- json_object_object_add(request_json, "route", json_object_new_int(*routeHandle));
-
- // "startFromCurrentPosition"
- json_object_object_add(request_json, "startFromCurrentPosition", json_object_new_boolean(*startFromCurrentPosition));
-
- // "latitude", "longitude"
- std::vector<naviapi::Waypoint>::const_iterator it;
- for (it = waypointsList->begin(); it != waypointsList->end(); ++it)
- {
- struct json_object* destpoint = json_object_new_object();
-
- double latitude = std::get<0>(*it);
- json_object_object_add(destpoint, "latitude", json_object_new_double(latitude));
-
- double longitude = std::get<1>(*it);
- json_object_object_add(destpoint, "longitude", json_object_new_double(longitude));
-
- json_object_array_add(json_array, destpoint);
- }
-
- json_object_object_add(request_json, "", json_array);
- TRACE_DEBUG("CreateRequestSetWaypoints request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_calculateroute
- * @param sessionHandle session handle
- * @param routeHandle route handle
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestCalculateroute(const uint32_t* sessionHandle, const uint32_t* routeHandle)
-{
- struct json_object* request_json = json_object_new_object();
- // "sessionHandle"
- json_object_object_add(request_json, "sessionHandle", json_object_new_int(*sessionHandle));
-
- // "route"
- json_object_object_add(request_json, "route", json_object_new_int(*routeHandle));
- TRACE_DEBUG("CreateRequestCalculateroute request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
-/**
- * @brief Generate request for navicore_getallsessions
- * @return json string
- */
-std::string JsonRequestGenerator::CreateRequestGetAllSessions()
-{
- // Request is empty and OK
- struct json_object* request_json = json_object_new_object();
- TRACE_DEBUG("CreateRequestGetAllSessions request_json:\n%s\n", json_object_to_json_string(request_json));
-
- return std::string( json_object_to_json_string( request_json ) );
-}
-
diff --git a/libnavi/src/JsonResponseAnalyzer.cpp b/libnavi/src/JsonResponseAnalyzer.cpp
deleted file mode 100644
index b0d943f..0000000
--- a/libnavi/src/JsonResponseAnalyzer.cpp
+++ /dev/null
@@ -1,254 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include <traces.h>
-
-#include "JsonResponseAnalyzer.h"
-
-/**
- * @brief Response analysis of navicore_getallroutes
- * @param res_json JSON string of response
- * @return Map information for the key sent in the request
- */
-std::map< int32_t, naviapi::variant > JsonResponseAnalyzer::AnalyzeResponseGetPosition( std::string& res_json )
-{
- std::map< int32_t, naviapi::variant > ret;
-
- TRACE_DEBUG("AnalyzeResponseGetPosition json_obj:\n%s\n", json_object_to_json_string(json_obj));
-
- // convert to Json Object
- struct json_object *json_obj = json_tokener_parse( res_json.c_str() );
-
- // Check key
- struct json_object *json_map_ary = NULL;
- if( json_object_object_get_ex(json_obj, "response", &json_map_ary) )
- {
- // Check if the response is array information
- if( json_object_is_type(json_map_ary, json_type_array) )
- {
- for (int i = 0; i < json_object_array_length(json_map_ary); ++i)
- {
- struct json_object* j_elem = json_object_array_get_idx(json_map_ary, i);
-
- if( json_object_is_type( j_elem, json_type_object) )
- {
- // Check key
- struct json_object* key = NULL;
- struct json_object* value = NULL;
- if( json_object_object_get_ex(j_elem, "key", &key)
- && json_object_object_get_ex(j_elem, "value", &value) )
- {
- if( json_object_is_type(key, json_type_int) )
- {
- uint32_t req_key = (uint32_t)json_object_get_int(key);
-
- switch( req_key )
- {
- case naviapi::NAVICORE_LATITUDE:
- ret[req_key]._double = json_object_get_double(value);
- break;
-
- case naviapi::NAVICORE_LONGITUDE:
- ret[req_key]._double = json_object_get_double(value);
- break;
-
- case naviapi::NAVICORE_TIMESTAMP:
- ret[req_key]._uint32_t = (uint32_t)json_object_get_int(value);
- break;
-
- case naviapi::NAVICORE_HEADING:
- ret[req_key]._uint32_t = (uint32_t)json_object_get_int(value);
- break;
-
- case naviapi::NAVICORE_SPEED:
- ret[req_key]._int32_t = json_object_get_int(value);
- break;
-
- case naviapi::NAVICORE_SIMULATION_MODE:
- ret[req_key]._bool = json_object_get_boolean(value);
- break;
-
- default:
- TRACE_WARN("unknown key type.\n");
- break;
- }
- }
- }
- }
- else
- {
- TRACE_WARN("element type is not object.\n");
- break;
- }
- }
- }
- else
- {
- TRACE_WARN("response type is not array.\n");
- }
- }
-
- json_object_put(json_obj);
- return ret;
-}
-
-/**
- * @brief Response analysis of navicore_getallroutes
- * @param res_json JSON string of response
- * @return Route handle array
- */
-std::vector< uint32_t > JsonResponseAnalyzer::AnalyzeResponseGetAllRoutes( std::string& res_json )
-{
- std::vector< uint32_t > routeList;
-
- TRACE_DEBUG("AnalyzeResponseGetAllRoutes json_obj:\n%s\n", json_object_to_json_string(json_obj));
-
- // convert to Json Object
- struct json_object *json_obj = json_tokener_parse( res_json.c_str() );
-
- // Check key
- struct json_object *json_route_ary = NULL;
- if( json_object_object_get_ex(json_obj, "response", &json_route_ary) )
- {
- // Check if the response is array information
- if( json_object_is_type(json_route_ary, json_type_array) )
- {
- for (int i = 0; i < json_object_array_length(json_route_ary); ++i)
- {
- struct json_object* j_elem = json_object_array_get_idx(json_route_ary, i);
-
- // Check that it is an element
- struct json_object *json_route_obj = NULL;
- if( json_object_object_get_ex(j_elem, "route", &json_route_obj) )
- {
- // Check if it is an int value
- if( json_object_is_type(json_route_obj, json_type_int) )
- {
- uint32_t routeHandle = (uint32_t)json_object_get_int(json_route_obj);
- routeList.push_back( routeHandle );
- }
- else
- {
- TRACE_WARN("route value is not integer.\n");
- break;
- }
- }
- else
- {
- TRACE_WARN("key route is not found.\n");
- break;
- }
- }
- }
- else
- {
- TRACE_WARN("response type is not array.\n");
- }
- }
-
- json_object_put(json_obj);
- return routeList;
-}
-
-/**
- * @brief Response analysis of navicore_createroute
- * @param res_json JSON string of response
- * @return Route handle
- */
-uint32_t JsonResponseAnalyzer::AnalyzeResponseCreateRoute( std::string& res_json )
-{
- uint32_t routeHandle = 0;
-
- TRACE_DEBUG("AnalyzeResponseCreateRoute json_obj:\n%s\n", json_object_to_json_string(json_obj));
-
- // convert to Json Object
- struct json_object *json_obj = json_tokener_parse( res_json.c_str() );
-
- // Check key
- struct json_object *json_root_obj = NULL;
- struct json_object *json_route_obj = NULL;
- if( json_object_object_get_ex(json_obj, "response", &json_root_obj)
- && json_object_object_get_ex(json_root_obj, "route", &json_route_obj) )
- {
- // Check if the response is array information
- if( json_object_is_type(json_route_obj, json_type_int) )
- {
- // Get route handle
- routeHandle = (uint32_t)json_object_get_int(json_route_obj);
- }
- else
- {
- TRACE_WARN("response type is not integer.\n");
- }
- }
-
- json_object_put(json_obj);
- return routeHandle;
-}
-
-/**
- * @brief Response analysis of navicore_getallsessions
- * @param res_json JSON string of response
- * @return Map of session information
- */
-std::map<uint32_t, std::string> JsonResponseAnalyzer::AnalyzeResponseGetAllSessions( std::string& res_json )
-{
- std::map<uint32_t, std::string> session_map;
-
- TRACE_DEBUG("AnalyzeResponseGetAllSessions json_obj:\n%s\n", json_object_to_json_string(json_obj));
-
- // convert to Json Object
- struct json_object *json_obj = json_tokener_parse( res_json.c_str() );
-
- // Check key
- struct json_object *json_map_ary = NULL;
- if( json_object_object_get_ex(json_obj, "response", &json_map_ary) )
- {
- // Check if the response is array information
- if( json_object_is_type(json_map_ary, json_type_array) )
- {
- for (int i = 0; i < json_object_array_length(json_map_ary); ++i)
- {
- struct json_object* j_elem = json_object_array_get_idx(json_map_ary, i);
-
- if( json_object_is_type( j_elem, json_type_object) )
- {
- // Check key
- struct json_object* handle = NULL;
- struct json_object* client = NULL;
- if( json_object_object_get_ex(j_elem, "sessionHandle", &handle)
- && json_object_object_get_ex(j_elem, "client", &client) )
- {
- if( json_object_is_type(handle, json_type_int)
- && json_object_is_type(client, json_type_string) )
- {
- uint32_t sessionHandle = (uint32_t)json_object_get_int(handle);
- std::string clientName = std::string( json_object_get_string(client) );
-
- // add to map
- session_map[sessionHandle] = clientName;
- }
- else
- {
- TRACE_WARN("invalid response.\n");
- break;
- }
- }
- }
- else
- {
- TRACE_WARN("element type is not object.\n");
- break;
- }
- }
- }
- else
- {
- TRACE_WARN("response type is not array.\n");
- }
- }
-
- json_object_put(json_obj);
- return session_map;
-}
-
diff --git a/libnavi/src/RequestManage.cpp b/libnavi/src/RequestManage.cpp
deleted file mode 100644
index 7db34e1..0000000
--- a/libnavi/src/RequestManage.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include <string.h>
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-#include <unistd.h>
-#include <systemd/sd-event.h>
-#include <json-c/json.h>
-#include <traces.h>
-#include "RequestManage.h"
-
-/**
- * @brief constructor
- */
-RequestManage::RequestManage() : listener(nullptr)
-{
- // Callback setting
- this->wsj1_itf.on_hangup = RequestManage::OnHangupStatic;
- this->wsj1_itf.on_call = RequestManage::OnCallStatic;
- this->wsj1_itf.on_event = RequestManage::OnEventStatic;
-
- pthread_cond_init(&this->cond, nullptr);
- pthread_mutex_init(&this->mutex, nullptr);
-}
-
-/**
- * @brief Destructor
- */
-RequestManage::~RequestManage()
-{
-}
-
-void* RequestManage::BinderThread(void* param)
-{
- RequestManage* instance = (RequestManage*) param;
- sd_event *loop;
-
- int rc = sd_event_default(&loop);
- if (rc < 0) {
- TRACE_ERROR("connection to default event loop failed: %s\n", strerror(-rc));
- return nullptr;
- }
-
- instance->wsj1 = afb_ws_client_connect_wsj1(loop, instance->requestURL->c_str(), &instance->wsj1_itf, nullptr);
- if (instance->wsj1 == nullptr)
- {
- TRACE_ERROR("connection to %s failed: %m\n", api_url);
- return nullptr;
- }
-
- // Signal
- pthread_mutex_unlock(&instance->mutex);
- pthread_cond_signal(&instance->cond);
-
- while (1)
- {
- sd_event_run(loop, 1000 * 1000); // 1sec
- }
-
- return nullptr;
-}
-
-/**
- * @brief Connect with a service
- * @param URL
- * @return Success or failure of connection
- */
-bool RequestManage::Connect(const char* api_url, RequestManageListener* listener)
-{
- this->listener = listener;
- this->requestURL = new std::string(api_url);
-
- pthread_t thread_id;
- pthread_create(&thread_id, nullptr, RequestManage::BinderThread, (void*)this);
-
- // Wait until response comes
- pthread_mutex_lock(&this->mutex);
- pthread_cond_wait(&this->cond, &this->mutex);
- pthread_mutex_unlock(&this->mutex);
-
- if (this->wsj1 == nullptr)
- {
- return false;
- }
-
- return true;
-}
-
-/**
- * @brief Connection status check with service
- * @return Connection status
- */
-bool RequestManage::IsConnect(){
- return (this->wsj1 != NULL);
-}
-
-/**
- * @brief Call Binder's API
- * @param api api
- * @param verb method
- * @param req_json Json style request
- * @return Success or failure of processing
- */
-bool RequestManage::CallBinderAPI(const char* api, const char* verb, const char* req_json)
-{
- // Send request
- int rc = afb_wsj1_call_s(this->wsj1, api, verb, req_json, RequestManage::OnReplyStatic, this);
- if (rc < 0)
- {
- TRACE_ERROR("calling %s/%s(%s) failed: %m\n", api, verb, req_json);
- return false;
- }
-
- return true;
-}
-
-/**
- * @brief Set session handle
- * @param session Session handle
- */
-void RequestManage::SetSessionHandle( uint32_t session )
-{
- this->sessionHandle = session;
-}
-
-/**
- * @brief Get session handle
- * @return Session handle
- */
-uint32_t RequestManage::GetSessionHandle()
-{
- return this->sessionHandle;
-}
-
-/**
- * @brief Set route handle
- * @param route Route handle
- */
-void RequestManage::SetRouteHandle( uint32_t route )
-{
- this->routeHandle = route;
-}
-
-/**
- * @brief Get route handle
- * @return Route handle
- */
-uint32_t RequestManage::GetRouteHandle()
-{
- return this->routeHandle;
-}
-
-void RequestManage::OnReply(struct afb_wsj1_msg *msg)
-{
- struct json_object * json = afb_wsj1_msg_object_j(msg);
-
- this->listener->OnReply(json);
-}
-
-void RequestManage::OnHangup(struct afb_wsj1 *wsj1)
-{
-}
-
-void RequestManage::OnCallStatic(const char *api, const char *verb, struct afb_wsj1_msg *msg)
-{
-}
-
-void RequestManage::OnEventStatic(const char *event, struct afb_wsj1_msg *msg)
-{
-}
-
-
-/**
- * @brief Answer callback from service
- */
-void RequestManage::OnReplyStatic(void *closure, struct afb_wsj1_msg *msg)
-{
- RequestManage* instance = (RequestManage *)closure;
- instance->OnReply(msg);
-}
-
-/**
- * @brief Service hang notification
- */
-void RequestManage::OnHangupStatic(void *closure, struct afb_wsj1 *wsj1)
-{
- printf("DEBUG:%s:%d (%p,%p)\n", __func__, __LINE__, closure, wsj1);
- fflush(stdout);
-}
-
-void RequestManage::OnCallStatic(void *closure, const char *api, const char *verb, struct afb_wsj1_msg *msg)
-{
- printf("DEBUG:%s:%d (%p,%s,%s,%p)\n", __func__, __LINE__, closure, api, verb, msg);
- fflush(stdout);
-}
-
-void RequestManage::OnEventStatic(void *closure, const char *event, struct afb_wsj1_msg *msg)
-{
- printf("DEBUG:%s:%d (%p,%s,%p)\n", __func__, __LINE__, closure, event, msg);
- fflush(stdout);
-}
-
diff --git a/libnavi/src/navicore.cpp b/libnavi/src/navicore.cpp
deleted file mode 100644
index 5402aa8..0000000
--- a/libnavi/src/navicore.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include "libnavicore.hpp"
-#include "BinderClient.h"
-
-static BinderClient mBinderClient;
-
-naviapi::Navicore::Navicore()
-{
-}
-
-naviapi::Navicore::~Navicore()
-{
-}
-
-bool naviapi::Navicore::connect(int argc, char *argv[], NavicoreListener* listener)
-{
- this->mListener = listener;
-
- if (argc != 3)
- {
- printf("Error: argc != 3 : argc = %d\n", argc);
- return false;
- }
-
- char url[1024];
- sprintf(url, "ws://localhost:%d/api?token=%s", atoi(argv[1]), argv[2]);
-
- return mBinderClient.ConnectServer(url, this->mListener);
-}
-
-void naviapi::Navicore::disconnect()
-{
- // TODO
-}
-
-void naviapi::Navicore::getAllSessions()
-{
- mBinderClient.NavicoreGetAllSessions();
-}
-
-void naviapi::Navicore::getPosition(std::vector<int32_t> params)
-{
- mBinderClient.NavicoreGetPosition(params);
-}
-
-void naviapi::Navicore::getAllRoutes()
-{
- mBinderClient.NavicoreGetAllRoutes();
-}
-
-void naviapi::Navicore::createRoute(uint32_t session)
-{
- mBinderClient.NavicoreCreateRoute(session);
-}
-
-void naviapi::Navicore::pauseSimulation(uint32_t session)
-{
- mBinderClient.NavicorePauseSimulation(session);
-}
-
-void naviapi::Navicore::setSimulationMode(uint32_t session, bool activate)
-{
- mBinderClient.NavicoreSetSimulationMode(session, activate);
-}
-
-void naviapi::Navicore::cancelRouteCalculation(uint32_t session, uint32_t routeHandle)
-{
- mBinderClient.NavicoreCancelRouteCalculation(session, routeHandle);
-}
-
-void naviapi::Navicore::setWaypoints(uint32_t session, uint32_t routeHandle, bool flag, std::vector<Waypoint> waypoints)
-{
- mBinderClient.NavicoreSetWaypoints(session, routeHandle, flag, waypoints);
-}
-
-void naviapi::Navicore::calculateRoute(uint32_t session, uint32_t routeHandle)
-{
- mBinderClient.NavicoreCalculateRoute(session, routeHandle);
-}
-
diff --git a/libnavi/src/navicorelistener.cpp b/libnavi/src/navicorelistener.cpp
deleted file mode 100644
index 2aa2b5d..0000000
--- a/libnavi/src/navicorelistener.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include "libnavicore.hpp"
-
-naviapi::NavicoreListener::NavicoreListener()
-{
-}
-
-naviapi::NavicoreListener::~NavicoreListener()
-{
-}
-
-void naviapi::NavicoreListener::getAllSessions_reply(const std::map< uint32_t, std::string >& allSessions)
-{
-}
-
-void naviapi::NavicoreListener::getPosition_reply(std::map< int32_t, variant > position)
-{
-}
-
-void naviapi::NavicoreListener::getAllRoutes_reply(std::vector< uint32_t > allRoutes)
-{
-}
-
-void naviapi::NavicoreListener::createRoute_reply(uint32_t routeHandle)
-{
-}
-