aboutsummaryrefslogtreecommitdiffstats
path: root/src
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 /src
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 'src')
-rw-r--r--src/analyze_request.cpp296
-rw-r--r--src/api.cpp419
-rw-r--r--src/binder_reply.cpp168
-rw-r--r--src/genivi_request.cpp350
-rw-r--r--src/traces.h38
5 files changed, 0 insertions, 1271 deletions
diff --git a/src/analyze_request.cpp b/src/analyze_request.cpp
deleted file mode 100644
index 593ed42..0000000
--- a/src/analyze_request.cpp
+++ /dev/null
@@ -1,296 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include "genivi/genivi-navicore-constants.h"
-#include "analyze_request.h"
-#include <stdio.h>
-#include <string.h>
-#include <json-c/json.h>
-#include <string>
-
-
-/**
- * @brief Create arguments to pass to Genivi API GetPosition.
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] Params An array of key information you want to obtain
- * @return Success or failure of processing
- */
-bool AnalyzeRequest::CreateParamsGetPosition( const char* req_json_str, std::vector< int32_t >& Params)
-{
- struct json_object *req_json = json_tokener_parse(req_json_str);
- struct json_object* jValuesToReturn = NULL;
- if( json_object_object_get_ex(req_json, "valuesToReturn", &jValuesToReturn) )
- {
- if( json_object_is_type(jValuesToReturn, json_type_array) )
- {
- for (int i = 0; i < json_object_array_length(jValuesToReturn); ++i)
- {
- struct json_object* j_elem = json_object_array_get_idx(jValuesToReturn, i);
-
- // JSON type acquisition
- if( json_object_is_type(j_elem, json_type_int ) )
- {
- int32_t req_key = json_object_get_int (j_elem);
-
- // no supported.
- if ((NAVICORE_TIMESTAMP == req_key) || (NAVICORE_SPEED == req_key))
- {
- continue;
- }
- Params.push_back(req_key);
- }
- else
- {
- fprintf(stdout, "key is not integer type.\n");
- return false;
- }
- }
- }
- else
- {
- fprintf(stdout, "request is not array type.\n");
- return false;
- }
- }
- else
- {
- fprintf(stdout, "key valuesToReturn not found.\n");
- return false;
- }
-
- return true;
-}
-
-
-/**
- * @brief Create arguments to pass to Genivi API CreateRoute
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] sessionHdl Session handle
- * @return Success or failure of processing
- */
-bool AnalyzeRequest::CreateParamsCreateRoute( const char* req_json_str, uint32_t& sessionHdl )
-{
- // Get sessionHandle information
- return JsonObjectGetSessionHdl(req_json_str, sessionHdl);
-}
-
-
-/**
- * @brief Create arguments to pass to Genivi API PauseSimulation
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] sessionHdl Session handle
- * @return Success or failure of processing
- */
-bool AnalyzeRequest::CreateParamsPauseSimulation( const char* req_json_str, uint32_t& sessionHdl )
-{
- // Get sessionHandle information
- return JsonObjectGetSessionHdl(req_json_str, sessionHdl);
-}
-
-
-/**
- * @brief Create arguments to pass to Genivi API CreateRoute
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] sessionHdl Session handle
- * @param[out] simuMode Simulation mode
- * @return Success or failure of processing
- */
-bool AnalyzeRequest::CreateParamsSetSimulationMode( const char* req_json_str, uint32_t& sessionHdl, bool& simuMode )
-{
- bool ret = false;
- struct json_object *sess = NULL;
- struct json_object *simu = NULL;
-
- struct json_object *req_json = json_tokener_parse(req_json_str);
- if ((json_object_object_get_ex(req_json, "sessionHandle", &sess)) &&
- (json_object_object_get_ex(req_json, "simulationMode", &simu)))
- {
- if (json_object_is_type(sess, json_type_int) &&
- json_object_is_type(simu, json_type_boolean))
- {
- sessionHdl = json_object_get_int(sess);
- simuMode = json_object_get_int(simu);
- ret = true;
- }
- else
- {
- fprintf(stdout, "key is invalid type.\n");
- }
- }
- else
- {
- fprintf(stdout, "key sessionHandle or simulationMode not found.\n");
- }
-
- return ret;
-}
-
-
-/**
- * @brief Create arguments to pass to Genivi API CancelRouteCalculation
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] sessionHdl Session handle
- * @param[out] routeHdl Route handle
- * @return Success or failure of processing
- */
-bool AnalyzeRequest::CreateParamsCancelRouteCalculation( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl )
-{
- // Get sessionHandle, RouteHandle
- return JsonObjectGetSessionHdlRouteHdl(req_json_str, sessionHdl, routeHdl);
-}
-
-
-/**
- * @brief Create arguments to pass to Genivi API SetWaypoints
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] sessionHdl Session handle
- * @param[out] routeHdl Route handle
- * @param[out] currentPos Whether or not to draw a route from the position of the vehicle
- * @param[out] waypointsList Destination coordinates
- * @return Success or failure of processing
- */
-bool AnalyzeRequest::CreateParamsSetWaypoints( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl,
- bool& currentPos, std::vector<Waypoint>& waypointsList )
-{
- bool ret = false;
- struct json_object *sess = NULL;
- struct json_object *rou = NULL;
- struct json_object *current = NULL;
- struct json_object *wpl = NULL;
-
- struct json_object *req_json = json_tokener_parse(req_json_str);
- if ((json_object_object_get_ex(req_json, "sessionHandle", &sess)) &&
- (json_object_object_get_ex(req_json, "route", &rou)) &&
- (json_object_object_get_ex(req_json, "startFromCurrentPosition", &current)) &&
- (json_object_object_get_ex(req_json, "", &wpl)))
- {
- if (json_object_is_type(sess, json_type_int) &&
- json_object_is_type(rou, json_type_int) &&
- json_object_is_type(current, json_type_boolean) &&
- json_object_is_type(wpl, json_type_array))
- {
- sessionHdl = json_object_get_int(sess);
- routeHdl = json_object_get_int(rou);
- currentPos = json_object_get_boolean(current);
-
- // Get latitude, longitude
- for (int i = 0; i < json_object_array_length(wpl); ++i)
- {
- struct json_object *array = json_object_array_get_idx(wpl, i);
- struct json_object *lati = NULL;
- struct json_object *longi = NULL;
-
- if (json_object_object_get_ex(array, "latitude", &lati) &&
- json_object_object_get_ex(array, "longitude", &longi)) {
-
- double latitude = json_object_get_double(lati);
- double longitude = json_object_get_double(longi);
- Waypoint destWp(latitude, longitude);
- waypointsList.push_back(destWp);
- ret = true;
- }
- else
- {
- fprintf(stdout, "key latitude or longitude not found.\n");
- }
- }
- }
- else
- {
- fprintf(stdout, "key is invalid type.\n");
- }
- }
- else
- {
- fprintf(stdout, "key valuesToReturn not found.\n");
- }
-
- return ret;
-}
-
-
-/**
- * @brief Create arguments to pass to Genivi API CalculateRoute
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] sessionHdl Session handle
- * @param[out] routeHdl Route handle
- * @return Success or failure of processing
- */
-bool AnalyzeRequest::CreateParamsCalculateRoute( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl )
-{
- // Get sessionHandle, RouteHandle
- return JsonObjectGetSessionHdlRouteHdl(req_json_str, sessionHdl, routeHdl);
-}
-
-
-/**
- * @brief Get session handle and route handle information from JSON
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] Session handle value
- * @return Success or failure of processing
- */
-
-bool AnalyzeRequest::JsonObjectGetSessionHdl( const char* req_json_str, uint32_t& sessionHdl)
-{
- bool ret = false;
- struct json_object *sess = NULL;
-
- struct json_object *req_json = json_tokener_parse(req_json_str);
- if (json_object_object_get_ex(req_json, "sessionHandle", &sess))
- {
- if (json_object_is_type(sess, json_type_int))
- {
- sessionHdl = json_object_get_int(sess);
- ret = true;
- }
- else
- {
- fprintf(stdout, "key is not integer type.\n");
- }
- }
- else
- {
- fprintf(stdout, "key sessionHandle not found.\n");
- }
-
- return ret;
-}
-
-
-/**
- * @brief Get session handle and route handle information from JSON
- * @param[in] req_json_str JSON request from BinderClient
- * @param[out] Session handle value
- * @param[out] Route handle value
- * @return Success or failure of processing
- */
-
-bool AnalyzeRequest::JsonObjectGetSessionHdlRouteHdl( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl)
-{
- bool ret = false;
- struct json_object *sess = NULL;
- struct json_object *rou = NULL;
-
- struct json_object *req_json = json_tokener_parse(req_json_str);
- if ((json_object_object_get_ex(req_json, "sessionHandle", &sess)) &&
- (json_object_object_get_ex(req_json, "route", &rou)))
- {
- if (json_object_is_type(sess, json_type_int) &&
- json_object_is_type(rou, json_type_int))
- {
- sessionHdl = json_object_get_int(sess);
- routeHdl = json_object_get_int(rou);
- ret = true;
- }
- else
- {
- fprintf(stdout, "key is not integer type.\n");
- }
- }
- else
- {
- fprintf(stdout, "key sessionHandle or route not found.\n");
- }
-
- return ret;
-}
diff --git a/src/api.cpp b/src/api.cpp
deleted file mode 100644
index 8573b47..0000000
--- a/src/api.cpp
+++ /dev/null
@@ -1,419 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include <string.h>
-
-#include "binder_reply.h"
-#include "genivi_request.h"
-#include "analyze_request.h"
-#include "genivi/genivi-navicore-constants.h"
-
-#define AFB_BINDING_VERSION 2
-
-extern "C" {
- #include <afb/afb-binding.h>
-}
-
-/**
- * Variable declaration
- */
-GeniviRequest* geniviRequest; // Send request to Genivi
-BinderReply* binderReply; // Convert Genivi response result to json format
-AnalyzeRequest* analyzeRequest; // Analyze BinderClient's request and create arguments to pass to GeniviAPI
-
-/**
- * @brief navicore_getposition request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreGetPosition(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_getposition");
-
- // Request of Json format request
- json_object* req_json = afb_req_json(req);
- const char* req_json_str = json_object_to_json_string(req_json);
- AFB_REQ_NOTICE(req, "req_json_str = %s", req_json_str);
-
- // Request analysis and create arguments to pass to Genivi
- std::vector< int32_t > Params;
- if( !analyzeRequest->CreateParamsGetPosition( req_json_str, Params ))
- {
- afb_req_fail(req, "failed", "navicore_getposition Bad Request");
- return;
- }
-
- // GENIVI API call
- std::map< int32_t, double > posList = geniviRequest->NavicoreGetPosition( Params );
-
- // Convert to json style response
- APIResponse response = binderReply->ReplyNavicoreGetPosition( posList );
-
- // On success
- if(response.isSuccess)
- {
- AFB_REQ_NOTICE(req, "res_json_str = %s", json_object_to_json_string(response.json_data));
- // Return success to BinderClient
- afb_req_success(req, response.json_data, "navicore_getposition");
- }
- else
- {
- AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
- afb_req_fail(req, "failed", "navicore_getposition Bad Request");
-
- // Json object release
- json_object_put(response.json_data);
- }
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_getallroutes request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreGetAllRoutes(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_getallroutes");
-
- // No request information in json format
- AFB_REQ_NOTICE(req, "req_json_str = none");
-
- // GENEVI API call
- std::vector< uint32_t > allRoutes = geniviRequest->NavicoreGetAllRoutes();
-
- // Convert to json style response
- APIResponse response = binderReply->ReplyNavicoreGetAllRoutes( allRoutes );
-
- // On success
- if(response.isSuccess)
- {
- AFB_REQ_NOTICE(req, "res_json_str = %s", json_object_to_json_string(response.json_data));
- // Return success to BinderClient
- afb_req_success(req, response.json_data, "navicore_getallroutes");
- }
- else
- {
- AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
- afb_req_fail(req, "failed", "navicore_getallroutes Bad Request");
-
- // json object release
- json_object_put(response.json_data);
- }
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_createroute request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreCreateRoute(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s ", __func__);
- AFB_REQ_DEBUG(req, "request navicore_createroute");
-
- // Request of json format request
- json_object* req_json = afb_req_json(req);
- const char* req_json_str = json_object_to_json_string(req_json);
- AFB_REQ_NOTICE(req, "req_json_str = %s", req_json_str);
-
- // Request analysis and create arguments to pass to Genivi
- uint32_t sessionHdl = 0;
- if( !analyzeRequest->CreateParamsCreateRoute( req_json_str, sessionHdl ))
- {
- afb_req_fail(req, "failed", "navicore_createroute Bad Request");
- return;
- }
-
- // GENEVI API call
- uint32_t routeHdl = geniviRequest->NavicoreCreateRoute( sessionHdl );
-
- // Convert to json style response
- APIResponse response = binderReply->ReplyNavicoreCreateRoute( routeHdl );
-
- // On success
- if(response.isSuccess)
- {
- AFB_REQ_NOTICE(req, "res_json_str = %s", json_object_to_json_string(response.json_data));
- // Return success to BinderClient
- afb_req_success(req, response.json_data, "navicore_createroute");
- }
- else
- {
- AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
- afb_req_fail(req, "failed", "navicore_createroute Bad Request");
-
- // json object release
- json_object_put(response.json_data);
- }
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_pausesimulation request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicorePauseSimulation(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_pausesimulation");
-
- // Request of json format request
- json_object* req_json = afb_req_json(req);
- const char* req_json_str = json_object_to_json_string(req_json);
- AFB_REQ_NOTICE(req, "req_json_str = %s", req_json_str);
-
- // Request analysis and create arguments to pass to Genivi
- uint32_t sessionHdl = 0;
- if( !analyzeRequest->CreateParamsPauseSimulation( req_json_str, sessionHdl ))
- {
- afb_req_fail(req, "failed", "navicore_pausesimulation Bad Request");
- return;
- }
-
- // GENEVI API call
- geniviRequest->NavicorePauseSimulation( sessionHdl );
-
- // No reply unnecessary API for conversion to json format response is unnecessary
- AFB_REQ_NOTICE(req, "res_json_str = none");
-
- // Return success to BinderClient
- afb_req_success(req, NULL, "navicore_pausesimulation");
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_setsimulationmode request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreSetSimulationMode(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_setsimulationmode");
-
- // Request of json format request
- json_object* req_json = afb_req_json(req);
- const char* req_json_str = json_object_to_json_string(req_json);
- AFB_REQ_NOTICE(req, "req_json_str = %s", req_json_str);
-
- // Request analysis and create arguments to pass to Genivi
- uint32_t sessionHdl = 0;
- bool simuMode = false;
- if( !analyzeRequest->CreateParamsSetSimulationMode( req_json_str, sessionHdl, simuMode ))
- {
- afb_req_fail(req, "failed", "navicore_setsimulationmode Bad Request");
- return;
- }
-
- // GENEVI API call
- geniviRequest->NavicoreSetSimulationMode( sessionHdl, simuMode );
-
- // No reply unnecessary API for conversion to json format response is unnecessary
- AFB_REQ_NOTICE(req, "res_json_str = none");
-
- // Return success to BinderClient
- afb_req_success(req, NULL, "navicore_setsimulationmode");
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_cancelroutecalculation request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreCancelRouteCalculation(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_cancelroutecalculation");
-
- // Request of Json format request
- json_object* req_json = afb_req_json(req);
- const char* req_json_str = json_object_to_json_string(req_json);
- AFB_REQ_NOTICE(req, "req_json_str = %s", req_json_str);
-
- // Request analysis and create arguments to pass to Genivi
- uint32_t sessionHdl = 0;
- uint32_t routeHdl = 0;
- if( !analyzeRequest->CreateParamsCancelRouteCalculation( req_json_str, sessionHdl, routeHdl ))
- {
- afb_req_fail(req, "failed", "navicore_cancelroutecalculation Bad Request");
- return;
- }
-
- // GENEVI API call
- geniviRequest->NavicoreCancelRouteCalculation( sessionHdl, routeHdl );
-
- // No reply unnecessary API for conversion to json format response is unnecessary
- AFB_REQ_NOTICE(req, "res_json_str = none");
-
- // Return success to BinderClient
- afb_req_success(req, NULL, "navicore_cancelroutecalculation");
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_setwaypoints request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreWaypoints(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_setwaypoints");
-
- // Request of Json format request
- json_object* req_json = afb_req_json(req);
- const char* req_json_str = json_object_to_json_string(req_json);
- AFB_REQ_NOTICE(req, "req_json_str = %s", req_json_str);
-
- // Request analysis and create arguments to pass to Genivi
- uint32_t sessionHdl = 0;
- uint32_t routeHdl = 0;
- bool currentPos = false;
- std::vector<Waypoint> waypointsList;
- if( !analyzeRequest->CreateParamsSetWaypoints( req_json_str, sessionHdl, routeHdl, currentPos, waypointsList ))
- {
- afb_req_fail(req, "failed", "navicore_setwaypoints Bad Request");
- return;
- }
-
- // GENEVI API call
- geniviRequest->NavicoreSetWaypoints( sessionHdl, routeHdl, currentPos, waypointsList );
-
- // No reply unnecessary API for conversion to json format response is unnecessary
- AFB_REQ_NOTICE(req, "res_json_str = none");
-
- // Return success to BinderClient
- afb_req_success(req, NULL, "navicore_setwaypoints");
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_calculateroute request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreCalculateRoute(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_calculateroute");
-
- // Request of Json format request
- json_object* req_json = afb_req_json(req);
- const char* req_json_str = json_object_to_json_string(req_json);
- AFB_REQ_NOTICE(req, "req_json_str = %s", req_json_str);
-
- // Request analysis and create arguments to pass to Genivi
- uint32_t sessionHdl = 0;
- uint32_t routeHdl = 0;
- if( !analyzeRequest->CreateParamsCalculateRoute( req_json_str, sessionHdl, routeHdl ))
- {
- afb_req_fail(req, "failed", "navicore_calculateroute Bad Request");
- return;
- }
-
- // GENEVI API call
- geniviRequest->NavicoreCalculateRoute( sessionHdl, routeHdl );
-
- // No reply unnecessary API for conversion to json format response is unnecessary
- AFB_REQ_NOTICE(req, "res_json_str = none");
-
- // Return success to BinderClient
- afb_req_success(req, NULL, "navicore_calculateroute");
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief navicore_getallsessions request callback
- * @param[in] req Request from client
- */
-void OnRequestNavicoreGetAllSessions(afb_req req)
-{
- AFB_REQ_NOTICE(req, "--> Start %s()", __func__);
- AFB_REQ_DEBUG(req, "request navicore_getallsessions");
-
- // No request information in Json format
- AFB_REQ_NOTICE(req, "req_json_str = none");
-
- // GENEVI API call
- std::map<uint32_t, std::string> allSessions = geniviRequest->NavicoreGetAllSessions();
-
- // Convert to json style response
- APIResponse response = binderReply->ReplyNavicoreGetAllSessions( allSessions );
-
- // On success
- if(response.isSuccess)
- {
- AFB_REQ_NOTICE(req, "res_json_str = %s", json_object_to_json_string(response.json_data));
- // Return success to BinderClient
- afb_req_success(req, response.json_data, "navicore_getallsessions");
- }
- else
- {
- AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
- afb_req_fail(req, "failed", "navicore_getallsessions Bad Request");
-
- // json object release
- json_object_put(response.json_data);
- }
-
- AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
-}
-
-
-/**
- * @brief Callback called at service startup
- */
-int Init()
-{
- // Create instance
- geniviRequest = new GeniviRequest();
- binderReply = new BinderReply();
- analyzeRequest = new AnalyzeRequest();
-
- return 0;
-}
-
-/**
- * @brief API definition
- */
-const afb_verb_v2 verbs[] =
-{
- { verb : "navicore_getposition", callback : OnRequestNavicoreGetPosition },
- { verb : "navicore_getallroutes", callback : OnRequestNavicoreGetAllRoutes },
- { verb : "navicore_createroute", callback : OnRequestNavicoreCreateRoute },
- { verb : "navicore_pausesimulation", callback : OnRequestNavicorePauseSimulation },
- { verb : "navicore_setsimulationmode", callback : OnRequestNavicoreSetSimulationMode },
- { verb : "navicore_cancelroutecalculation", callback : OnRequestNavicoreCancelRouteCalculation },
- { verb : "navicore_setwaypoints", callback : OnRequestNavicoreWaypoints },
- { verb : "navicore_calculateroute", callback : OnRequestNavicoreCalculateRoute },
- { verb : "navicore_getallsessions", callback : OnRequestNavicoreGetAllSessions },
- { verb : NULL }
-};
-
-/**
- * @brief Service definition
- */
-const afb_binding_v2 afbBindingV2 =
-{
- "naviapi",
- "",
- "",
- verbs,
- NULL,
- Init
-};
-
diff --git a/src/binder_reply.cpp b/src/binder_reply.cpp
deleted file mode 100644
index 172a22a..0000000
--- a/src/binder_reply.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include "binder_reply.h"
-#include "genivi/genivi-navicore-constants.h"
-
-/**
- * @brief GeniviAPI GetPosition call
- * @param[in] posList Map information on key and value of information acquired from Genivi
- * @return Response information
- */
-APIResponse BinderReply::ReplyNavicoreGetPosition( std::map<int32_t, double>& posList )
-{
- APIResponse response = {0};
-
- // Json information to return as a response
- struct json_object* response_json = json_object_new_array();
- std::map<int32_t, double>::iterator it;
-
- // If the argument map is empty return
- if(posList.empty())
- {
- response.isSuccess = false;
- response.errMessage = "posList is empty";
- response.json_data = response_json;
- return response;
- }
-
- // Make the passed Genivi response json format
- for (it = posList.begin(); it != posList.end(); it++)
- {
- struct json_object* obj = json_object_new_object();
-
- switch(it->first)
- {
- case NAVICORE_LATITUDE:
- json_object_object_add(obj, "key", json_object_new_int(NAVICORE_LATITUDE));
- json_object_object_add(obj, "value", json_object_new_double(it->second) );
- json_object_array_add(response_json, obj);
- break;
-
- case NAVICORE_LONGITUDE:
- json_object_object_add(obj, "key", json_object_new_int(NAVICORE_LONGITUDE));
- json_object_object_add(obj, "value", json_object_new_double(it->second));
- json_object_array_add(response_json, obj);
- break;
-
- case NAVICORE_HEADING:
- json_object_object_add(obj, "key", json_object_new_int(NAVICORE_HEADING));
- json_object_object_add(obj, "value", json_object_new_boolean (it->second));
- json_object_array_add(response_json, obj);
- break;
-#if 0
- // no support
- case NAVICORE_TIMESTAMP:
- json_object_object_add(obj, "key", json_object_new_int(NAVICORE_TIMESTAMP));
- json_object_object_add(obj, "value", json_object_new_int(it->second));
- json_object_array_add(response_json, obj);
- break;
-
- // no support
- case NAVICORE_SPEED:
- json_object_object_add(obj, "key", json_object_new_int(NAVICORE_SPEED));
- json_object_object_add(obj, "value", json_object_new_int(it->second));
- json_object_array_add(response_json, obj);
- break;
-#endif
-
- case NAVICORE_SIMULATION_MODE:
- json_object_object_add(obj, "key", json_object_new_int(NAVICORE_SIMULATION_MODE));
- json_object_object_add(obj, "value", json_object_new_boolean (it->second));
- json_object_array_add(response_json, obj);
- break;
-
- default:
- fprintf(stderr, "Unknown key.");
- json_object_put(obj);
- break;
- }
- }
-
- response.json_data = response_json;
- response.isSuccess = true;
- return response;
-}
-
-/**
- * @brief GeniviAPI GetAllRoutes call
- * @param[in] allRoutes Route handle information
- * @return Response information
- */
-APIResponse BinderReply::ReplyNavicoreGetAllRoutes( std::vector< uint32_t > &allRoutes )
-{
- APIResponse response = {0};
-
- // Json information to return as a response
- struct json_object* response_json = json_object_new_array();
-
- if (0 < allRoutes.size())
- {
- std::vector< uint32_t >::iterator it;
-
- for (it = allRoutes.begin(); it != allRoutes.end(); it++)
- {
- struct json_object* obj = json_object_new_object();
- json_object_object_add(obj, "route", json_object_new_int(*it));
- json_object_array_add(response_json, obj);
- }
- }
-
- response.json_data = response_json;
- response.isSuccess = true;
- return response;
-}
-
-/**
- * @brief GeniviAPI CreateRoute call
- * @param[in] route Route handle
- * @return Response information
- */
-APIResponse BinderReply::ReplyNavicoreCreateRoute( uint32_t route )
-{
- APIResponse response;
-
- // Json information to return as a response
- struct json_object* response_json = json_object_new_object();
- json_object_object_add(response_json, "route", json_object_new_int(route));
-
- response.json_data = response_json;
- response.isSuccess = true;
- return response;
-}
-
-/**
- * @brief GeniviAPI GetAllSessions call
- * @param[in] allSessions Map information on key and value of information acquired from Genivi
- * @return Response information
- */
-APIResponse BinderReply::ReplyNavicoreGetAllSessions( std::map<uint32_t, std::string> &allSessions )
-{
- APIResponse response = {0};
-
- // Json information to return as a response
- struct json_object* response_json = json_object_new_array();
- std::map<uint32_t, std::string>::iterator it;
-
- for (it = allSessions.begin(); it != allSessions.end(); it++)
- {
- struct json_object* obj = json_object_new_object();
-
- if (NAVICORE_INVALID != it->first)
- {
- json_object_object_add(obj, "sessionHandle", json_object_new_int(it->first));
- json_object_object_add(obj, "client", json_object_new_string(it->second.c_str()));
- json_object_array_add(response_json, obj);
- }
- else
- {
- fprintf(stderr, "invalid key.");
- json_object_put(obj);
- }
- }
-
- response.json_data = response_json;
- response.isSuccess = true;
- return response;
-}
-
diff --git a/src/genivi_request.cpp b/src/genivi_request.cpp
deleted file mode 100644
index a485667..0000000
--- a/src/genivi_request.cpp
+++ /dev/null
@@ -1,350 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#include "genivi/navicore.h"
-#include "genivi/genivi-navicore-constants.h"
-#include "genivi_request.h"
-#include <stdio.h>
-#include <exception>
-#include <dbus-c++-1/dbus-c++/dbus.h>
-
-/**
- * @brief Destructor
- */
-GeniviRequest::~GeniviRequest()
-{
- delete (Navicore*)navicore_;
- navicore_ = NULL;
-}
-
-/**
- * @brief DBus session creation
- */
-void GeniviRequest::CreateDBusSession( )
-{
- try
- {
- static DBus::BusDispatcher dispatcher;
- DBus::default_dispatcher = &dispatcher;
- DBus::Connection conn = DBus::Connection::SessionBus();
-
- navicore_ = new Navicore(conn, "/org/genivi/navicore", "org.agl.naviapi");
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-}
-
-/**
- * @brief Check connection status
- * @return Presence / absence of connection
- */
-bool GeniviRequest::CheckSession()
-{
- if(this->navicore_ == NULL)
- {
- this->CreateDBusSession();
- }
-
- try
- {
- // Get connection status
- DBus::Connection conn = ((Navicore*)navicore_)->conn();
- bool isConnect = conn.connected();
-
- // If it is not connected, it issues an error
- if(!isConnect)
- {
- fprintf(stderr, "Service has no session.\n");
- }
-
- return isConnect;
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- return false;
- }
-}
-
-/**
- * @brief Call GeniviAPI GetPosition to get information
- * @param[in] valuesToReturn Key arrangement of information acquired from Genivi
- * @return Map information on key and value of information acquired from Genivi
- */
-std::map< int32_t, double > GeniviRequest::NavicoreGetPosition( const std::vector< int32_t >& valuesToReturn )
-{
- std::map< int32_t, double > ret;
-
- if( !CheckSession() )
- {
- return ret;
- }
-
- try
- {
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > >::iterator it;
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > PosList =
- ((Navicore*)navicore_)->GetPosition(valuesToReturn);
- for (it = PosList.begin(); it != PosList.end(); it++)
- {
- if (it->first == NAVICORE_LATITUDE || it->second._1 == NAVICORE_LATITUDE)
- {
- ret[it->first] = it->second._2.reader().get_double();
- }
- else if (it->first == NAVICORE_LONGITUDE || it->second._1 == NAVICORE_LONGITUDE)
- {
- ret[it->first] = it->second._2.reader().get_double();
- }
- else if (it->first == NAVICORE_HEADING || it->second._1 == NAVICORE_HEADING)
- {
- ret[it->first] = it->second._2.reader().get_uint32();
- }
-#if 0 // no supported
- else if (it->first == NAVICORE_TIMESTAMP || it->second._1 == NAVICORE_TIMESTAMP)
- {
- ret[it->first] = it->second._2.reader().get_uint32();
- }
- else if (it->first == NAVICORE_SPEED || it->second._1 == NAVICORE_SPEED)
- {
- ret[it->first] = it->second._2.reader().get_int32();
- }
-#endif
- else if (it->first == NAVICORE_SIMULATION_MODE || it->second._1 == NAVICORE_SIMULATION_MODE)
- {
- ret[it->first] = it->second._2.reader().get_bool();
- }
- }
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-
- return ret;
-}
-
-/**
- * @brief Call GeniviAPI GetPosition to get information
- * @return Route handle acquired from Genivi
- */
-std::vector< uint32_t > GeniviRequest::NavicoreGetAllRoutes( void )
-{
- if( !CheckSession() )
- {
- std::vector< uint32_t > no_route;
- return no_route;
- }
-
- std::vector< uint32_t > allRoutes;
- try
- {
- allRoutes = ((Navicore*)navicore_)->GetAllRoutes();
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-
- return allRoutes;
-}
-
-
-/**
- * @brief Call GeniviAPI GetPosition to get information
- * @param[in] sessionHandle Session handle
- * @return Route handle acquired from Genivi
- */
-uint32_t GeniviRequest::NavicoreCreateRoute( const uint32_t& sessionHandle )
-{
- if( !CheckSession() )
- {
- return 0;
- }
-
- uint32_t routeHandle = 0;
- try
- {
- routeHandle = ((Navicore*)navicore_)->CreateRoute(sessionHandle);
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-
- return routeHandle;
-}
-
-/**
- * @brief Call GeniviAPI PauseSimulation
- * @param[in] sessionHandle Session handle
- */
-void GeniviRequest::NavicorePauseSimulation( const uint32_t& sessionHandle )
-{
- if( !CheckSession() )
- {
- return;
- }
-
- try
- {
- ((Navicore*)navicore_)->PauseSimulation(sessionHandle);
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-}
-
-
-/**
- * @brief Call GeniviAPI SetSimulationMode
- * @param[in] sessionHandle Session handle
- * @param[in] activate Simulation mode enabled / disabled
- */
-void GeniviRequest::NavicoreSetSimulationMode( const uint32_t& sessionHandle, const bool& activate )
-{
- if( !CheckSession() )
- {
- return;
- }
-
- try
- {
- ((Navicore*)navicore_)->SetSimulationMode(sessionHandle, activate);
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-}
-
-
-/**
- * @brief Call GeniviAPI SetSimulationMode
- * @param[in] sessionHandle Session handle
- * @param[in] routeHandle Route handle
- */
-void GeniviRequest::NavicoreCancelRouteCalculation( const uint32_t& sessionHandle, const uint32_t& routeHandle )
-{
- if( !CheckSession() )
- {
- return;
- }
-
- try
- {
- ((Navicore*)navicore_)->CancelRouteCalculation(sessionHandle, routeHandle);
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-}
-
-/**
- * @brief Call GeniviAPI SetWaypoints
- * @param[in] sessionHandle Session handle
- * @param[in] routeHandle Route handle
- * @param[in] startFromCurrentPosition Whether or not to draw a route from the position of the vehicle
- * @param[in] waypointsList Destination coordinates
- */
-void GeniviRequest::NavicoreSetWaypoints( const uint32_t& sessionHandle, const uint32_t& routeHandle,
- const bool& startFromCurrentPosition, const std::vector<Waypoint>& waypointsList )
-{
- if( !CheckSession() )
- {
- return;
- }
-
- std::vector<Waypoint>::const_iterator it;
- std::vector< std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > > wpl;
-
- fprintf(stdout, "session: %d, route: %d, startFromCurrentPosition: %d\n",
- sessionHandle, routeHandle, startFromCurrentPosition);
-
- for (it = waypointsList.begin(); it != waypointsList.end(); it++)
- {
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > Point;
- ::DBus::Struct< uint8_t, ::DBus::Variant > VarLat, VarLon;
-
- VarLat._1 = NAVICORE_LATITUDE;
- VarLat._2.writer().append_double(std::get<0>(*it));
- fprintf(stdout, "VarLat._1 : %x, VarLat._2 : %lf\n", VarLat._1, VarLat._2.reader().get_double());
-
- VarLon._1 = NAVICORE_LONGITUDE;
- VarLon._2.writer().append_double(std::get<1>(*it));
- fprintf(stdout, "VarLon._1 : %x, VarLon._2 : %lf\n", VarLon._1, VarLon._2.reader().get_double());
-
- Point[NAVICORE_LATITUDE] = VarLat;
- Point[NAVICORE_LONGITUDE] = VarLon;
-
- wpl.push_back(Point);
- }
-
- try
- {
- ((Navicore*)navicore_)->SetWaypoints(sessionHandle, routeHandle, startFromCurrentPosition, wpl);
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-}
-
-/**
- * @brief Call GeniviAPI CalculateRoute
- * @param[in] sessionHandle Session handle
- * @param[in] routeHandle Route handle
- */
-void GeniviRequest::NavicoreCalculateRoute( const uint32_t& sessionHandle, const uint32_t& routeHandle )
-{
- if( !CheckSession() )
- {
- return;
- }
-
- try
- {
- ((Navicore*)navicore_)->CalculateRoute(sessionHandle, routeHandle);
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-}
-
-
-/**
- * @brief Call GeniviAPI CalculateRoute
- * @return Map information on key and value of information acquired from Genivi
- */
-std::map<uint32_t, std::string> GeniviRequest::NavicoreGetAllSessions()
-{
- std::map<uint32_t, std::string> ret;
-
- if( !CheckSession() )
- {
- return ret;
- }
-
- std::vector< ::DBus::Struct< uint32_t, std::string > > ncAllSessions;
- std::vector< ::DBus::Struct< uint32_t, std::string > >::iterator it;
-
- try
- {
- ncAllSessions = ((Navicore*)navicore_)->GetAllSessions();
- for (it = ncAllSessions.begin(); it != ncAllSessions.end(); it++)
- {
- ret[it->_1] = it->_2;
- }
- }
- catch(const std::exception& e)
- {
- fprintf(stderr, "Error:%s\n", e.what());
- }
-
- return ret;
-}
-
diff --git a/src/traces.h b/src/traces.h
deleted file mode 100644
index a1f96ec..0000000
--- a/src/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__