summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-08-30 13:37:11 -0400
committerMatt Ranostay <matt.ranostay@konsulko.com>2019-12-01 21:08:10 -0800
commit4cb2d04a796d5a081226552ad5ad594586ec1514 (patch)
tree6bea3ac4de640d98c8c27ffd0c02f9eb86ca0773
parent4d295e4a5c07f6282cf63307b982f93c4e2b7dc9 (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>
-rw-r--r--CMakeLists.txt85
-rw-r--r--README.md64
-rwxr-xr-xautobuild/agl/autobuild4
-rwxr-xr-xautobuild/linux/autobuild30
-rw-r--r--binding/CMakeLists.txt35
-rw-r--r--binding/navigation-api.c245
-rw-r--r--binding/navigation-api.h53
-rw-r--r--conf.d/cmake/config.cmake167
-rw-r--r--conf.d/wgt/config.xml.in22
-rw-r--r--config.xml.in19
-rw-r--r--include/analyze_request.h31
-rw-r--r--include/binder_reply.h34
-rw-r--r--include/genivi/genivi-navicore-constants.h199
-rw-r--r--include/genivi/genivi-navigationcore-proxy.h1147
-rw-r--r--include/genivi/navicore.h140
-rw-r--r--include/genivi_request.h37
-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
-rw-r--r--libnaviapi-agl.pc.in14
-rw-r--r--navigation.pngbin38244 -> 0 bytes
-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
36 files changed, 619 insertions, 4347 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9bd545b..b485097 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,64 +1,21 @@
-cmake_minimum_required(VERSION 2.8.11)
-
-INCLUDE(FindPkgConfig)
-
-set(PROJECT_NAME "agl-service-navigation")
-set(PROJECT_PRETTY_NAME "AFM binding for navigation service")
-set(PROJECT_DESCRIPTION "Binding for AGL Navigation API")
-set(PROJECT_INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include)
-set(PROJECT_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib)
-set(PROJECT_API_VERSION 0.1.0)
-set(PROJECT_URL "https://wiki.automotivelinux.org/eg-navi")
-
-# Set a default build type if none was specified
-if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
- message(STATUS "Setting build type to 'Release' as none was specified.")
- set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
-endif()
-
-project(navi_binder)
-
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fPIC ")
-
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-
-pkg_check_modules(DBUSCXX REQUIRED dbus-c++-1)
-pkg_check_modules(JSON REQUIRED json-c)
-pkg_check_modules(AFBWSC REQUIRED libafbwsc)
-
-include_directories( ${PROJECT_SOURCE_DIR}/libnavi/include ${PROJECT_SOURCE_DIR}/include ${DBUSCXX_INCLUDE_DIRS} ${JSON_INCLUDE_DIRS} ${AFBWSC_INCLUDE_DIRS} )
-
-add_library( naviapi-agl SHARED libnavi/src/navicore.cpp libnavi/src/navicorelistener.cpp libnavi/src/BinderClient.cpp libnavi/src/JsonRequestGenerator.cpp libnavi/src/JsonResponseAnalyzer.cpp libnavi/src/RequestManage.cpp )
-target_link_libraries( naviapi-agl ${JSON_LIBRARIES} ${AFBWSC_LIBRARIES} )
-set_target_properties(naviapi-agl PROPERTIES VERSION 0.1.0 SOVERSION 0)
-
-install(TARGETS naviapi-agl LIBRARY DESTINATION ${PROJECT_LIBDIR})
-install(FILES ${PROJECT_SOURCE_DIR}/libnavi/include/libnavicore.hpp DESTINATION ${PROJECT_INCLUDEDIR})
-
-add_library( NaviAPIService SHARED src/api.cpp src/analyze_request.cpp src/binder_reply.cpp src/genivi_request.cpp )
-
-target_link_libraries( NaviAPIService ${DBUSCXX_LIBRARIES} ${JSON_LIBRARIES} ${AFBWSC_LIBRARIES} )
-
-##########################################################################
-# AGL binding
-configure_file(config.xml.in config.xml)
-set(BINARY_NAME "naviapi.wgt")
-
-add_custom_command(
- OUTPUT ${BINARY_NAME}
- DEPENDS NaviAPIService
- COMMAND rm -rf package
- COMMAND mkdir -p package/root
- COMMAND mkdir -p package/root/lib
- COMMAND mv config.xml package/root/
- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/navigation.png package/root/icon.png
- COMMAND mv libNaviAPIService.so package/root/lib
- COMMAND wgtpkg-pack -f -o package/${BINARY_NAME} package/root
-)
-add_custom_target(widget ALL DEPENDS ${BINARY_NAME})
-
-#generate configure file
-configure_file(libnaviapi-agl.pc.in libnaviapi-agl.pc @ONLY)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libnaviapi-agl.pc
- DESTINATION
- ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Romain Forlot <romain.forlot@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###########################################################################
+
+CMAKE_MINIMUM_REQUIRED(VERSION 3.3)
+
+include(${CMAKE_CURRENT_SOURCE_DIR}/conf.d/cmake/config.cmake)
diff --git a/README.md b/README.md
index 7a27f6d..8c5e3d3 100644
--- a/README.md
+++ b/README.md
@@ -1,25 +1,59 @@
-AGL Navigation API Binder
-===============
+# Navigation Service
-Copyright 2017 AISIN AW
+## Overview
-author: Yoshito Momiyama <i25461_momiyama@aisin-aw.co.jp>
+Navigation service keeps track of application data that allows other clients to share location, waypoints,
+and state between each other.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
+## Verbs
- http://www.apache.org/licenses/LICENSE-2.0
+| Name | Description | JSON Response |
+|---------------------|---------------------------------------------|------------------------------------|
+| subscribe | subscribe to an navigation service | *Request:* {"value": "status"} |
+| unsubscribe | unsubscribe to an navigation service | *Request:* {"value": "status"} |
+| broadcast_status | broadcast status event to other clients | *Request:* {"state": "stop"} |
+| broadcast_position | broadcast position event to other clients | See *position Verb* section |
+| broadcast_waypoints | broadcast waypoints events to other clients | See *waypoints Verb* section |
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
+### broadcast_position Verb
-===============
+Populate same data referenced in *position Event* section for the event
-This component is a reference implementation of the AGL Navigation API.
+### broadcast_waypoints Verb
+Populate same data referenced in *waypoints Event* section for the event
+## Events
+
+| Name | Description |
+|----------------|-------------------------------------|
+| status | status of the navigation engine |
+| position | current route or car position event |
+| waypoints | waypoints for routing engine |
+
+### position Event
+
+<pre>
+{
+ "points": [
+ {
+ "latitude": 36.12906,
+ "longitude": -115.17908
+ }
+ ]
+}
+</pre>
+
+### waypoints Event
+
+<pre>
+{
+ "points": [
+ {
+ "latitude": 36.12906,
+ "longitude": -115.17908
+ }
+ ]
+}
+</pre>
diff --git a/autobuild/agl/autobuild b/autobuild/agl/autobuild
index a086c89..db00c1a 100755
--- a/autobuild/agl/autobuild
+++ b/autobuild/agl/autobuild
@@ -59,8 +59,8 @@ package: build
@mkdir -p ${BUILD_DIR}/$@/htdocs
@mkdir -p ${BUILD_DIR}/$@/var
@cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
- @if [ "${DEST}" != "${BUILD_DIR}/$@" ]; then \
- mkdir -p ${DEST} && cp ${BUILD_DIR}/$@/*.wgt ${DEST}; \
+ @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+ mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
fi
package-test: build
diff --git a/autobuild/linux/autobuild b/autobuild/linux/autobuild
index 512adda..db00c1a 100755
--- a/autobuild/linux/autobuild
+++ b/autobuild/linux/autobuild
@@ -16,7 +16,7 @@
THISFILE := $(lastword $(MAKEFILE_LIST))
BUILD_DIR := $(abspath $(dir $(THISFILE))/../../build)
-DESTDIR := ${BUILD_DIR}
+DEST := ${BUILD_DIR}
.PHONY: all clean distclean configure build package help update
@@ -33,8 +33,11 @@ help:
@echo "- package: output a widget file '*.wgt'"
@echo "- install: install in your ${CMAKE_INSTALL_DIR} directory"
@echo ""
- @echo "Usage: ./autobuild/linux/autobuild package DESTDIR=${HOME}/opt"
- @echo "Don't use your build dir as DESTDIR as wgt file is generated at this location"
+ @echo "Usage: ./autobuild/agl/autobuild package DEST=${HOME}/opt"
+ @echo "Don't use your build dir as DEST as wgt file is generated at this location"
+
+update: configure
+ @cmake --build ${BUILD_DIR} --target autobuild
clean:
@([ -d ${BUILD_DIR} ] && make -C ${BUILD_DIR} ${CLEAN_ARGS} clean) || echo Nothing to clean
@@ -50,9 +53,26 @@ build: configure
@cmake --build ${BUILD_DIR} ${BUILD_ARGS} --target all
package: build
+ @mkdir -p ${BUILD_DIR}/$@/bin
+ @mkdir -p ${BUILD_DIR}/$@/etc
+ @mkdir -p ${BUILD_DIR}/$@/lib
+ @mkdir -p ${BUILD_DIR}/$@/htdocs
+ @mkdir -p ${BUILD_DIR}/$@/var
+ @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
+ @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+ mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
+ fi
+
+package-test: build
+ @mkdir -p ${BUILD_DIR}/$@/bin
+ @mkdir -p ${BUILD_DIR}/$@/etc
+ @mkdir -p ${BUILD_DIR}/$@/lib
+ @mkdir -p ${BUILD_DIR}/$@/htdocs
+ @mkdir -p ${BUILD_DIR}/$@/var
@cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target widget
- @if [ "${DESTDIR}" != "${BUILD_DIR}" ]; then \
- mkdir -p ${DESTDIR} && cp ${BUILD_DIR}/*.wgt ${DESTDIR}; \
+ @cmake --build ${BUILD_DIR} ${PACKAGE_ARGS} --target test_widget
+ @if [ "${DEST}" != "${BUILD_DIR}" ]; then \
+ mkdir -p ${DEST} && cp ${BUILD_DIR}/*.wgt ${DEST}; \
fi
install: build
diff --git a/binding/CMakeLists.txt b/binding/CMakeLists.txt
new file mode 100644
index 0000000..9088825
--- /dev/null
+++ b/binding/CMakeLists.txt
@@ -0,0 +1,35 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+# contrib: Romain Forlot <romain.forlot@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###########################################################################
+
+# Add target to project dependency list
+PROJECT_TARGET_ADD(afm-navigation-binding)
+
+ # Define project Targets
+ add_library(afm-navigation-binding MODULE navigation-api.c)
+
+ # Binder exposes a unique public entry point
+ SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
+ PREFIX "lib"
+ LABELS "BINDING"
+ LINK_FLAGS ${BINDINGS_LINK_FLAG}
+ OUTPUT_NAME ${TARGET_NAME}
+ )
+
+ # Library dependencies (include updates automatically)
+ TARGET_LINK_LIBRARIES(${TARGET_NAME} ${link_libraries})
diff --git a/binding/navigation-api.c b/binding/navigation-api.c
new file mode 100644
index 0000000..d9ea285
--- /dev/null
+++ b/binding/navigation-api.c
@@ -0,0 +1,245 @@
+/*
+ * Copyright (C) 2019 Konsulko Group
+ * Author: Matt Ranostay <matt.ranostay@konsulko.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define _GNU_SOURCE
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <time.h>
+
+#include <glib.h>
+#include <glib/gstdio.h>
+#include <gio/gio.h>
+#include <json-c/json.h>
+
+#define AFB_BINDING_VERSION 3
+#include <afb/afb-binding.h>
+
+#include "navigation-api.h"
+
+struct navigation_state *navigation_get_userdata(afb_req_t request) {
+ afb_api_t api = afb_req_get_api(request);
+ return afb_api_get_userdata(api);
+}
+
+static afb_event_t get_event_from_value(struct navigation_state *ns,
+ const char *value)
+{
+ if (!g_strcmp0(value, "status"))
+ return ns->status_event;
+
+ if (!g_strcmp0(value, "position"))
+ return ns->position_event;
+
+ if (!g_strcmp0(value, "waypoints"))
+ return ns->waypoints_event;
+
+ return NULL;
+}
+
+static json_object **get_storage_from_value(struct navigation_state *ns,
+ const char *value)
+{
+ if (!g_strcmp0(value, "status"))
+ return &ns->status_storage;
+
+ if (!g_strcmp0(value, "position"))
+ return &ns->position_storage;
+
+ if (!g_strcmp0(value, "waypoints"))
+ return &ns->waypoints_storage;
+
+ return NULL;
+}
+
+static void navigation_subscribe_unsubscribe(afb_req_t request,
+ gboolean unsub)
+{
+ struct navigation_state *ns = navigation_get_userdata(request);
+ json_object *jresp = json_object_new_object();
+ const char *value;
+ afb_event_t event;
+ int rc;
+
+ value = afb_req_value(request, "value");
+ if (!value) {
+ afb_req_fail_f(request, "failed", "Missing \"value\" event");
+ return;
+ }
+
+ event = get_event_from_value(ns, value);
+ if (!event) {
+ afb_req_fail_f(request, "failed", "Bad \"value\" event \"%s\"",
+ value);
+ return;
+ }
+
+ if (!unsub) {
+ json_object *storage;
+ rc = afb_req_subscribe(request, event);
+
+ g_rw_lock_reader_lock(&ns->rw_lock);
+ storage = *get_storage_from_value(ns, value);
+ if (storage) {
+ // increment reference counter, and send out cached value
+ json_object_get(storage);
+ afb_event_push(event, storage);
+ }
+ g_rw_lock_reader_unlock(&ns->rw_lock);
+ } else {
+ rc = afb_req_unsubscribe(request, event);
+ }
+ if (rc != 0) {
+ afb_req_fail_f(request, "failed",
+ "%s error on \"value\" event \"%s\"",
+ !unsub ? "subscribe" : "unsubscribe",
+ value);
+ return;
+ }
+
+ afb_req_success_f(request, jresp, "Navigation %s to event \"%s\"",
+ !unsub ? "subscribed" : "unsubscribed",
+ value);
+}
+
+static void subscribe(afb_req_t request)
+{
+ navigation_subscribe_unsubscribe(request, FALSE);
+}
+
+static void unsubscribe(afb_req_t request)
+{
+ navigation_subscribe_unsubscribe(request, TRUE);
+}
+
+static void broadcast(afb_req_t request, const char *name, gboolean cache)
+{
+ struct navigation_state *ns = navigation_get_userdata(request);
+ afb_event_t event = get_event_from_value(ns, name);
+ json_object *jresp = afb_req_json(request);
+
+ if (cache) {
+ json_object **storage = get_storage_from_value(ns, name);
+
+ g_rw_lock_writer_lock(&ns->rw_lock);
+
+ if (*storage)
+ json_object_put(*storage);
+
+ // increment reference for storage
+ json_object_get(jresp);
+ *storage = jresp;
+
+ g_rw_lock_writer_unlock(&ns->rw_lock);
+ }
+
+ // increment reference for event
+ json_object_get(jresp);
+ afb_event_push(event, jresp);
+}
+
+static void broadcast_status(afb_req_t request)
+{
+ broadcast(request, "status", TRUE);
+
+ afb_req_success(request, NULL, "Broadcast status send");
+}
+
+static void broadcast_position(afb_req_t request)
+{
+ const char *position = afb_req_value(request, "position");
+ gboolean cache = FALSE;
+
+ // only send out a car position event on subscribe
+ if (position && !g_strcmp0(position, "car"))
+ cache = TRUE;
+
+ broadcast(request, "position", cache);
+
+ afb_req_success(request, NULL, "Broadcast position send");
+}
+
+static void broadcast_waypoints(afb_req_t request)
+{
+ broadcast(request, "waypoints", TRUE);
+
+ afb_req_success(request, NULL, "Broadcast waypoints send");
+}
+
+static int init(afb_api_t api)
+{
+ struct navigation_state *ns;
+
+ ns = g_try_malloc0(sizeof(*ns));
+ if (!ns) {
+ AFB_ERROR("out of memory allocating navigation state");
+ return -ENOMEM;
+ }
+
+ ns->status_event = afb_daemon_make_event("status");
+ ns->position_event = afb_daemon_make_event("position");
+ ns->waypoints_event = afb_daemon_make_event("waypoints");
+
+ if (!afb_event_is_valid(ns->status_event) ||
+ !afb_event_is_valid(ns->position_event) ||
+ !afb_event_is_valid(ns->waypoints_event)) {
+ AFB_ERROR("Cannot create events");
+ return -EINVAL;
+ }
+
+ afb_api_set_userdata(api, ns);
+
+ g_rw_lock_init(&ns->rw_lock);
+
+ return 0;
+}
+
+static const afb_verb_t binding_verbs[] = {
+ {
+ .verb = "subscribe",
+ .callback = subscribe,
+ .info = "Subscribe to event"
+ }, {
+ .verb = "unsubscribe",
+ .callback = unsubscribe,
+ .info = "Unsubscribe to event"
+ }, {
+ .verb = "broadcast_status",
+ .callback = broadcast_status,
+ .info = "Allows clients to broadcast status events"
+ }, {
+ .verb = "broadcast_position",
+ .callback = broadcast_position,
+ .info = "Broadcast out position event"
+ }, {
+ .verb = "broadcast_waypoints",
+ .callback = broadcast_waypoints,
+ .info = "Broadcast out waypoint event"
+ },
+ {}
+};
+
+/*
+ * description of the binding for afb-daemon
+ */
+const afb_binding_t afbBindingV3 = {
+ .api = "navigation",
+ .verbs = binding_verbs,
+ .init = init,
+};
diff --git a/binding/navigation-api.h b/binding/navigation-api.h
new file mode 100644
index 0000000..457a87d
--- /dev/null
+++ b/binding/navigation-api.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2019 Konsulko Group
+ * Author: Matt Ranostay <matt.ranostay@konsulko.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef NAVIGATION_API_H
+#define NAVIGATION_API_H
+
+#include <stddef.h>
+
+#define _GNU_SOURCE
+#include <glib.h>
+#include <stdlib.h>
+#include <gio/gio.h>
+#include <glib-object.h>
+
+#include <json-c/json.h>
+
+#define AFB_BINDING_VERSION 3
+#include <afb/afb-binding.h>
+
+#include <json-c/json.h>
+
+struct call_work;
+
+struct navigation_state {
+ // events
+ afb_event_t status_event;
+ afb_event_t position_event;
+ afb_event_t waypoints_event;
+
+ // storage
+ json_object *status_storage;
+ json_object *position_storage;
+ json_object *waypoints_storage;
+
+ // locking
+ GRWLock rw_lock;
+};
+
+#endif
diff --git a/conf.d/cmake/config.cmake b/conf.d/cmake/config.cmake
new file mode 100644
index 0000000..e096705
--- /dev/null
+++ b/conf.d/cmake/config.cmake
@@ -0,0 +1,167 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###########################################################################
+
+# Project Info
+# ------------------
+set(PROJECT_NAME agl-service-navigation)
+set(PROJECT_VERSION "1.0")
+set(PROJECT_PRETTY_NAME "Navigation service for AGL")
+set(PROJECT_DESCRIPTION "Navigation reporting proxy for consumers")
+set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/apps/agl-service-navigation")
+set(PROJECT_ICON "icon.png")
+set(PROJECT_AUTHOR "Matt Ranostay")
+set(PROJECT_AUTHOR_MAIL "matt.ranostay@konsulko.com")
+set(PROJECT_LICENSE "APL2.0")
+set(PROJECT_LANGUAGES,"C")
+set(API_NAME "navigation")
+
+# Where the project configuration files are stored
+set(PROJECT_CMAKE_CONF_DIR "conf.d")
+
+# Where are stored your external libraries for your project. This is 3rd party library that you don't maintain
+# but used and must be built and linked.
+# set(PROJECT_LIBDIR "libs")
+
+# Where are stored data for your application. Pictures, static resources must be placed in that folder.
+# set(PROJECT_RESOURCES "data")
+
+# Which directories inspect to find CMakeLists.txt target files
+# set(PROJECT_SRC_DIR_PATTERN "*")
+
+# Compilation Mode (DEBUG, RELEASE)
+# ----------------------------------
+set(BUILD_TYPE "RELEASE")
+
+# Kernel selection if needed. You can choose between a
+# mandatory version to impose a minimal version.
+# Or check Kernel minimal version and just print a Warning
+# about missing features and define a preprocessor variable
+# to be used as preprocessor condition in code to disable
+# incompatibles features. Preprocessor define is named
+# KERNEL_MINIMAL_VERSION_OK.
+#
+# NOTE*** FOR NOW IT CHECKS KERNEL Yocto environment and
+# Yocto SDK Kernel version.
+# -----------------------------------------------
+#set(kernel_mandatory_version 4.8)
+
+# Compiler selection if needed. Impose a minimal version.
+# -----------------------------------------------
+set (gcc_minimal_version 4.9)
+
+# PKG_CONFIG required packages
+# -----------------------------
+set (PKG_REQUIRED_LIST
+ json-c
+ libsystemd>=222
+ afb-daemon
+ json-c
+ glib-2.0
+ gio-2.0
+ gobject-2.0
+ gio-unix-2.0
+ zlib
+)
+
+# Static constante definition
+# -----------------------------
+add_compile_options(-DPB_FIELD_16BIT)
+add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-pthread>)
+
+# Customize link option
+# -----------------------------
+list (APPEND link_libraries -pthread)
+
+# (BUG!!!) as PKG_CONFIG_PATH does not work [should be an env variable]
+# ---------------------------------------------------------------------
+set(INSTALL_PREFIX $ENV{HOME}/opt)
+set(CMAKE_PREFIX_PATH ${CMAKE_INSTALL_PREFIX}/lib64/pkgconfig ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+set(LD_LIBRARY_PATH ${CMAKE_INSTALL_PREFIX}/lib64 ${CMAKE_INSTALL_PREFIX}/lib)
+
+# Optional location for config.xml.in
+# -----------------------------------
+set(WIDGET_CONFIG_TEMPLATE ${CMAKE_CURRENT_SOURCE_DIR}/conf.d/wgt/config.xml.in)
+
+# Mandatory widget Mimetype specification of the main unit
+# --------------------------------------------------------------------------
+# Choose between :
+#- text/html : HTML application,
+# content.src designates the home page of the application
+#
+#- application/vnd.agl.native : AGL compatible native,
+# content.src designates the relative path of the binary.
+#
+# - application/vnd.agl.service: AGL service, content.src is not used.
+#
+#- ***application/x-executable***: Native application,
+# content.src designates the relative path of the binary.
+# For such application, only security setup is made.
+#
+set(WIDGET_TYPE application/vnd.agl.service)
+
+# Mandatory Widget entry point file of the main unit
+# --------------------------------------------------------------
+# This is the file that will be executed, loaded,
+# at launch time by the application framework.
+#
+set(WIDGET_ENTRY_POINT lib/libafm-navigation-binding.so)
+
+# Print a helper message when every thing is finished
+# ----------------------------------------------------
+set(CLOSING_MESSAGE "Test with: afb-daemon --rootdir=\$\$(pwd)/package --binding=\$\$(pwd)/package/${WIDGET_ENTRY_POINT} --port=1234 --tracereq=common --token=\"1\" --verbose")
+set(PACKAGE_MESSAGE "Install widget file using in the target : afm-util install ${PROJECT_NAME}.wgt")
+
+
+
+# Optional dependencies order
+# ---------------------------
+#set(EXTRA_DEPENDENCIES_ORDER)
+
+# Optional Extra global include path
+# -----------------------------------
+#set(EXTRA_INCLUDE_DIRS)
+
+# Optional extra libraries
+# -------------------------
+#set(EXTRA_LINK_LIBRARIES)
+
+# Optional force binding installation
+# ------------------------------------
+# set(BINDINGS_INSTALL_PREFIX PrefixPath )
+
+# Optional force binding Linking flag
+# ------------------------------------
+# set(BINDINGS_LINK_FLAG LinkOptions )
+
+# Optional force package prefix generation, like widget
+# -----------------------------------------------------
+# set(PKG_PREFIX DestinationPath)
+
+# Optional Application Framework security token
+# and port use for remote debugging.
+#------------------------------------------------------------
+#set(AFB_TOKEN "" CACHE PATH "Default AFB_TOKEN")
+#set(AFB_REMPORT "1234" CACHE PATH "Default AFB_TOKEN")
+
+# This include is mandatory and MUST happens at the end
+# of this file, else you expose you to unexpected behavior
+#
+# This CMake module could be found at the following url:
+# https://gerrit.automotivelinux.org/gerrit/#/admin/projects/src/cmake-apps-module
+# -----------------------------------------------------------
+include(CMakeAfbTemplates)
diff --git a/conf.d/wgt/config.xml.in b/conf.d/wgt/config.xml.in
new file mode 100644
index 0000000..485407e
--- /dev/null
+++ b/conf.d/wgt/config.xml.in
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" id="@PROJECT_NAME@" version="@PROJECT_VERSION@">
+ <name>@PROJECT_NAME@</name>
+ <icon src="@PROJECT_ICON@"/>
+ <content src="@WIDGET_ENTRY_POINT@" type="@WIDGET_TYPE@"/>
+ <description>@PROJECT_DESCRIPTION@</description>
+ <author>@PROJECT_AUTHOR@ &lt;@PROJECT_AUTHOR_MAIL@&gt;</author>
+ <license>@PROJECT_LICENSE@</license>
+
+ <feature name="urn:AGL:widget:required-permission">
+ <param name="urn:AGL:permission::public:hidden" value="required" />
+ <param name="urn:AGL:permission::public:no-htdocs" value="required" />
+ </feature>
+
+ <feature name="urn:AGL:widget:provided-api">
+ <param name="navigation" value="ws" />
+ </feature>
+
+ <feature name="urn:AGL:widget:required-api">
+ <param name="@WIDGET_ENTRY_POINT@" value="local" />
+ </feature>
+</widget>
diff --git a/config.xml.in b/config.xml.in
deleted file mode 100644
index 25b9e53..0000000
--- a/config.xml.in
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<widget xmlns="http://www.w3.org/ns/widgets" id="naviapi-binding-service" version="0.1">
- <name>naviapi-binding-service</name>
- <icon src="icon.png"/>
- <content src="config.xml" type="application/vnd.agl.service"/>
- <description>naviapi binding service</description>
- <author>AISIN AW</author>
- <license>GPL</license>
- <feature name="urn:AGL:widget:required-permission">
- <param name="urn:AGL:permission::public:hidden" value="required" />
- <param name="http://tizen.org/privilege/internal/dbus" value="required" />
- </feature>
- <feature name="urn:AGL:widget:provided-api">
- <param name="naviapi" value="ws" />
- </feature>
- <feature name="urn:AGL:widget:required-api">
- <param name="lib/libNaviAPIService.so" value="local" />
- </feature>
-</widget>
diff --git a/include/analyze_request.h b/include/analyze_request.h
deleted file mode 100644
index f570a1c..0000000
--- a/include/analyze_request.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <stdbool.h>
-#include <stdint.h>
-#include <vector>
-
-#include "genivi_request.h"
-
-/**
- * @brief Analyze requests from BinderClient and create arguments to pass to Genivi API.
- */
-class AnalyzeRequest
-{
-public:
- bool CreateParamsGetPosition( const char* req_json_str, std::vector< int32_t >& Params );
- bool CreateParamsCreateRoute( const char* req_json_str, uint32_t& sessionHdl );
- bool CreateParamsPauseSimulation( const char* req_json_str, uint32_t& sessionHdl );
- bool CreateParamsSetSimulationMode( const char* req_json_str, uint32_t& sessionHdl, bool& simuMode );
- bool CreateParamsCancelRouteCalculation( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl );
- bool CreateParamsSetWaypoints( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl,
- bool& currentPos, std::vector<Waypoint>& waypointsList );
- bool CreateParamsCalculateRoute( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl );
-
-private:
- bool JsonObjectGetSessionHdl( const char* req_json_str, uint32_t& sessionHdl);
- bool JsonObjectGetSessionHdlRouteHdl( const char* req_json_str, uint32_t& sessionHdl, uint32_t& routeHdl);
-};
-
diff --git a/include/binder_reply.h b/include/binder_reply.h
deleted file mode 100644
index 44e20d0..0000000
--- a/include/binder_reply.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <stdio.h>
-#include <stdbool.h>
-#include <string>
-#include <map>
-#include <vector>
-#include <json-c/json.h>
-
-/**
- * @brief Response to return to Binder client.
- */
-typedef struct APIResponse_
-{
- bool isSuccess;
- std::string errMessage;
- json_object* json_data;
-}APIResponse;
-
-/**
- * @brief Convert information acquired by Genevi API to JSON format.
- */
-class BinderReply
-{
-public:
- APIResponse ReplyNavicoreGetPosition( std::map<int32_t, double>& posList );
- APIResponse ReplyNavicoreGetAllRoutes( std::vector< uint32_t > &allRoutes );
- APIResponse ReplyNavicoreCreateRoute( uint32_t route );
- APIResponse ReplyNavicoreGetAllSessions( std::map<uint32_t, std::string> &allSessions );
-};
-
diff --git a/include/genivi/genivi-navicore-constants.h b/include/genivi/genivi-navicore-constants.h
deleted file mode 100644
index 4021006..0000000
--- a/include/genivi/genivi-navicore-constants.h
+++ /dev/null
@@ -1,199 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#ifndef GENIVI_NAVICORE_CONSTANTS_H
-#define GENIVI_NAVICORE_CONSTANTS_H
-
-#define NAVICORE_INVALID 0x0000
-#define NAVICORE_DEFAULT 0xfffe
-#define NAVICORE_ALL 0xffff
-#define NAVICORE_AVAILABLE 0x0001
-#define NAVICORE_NOT_AVAILABLE 0x0002
-#define NAVICORE_TIME_FORMAT 0x0003
-#define NAVICORE_12H 0x0004
-#define NAVICORE_24H 0x0005
-#define NAVICORE_COORDINATES_FORMAT 0x0006
-#define NAVICORE_DEGREES 0x0007
-#define NAVICORE_MINUTES 0x0008
-#define NAVICORE_SECONDS 0x0009
-#define NAVICORE_TIMESTAMP 0x0010
-#define NAVICORE_TIMEZONE_OFFSET 0x0011
-#define NAVICORE_DAYLIGHT_OFFSET 0x0012
-#define NAVICORE_LOCALE 0x0025
-#define NAVICORE_UNITS_OF_MEASUREMENT 0x0030
-#define NAVICORE_LENGTH 0x0031
-#define NAVICORE_METER 0x0032
-#define NAVICORE_MILE 0x0033
-#define NAVICORE_KM 0x0034
-#define NAVICORE_YARD 0x0035
-#define NAVICORE_FOOT 0x0036
-#define NAVICORE_DISABLED_PROMPT 0x0041
-#define NAVICORE_AUTOMATIC_PROMPT 0x0042
-#define NAVICORE_MANUAL_PROMPT 0x0043
-#define NAVICORE_CRUISE 0x0050
-#define NAVICORE_MANEUVER_APPEARED 0x0051
-#define NAVICORE_PRE_ADVICE 0x0052
-#define NAVICORE_ADVICE 0x0053
-#define NAVICORE_PASSED 0x0054
-#define NAVICORE_ACTIVE 0x0060
-#define NAVICORE_INACTIVE 0x0061
-#define NAVICORE_STRAIGHT_ON 0x0070
-#define NAVICORE_CROSSROAD 0x0071
-#define NAVICORE_ROUNDABOUT 0x0072
-#define NAVICORE_HIGHWAY_ENTER 0x0073
-#define NAVICORE_HIGHWAY_EXIT 0x0074
-#define NAVICORE_FOLLOW_SPECIFIC_LANE 0x0075
-#define NAVICORE_DESTINATION 0x0076
-#define NAVICORE_WAYPOINT 0x0077
-#define NAVICORE_TURN 0x0078
-#define NAVICORE_BIFURCATION 0x0079
-#define NAVICORE_LEFT 0x0080
-#define NAVICORE_SLIGHT_LEFT 0x0081
-#define NAVICORE_HARD_LEFT 0x0082
-#define NAVICORE_RIGHT 0x0083
-#define NAVICORE_SLIGHT_RIGHT 0x0084
-#define NAVICORE_HARD_RIGHT 0x0085
-#define NAVICORE_UTURN_RIGHT 0x0086
-#define NAVICORE_UTURN_LEFT 0x0087
-#define NAVICORE_ALL_MANUAL 0x0090
-#define NAVICORE_ALL_AUTOMATIC 0x0091
-#define NAVICORE_TRAFFIC_MANUAL 0x0092
-#define NAVICORE_OFF_ROUTE_MANUAL 0x0093
-#define NAVICORE_LATITUDE 0x00a0
-#define NAVICORE_LONGITUDE 0x00a1
-#define NAVICORE_ALTITUDE 0x00a2
-#define NAVICORE_HEADING 0x00a3
-#define NAVICORE_SPEED 0x00a4
-#define NAVICORE_CLIMB 0x00a5
-#define NAVICORE_COUNTRY 0x00a6
-#define NAVICORE_STATE 0x00a7
-#define NAVICORE_CITY 0x00a8
-#define NAVICORE_ZIPCODE 0x00a9
-#define NAVICORE_STREET 0x00aa
-#define NAVICORE_HOUSENUMBER 0x00ab
-#define NAVICORE_CROSSING 0x00ac
-#define NAVICORE_DISTRICT 0x00ad
-#define NAVICORE_PHONENUMBER 0x00ae
-#define NAVICORE_POINAME 0x00af
-#define NAVICORE_TOWNCENTER 0x00b0
-#define NAVICORE_LOCATION_INPUT 0x00b1
-#define NAVICORE_FULL_ADDRESS 0x00b2
-#define NAVICORE_COUNTRYCODE 0x00b3
-#define NAVICORE_HOUSENAME 0x00b4
-#define NAVICORE_POSTAL_CODE 0x00b5
-#define NAVICORE_NOT_STARTED 0x0c0
-#define NAVICORE_SEARCHING 0x00c1
-#define NAVICORE_FINISHED 0x00c2
-#define NAVICORE_OK 0x00d0
-#define NAVICORE_UNKNOWN 0x00d1
-#define NAVICORE_AMBIGUOUS 0x00d2
-#define NAVICORE_INCONSISTENT 0x00d3
-#define NAVICORE_GNSS_FIX_STATUS 0x00e0
-#define NAVICORE_DR_STATUS 0x00e1
-#define NAVICORE_MM_STATUS 0x00e2
-#define NAVICORE_SIMULATION_MODE 0x00e3
-#define NAVICORE_MATCH_TYPE 0x00f0
-#define NAVICORE_ON_ROAD 0x00f1
-#define NAVICORE_OFF_ROAD 0x00f2
-#define NAVICORE_ON_FERRY 0x00f3
-#define NAVICORE_IN_TUNNEL 0x00f4
-#define NAVICORE_ON_CARPARK 0x00f5
-#define NAVICORE_NO_FIX 0x0100
-#define NAVICORE_TIME_FIX 0x0101
-#define NAVICORE_2D_FIX 0x0102
-#define NAVICORE_3D_FIX 0x0103
-#define NAVICORE_SEGMENT_ID 0x0110
-#define NAVICORE_DIRECTION_ON_SEGMENT 0x0112
-#define NAVICORE_DISTANCE_ON_SEGMENT 0x0113
-#define NAVICORE_INTERMEDIATE_POINTS 0x0120
-#define NAVICORE_WAYPOINT_TYPE 0x0121
-#define NAVICORE_SOFT_POINT 0x0122
-#define NAVICORE_HARD_POINT 0x0123
-#define NAVICORE_CALCULATION_OK 0x0130
-#define NAVICORE_NO_POSITION 0x0131
-#define NAVICORE_UNMATCHED_POSITION 0x0132
-#define NAVICORE_UNREACHABLE_DESTINATION 0x0133
-#define NAVICORE_UNFULFILLED_PREFERENCE_MODE 0x0134
-#define NAVICORE_LINK_ID 0x0140
-#define NAVICORE_START_LATITUDE 0x0141
-#define NAVICORE_END_LATITUDE 0x0142
-#define NAVICORE_START_LONGITUDE 0x0143
-#define NAVICORE_END_LONGITUDE 0x0144
-#define NAVICORE_START_ALTITUDE 0x0145
-#define NAVICORE_END_ALTITUDE 0x0146
-#define NAVICORE_ROAD_NAME 0x0147
-#define NAVICORE_DISTANCE 0x0148
-#define NAVICORE_TIME 0x0149
-#define NAVICORE_MANEUVER 0x014a
-#define NAVICORE_INSTRUCTION 0x014b
-#define NAVICORE_BORDER_CROSSING 0x014c
-#define NAVICORE_ADDITIONAL_INFORMATION 0x014d
-#define NAVICORE_ROAD_NUMBER 0x014e
-#define NAVICORE_START_OFFSET 0x014f
-#define NAVICORE_FASTEST 0x0160
-#define NAVICORE_SHORTEST 0x0161
-#define NAVICORE_ECOLOGICAL 0x0162
-#define NAVICORE_SCENIC 0x0163
-#define NAVICORE_EASY 0x0164
-#define NAVICORE_BALANCED 0x0166
-#define NAVICORE_CHEAPEST 0x0167
-#define NAVICORE_FERRY 0x0170
-#define NAVICORE_TOLL_ROADS 0x0171
-#define NAVICORE_TUNNELS 0x0172
-#define NAVICORE_HIGHWAYS_MOTORWAYS 0x0173
-#define NAVICORE_VEHICLE_SIZE_LIMIT 0x0174
-#define NAVICORE_CRIME_AREAS 0x0175
-#define NAVICORE_BY_CAR 0x0180
-#define NAVICORE_ON_FOOT 0x0181
-#define NAVICORE_LONG_RANGE_TRAINS 0x0182
-#define NAVICORE_PUBLIC_TRANSPORTATION 0x0183
-#define NAVICORE_BY_BICYCLE 0x0184
-#define NAVICORE_BY_TRUCK 0x0185
-#define NAVICORE_BLOCK_NUMBER 0x0186
-#define NAVICORE_UNIT_NUMBER 0x0187
-#define NAVICORE_BEGIN_STREET 0x0188
-#define NAVICORE_ROAD_INTERSECTION 0x0189
-#define NAVICORE_ARRIVAL_TIME 0x018a
-#define NAVICORE_ARRIVAL_DATE 0x018b
-#define NAVICORE_DEPARTURE_TIME 0x018c
-#define NAVICORE_DEPARTURE_DATE 0x018d
-#define NAVICORE_TOTAL_TIME 0x018e
-#define NAVICORE_TOTAL_DISTANCE 0x018f
-#define NAVICORE_PROHIBIT 0x0190
-#define NAVICORE_AVOID 0x0191
-#define NAVICORE_USE 0x0192
-#define NAVICORE_PREFER 0x0193
-#define NAVICORE_IGNORE 0x0194
-#define NAVICORE_TRAFFIC_REALTIME 0x0200
-#define NAVICORE_TRAFFIC 0x0210
-#define NAVICORE_OFF_ROUTE 0x0211
-#define NAVICORE_MANUAL 0x0212
-#define NAVICORE_SIMULATION_STATUS_NO_SIMULATION 0x0220
-#define NAVICORE_SIMULATION_STATUS_RUNNING 0x0221
-#define NAVICORE_SIMULATION_STATUS_PAUSED 0x0222
-#define NAVICORE_SIMULATION_STATUS_FIXED_POSITION 0x0223
-#define NAVICORE_ROAD_FORM_CHANGE 0x0230
-#define NAVICORE_ROAD_REGULAR 0x0231
-#define NAVICORE_ROAD_HIGHWAY_MOTORWAY 0x0232
-#define NAVICORE_ROAD_FERRY 0x0233
-#define NAVICORE_DIRECTION 0x0240
-#define NAVICORE_EXIT_NUMBER 0x0241
-#define NAVICORE_ROAD_FORM 0x0242
-#define NAVICORE_LANE_INFO 0x0243
-#define NAVICORE_LANE_INFO_BITMASK_STRAIGHT 0x0001
-#define NAVICORE_LANE_INFO_BITMASK_SLIGHTRIGHT 0x0002
-#define NAVICORE_LANE_INFO_BITMASK_RIGHT 0x0004
-#define NAVICORE_LANE_INFO_BITMASK_SHARPRIGHT 0x0008
-#define NAVICORE_LANE_INFO_BITMASK_RIGHTUTURN 0x0010
-#define NAVICORE_LANE_INFO_BITMASK_SLIGHTLEFT 0x0020
-#define NAVICORE_LANE_INFO_BITMASK_LEFT 0x0040
-#define NAVICORE_LANE_INFO_BITMASK_SHARPLEFT 0x0080
-#define NAVICORE_LANE_INFO_BITMASK_LEFTUTURN 0x0100
-#define NAVICORE_DIVIDER_UNDEFINED 0x0250
-#define NAVICORE_DIVIDER_INTERRUPTEDLONG 0x0251
-#define NAVICORE_DIVIDER_INTERRUPTEDSHORT 0x0252
-#define NAVICORE_DIVIDER_SOLIDSINGLE 0x0253
-#define NAVICORE_DIVIDER_SOLIDDOUBLE 0x0254
-#define NAVICORE_DIVIDER_SOLIDINTERRUPTED 0x0255
-#define NAVICORE_DIVIDER_INTERRUPTEDSOLID 0x0256
-
-#endif
diff --git a/include/genivi/genivi-navigationcore-proxy.h b/include/genivi/genivi-navigationcore-proxy.h
deleted file mode 100644
index 2322fa0..0000000
--- a/include/genivi/genivi-navigationcore-proxy.h
+++ /dev/null
@@ -1,1147 +0,0 @@
-
-/*
- * This file was automatically generated by dbusxx-xml2cpp; DO NOT EDIT!
- */
-
-#ifndef __dbusxx__genivi_navigationcore_proxy_h__PROXY_MARSHAL_H
-#define __dbusxx__genivi_navigationcore_proxy_h__PROXY_MARSHAL_H
-
-#include <dbus-c++-1/dbus-c++/dbus.h>
-#include <cassert>
-
-namespace org {
-namespace genivi {
-namespace navigationcore {
-
-class Session_proxy
-: public ::DBus::InterfaceProxy
-{
-public:
-
- Session_proxy()
- : ::DBus::InterfaceProxy("org.genivi.navigationcore.Session")
- {
- connect_signal(Session_proxy, SessionDeleted, _SessionDeleted_stub);
- }
-
-public:
-
- /* properties exported by this interface */
-public:
-
- /* methods exported by this interface,
- * this functions will invoke the corresponding methods on the remote objects
- */
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > SessionGetVersion()
- {
- ::DBus::CallMessage call;
- call.member("GetVersion");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > argout;
- ri >> argout;
- return argout;
- }
-
- uint32_t CreateSession(const std::string& client)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << client;
- call.member("CreateSession");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- uint32_t argout;
- ri >> argout;
- return argout;
- }
-
- void DeleteSession(const uint32_t& sessionHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- call.member("DeleteSession");
- ::DBus::Message ret = invoke_method (call);
- }
-
- int32_t GetSessionStatus(const uint32_t& sessionHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- call.member("GetSessionStatus");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- int32_t argout;
- ri >> argout;
- return argout;
- }
-
- std::vector< ::DBus::Struct< uint32_t, std::string > > GetAllSessions()
- {
- ::DBus::CallMessage call;
- call.member("GetAllSessions");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< ::DBus::Struct< uint32_t, std::string > > argout;
- ri >> argout;
- return argout;
- }
-
-
-public:
-
- /* signal handlers for this interface
- */
- virtual void SessionDeleted(const uint32_t& sessionHandle) = 0;
-
-private:
-
- /* unmarshalers (to unpack the DBus message before calling the actual signal handler)
- */
- void _SessionDeleted_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t sessionHandle;
- ri >> sessionHandle;
- SessionDeleted(sessionHandle);
- }
-};
-
-} } }
-namespace org {
-namespace genivi {
-namespace navigationcore {
-
-class Routing_proxy
-: public ::DBus::InterfaceProxy
-{
-public:
-
- Routing_proxy()
- : ::DBus::InterfaceProxy("org.genivi.navigationcore.Routing")
- {
- connect_signal(Routing_proxy, RouteDeleted, _RouteDeleted_stub);
- connect_signal(Routing_proxy, RouteCalculationCancelled, _RouteCalculationCancelled_stub);
- connect_signal(Routing_proxy, RouteCalculationSuccessful, _RouteCalculationSuccessful_stub);
- connect_signal(Routing_proxy, RouteCalculationFailed, _RouteCalculationFailed_stub);
- connect_signal(Routing_proxy, RouteCalculationProgressUpdate, _RouteCalculationProgressUpdate_stub);
- connect_signal(Routing_proxy, AlternativeRoutesAvailable, _AlternativeRoutesAvailable_stub);
- }
-
-public:
-
- /* properties exported by this interface */
-public:
-
- /* methods exported by this interface,
- * this functions will invoke the corresponding methods on the remote objects
- */
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > RoutingGetVersion()
- {
- ::DBus::CallMessage call;
- call.member("GetVersion");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > argout;
- ri >> argout;
- return argout;
- }
-
- uint32_t CreateRoute(const uint32_t& sessionHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- call.member("CreateRoute");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- uint32_t argout;
- ri >> argout;
- return argout;
- }
-
- void DeleteRoute(const uint32_t& sessionHandle, const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- call.member("DeleteRoute");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void SetCostModel(const uint32_t& sessionHandle, const uint32_t& routeHandle, const int32_t& costModel)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- wi << costModel;
- call.member("SetCostModel");
- ::DBus::Message ret = invoke_method (call);
- }
-
- int32_t GetCostModel(const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- call.member("GetCostModel");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- int32_t argout;
- ri >> argout;
- return argout;
- }
-
- std::vector< int32_t > GetSupportedCostModels()
- {
- ::DBus::CallMessage call;
- call.member("GetSupportedCostModels");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< int32_t > argout;
- ri >> argout;
- return argout;
- }
-
- void SetRoutePreferences(const uint32_t& sessionHandle, const uint32_t& routeHandle, const std::string& countryCode, const std::vector< ::DBus::Struct< int32_t, int32_t > >& roadPreferenceList, const std::vector< ::DBus::Struct< int32_t, int32_t > >& conditionPreferenceList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- wi << countryCode;
- wi << roadPreferenceList;
- wi << conditionPreferenceList;
- call.member("SetRoutePreferences");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void GetRoutePreferences(const uint32_t& routeHandle, const std::string& countryCode, std::vector< ::DBus::Struct< int32_t, int32_t > >& roadPreferenceList, std::vector< ::DBus::Struct< int32_t, int32_t > >& conditionPreferenceList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- wi << countryCode;
- call.member("GetRoutePreferences");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> roadPreferenceList;
- ri >> conditionPreferenceList;
- }
-
- void GetSupportedRoutePreferences(std::vector< ::DBus::Struct< int32_t, int32_t > >& routePreferencesList, std::vector< ::DBus::Struct< int32_t, int32_t > >& conditionPreferenceList)
- {
- ::DBus::CallMessage call;
- call.member("GetSupportedRoutePreferences");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> routePreferencesList;
- ri >> conditionPreferenceList;
- }
-
- void SetRouteSchedule(const uint32_t& sessionHandle, const uint32_t& routeHandle, const std::map< int32_t, uint32_t >& routeSchedule)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- wi << routeSchedule;
- call.member("SetRouteSchedule");
- ::DBus::Message ret = invoke_method (call);
- }
-
- std::map< int32_t, uint32_t > GetRouteSchedule(const uint32_t& routeHandle, const std::vector< int32_t >& valuesToReturn)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- wi << valuesToReturn;
- call.member("GetRouteSchedule");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::map< int32_t, uint32_t > argout;
- ri >> argout;
- return argout;
- }
-
- void SetTransportationMeans(const uint32_t& sessionHandle, const uint32_t& routeHandle, const std::vector< int32_t >& transportationMeansList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- wi << transportationMeansList;
- call.member("SetTransportationMeans");
- ::DBus::Message ret = invoke_method (call);
- }
-
- std::vector< int32_t > GetTransportationMeans(const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- call.member("GetTransportationMeans");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< int32_t > argout;
- ri >> argout;
- return argout;
- }
-
- std::vector< int32_t > GetSupportedTransportationMeans()
- {
- ::DBus::CallMessage call;
- call.member("GetSupportedTransportationMeans");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< int32_t > argout;
- ri >> argout;
- return argout;
- }
-
- void SetExcludedAreas(const uint32_t& sessionHandle, const uint32_t& routeHandle, const std::vector< std::vector< ::DBus::Struct< double, double > > >& excludedAreas)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- wi << excludedAreas;
- call.member("SetExcludedAreas");
- ::DBus::Message ret = invoke_method (call);
- }
-
- std::vector< std::vector< ::DBus::Struct< double, double > > > GetExcludedAreas(const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- call.member("GetExcludedAreas");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< std::vector< ::DBus::Struct< double, double > > > argout;
- ri >> argout;
- return argout;
- }
-
- void SetWaypoints(const uint32_t& sessionHandle, const uint32_t& routeHandle, const bool& startFromCurrentPosition, const std::vector< std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > >& waypointsList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- wi << startFromCurrentPosition;
- wi << waypointsList;
- call.member("SetWaypoints");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void GetWaypoints(const uint32_t& routeHandle, bool& startFromCurrentPosition, std::vector< std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > >& waypointsList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- call.member("GetWaypoints");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> startFromCurrentPosition;
- ri >> waypointsList;
- }
-
- void CalculateRoute(const uint32_t& sessionHandle, const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- call.member("CalculateRoute");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void CancelRouteCalculation(const uint32_t& sessionHandle, const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- call.member("CancelRouteCalculation");
- ::DBus::Message ret = invoke_method (call);
- }
-
- std::vector< uint32_t > CalculateRoutes(const uint32_t& sessionHandle, const std::vector< uint32_t >& calculatedRoutesList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << calculatedRoutesList;
- call.member("CalculateRoutes");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< uint32_t > argout;
- ri >> argout;
- return argout;
- }
-
- void GetRouteSegments(const uint32_t& routeHandle, const int16_t& detailLevel, const std::vector< int32_t >& valuesToReturn, const uint32_t& numberOfSegments, const uint32_t& offset, uint32_t& totalNumberOfSegments, std::vector< std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > >& routeSegments)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- wi << detailLevel;
- wi << valuesToReturn;
- wi << numberOfSegments;
- wi << offset;
- call.member("GetRouteSegments");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> totalNumberOfSegments;
- ri >> routeSegments;
- }
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > GetRouteOverview(const uint32_t& routeHandle, const std::vector< int32_t >& valuesToReturn)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- wi << valuesToReturn;
- call.member("GetRouteOverview");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > argout;
- ri >> argout;
- return argout;
- }
-
- ::DBus::Struct< ::DBus::Struct< double, double >, ::DBus::Struct< double, double > > GetRouteBoundingBox(const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- call.member("GetRouteBoundingBox");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ::DBus::Struct< ::DBus::Struct< double, double >, ::DBus::Struct< double, double > > argout;
- ri >> argout;
- return argout;
- }
-
- std::vector< uint32_t > GetAllRoutes()
- {
- ::DBus::CallMessage call;
- call.member("GetAllRoutes");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< uint32_t > argout;
- ri >> argout;
- return argout;
- }
-
- void SetBlockedRouteStretches(const uint32_t& sessionHandle, const uint32_t& routeHandle, const std::vector< ::DBus::Struct< uint32_t, uint32_t > >& blockParameters)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- wi << blockParameters;
- call.member("SetBlockedRouteStretches");
- ::DBus::Message ret = invoke_method (call);
- }
-
- std::vector< ::DBus::Struct< uint32_t, uint32_t > > GetBlockedRouteStretches(const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << routeHandle;
- call.member("GetBlockedRouteStretches");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::vector< ::DBus::Struct< uint32_t, uint32_t > > argout;
- ri >> argout;
- return argout;
- }
-
-
-public:
-
- /* signal handlers for this interface
- */
- virtual void RouteDeleted(const uint32_t& routeHandle) = 0;
- virtual void RouteCalculationCancelled(const uint32_t& routeHandle) = 0;
- virtual void RouteCalculationSuccessful(const uint32_t& routeHandle, const std::map< int32_t, int32_t >& unfullfilledPreferences) = 0;
- virtual void RouteCalculationFailed(const uint32_t& routeHandle, const int32_t& errorCode, const std::map< int32_t, int32_t >& unfullfilledPreferences) = 0;
- virtual void RouteCalculationProgressUpdate(const uint32_t& routeHandle, const int32_t& status, const uint8_t& percentage) = 0;
- virtual void AlternativeRoutesAvailable(const std::vector< uint32_t >& routeHandlesList) = 0;
-
-private:
-
- /* unmarshalers (to unpack the DBus message before calling the actual signal handler)
- */
- void _RouteDeleted_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t routeHandle;
- ri >> routeHandle;
- RouteDeleted(routeHandle);
- }
- void _RouteCalculationCancelled_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t routeHandle;
- ri >> routeHandle;
- RouteCalculationCancelled(routeHandle);
- }
- void _RouteCalculationSuccessful_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t routeHandle;
- ri >> routeHandle;
- std::map< int32_t, int32_t > unfullfilledPreferences;
- ri >> unfullfilledPreferences;
- RouteCalculationSuccessful(routeHandle, unfullfilledPreferences);
- }
- void _RouteCalculationFailed_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t routeHandle;
- ri >> routeHandle;
- int32_t errorCode;
- ri >> errorCode;
- std::map< int32_t, int32_t > unfullfilledPreferences;
- ri >> unfullfilledPreferences;
- RouteCalculationFailed(routeHandle, errorCode, unfullfilledPreferences);
- }
- void _RouteCalculationProgressUpdate_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t routeHandle;
- ri >> routeHandle;
- int32_t status;
- ri >> status;
- uint8_t percentage;
- ri >> percentage;
- RouteCalculationProgressUpdate(routeHandle, status, percentage);
- }
- void _AlternativeRoutesAvailable_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- std::vector< uint32_t > routeHandlesList;
- ri >> routeHandlesList;
- AlternativeRoutesAvailable(routeHandlesList);
- }
-};
-
-} } }
-namespace org {
-namespace genivi {
-namespace navigationcore {
-
-class MapMatchedPosition_proxy
-: public ::DBus::InterfaceProxy
-{
-public:
-
- MapMatchedPosition_proxy()
- : ::DBus::InterfaceProxy("org.genivi.navigationcore.MapMatchedPosition")
- {
- connect_signal(MapMatchedPosition_proxy, SimulationStatusChanged, _SimulationStatusChanged_stub);
- connect_signal(MapMatchedPosition_proxy, SimulationSpeedChanged, _SimulationSpeedChanged_stub);
- connect_signal(MapMatchedPosition_proxy, PositionUpdate, _PositionUpdate_stub);
- connect_signal(MapMatchedPosition_proxy, AddressUpdate, _AddressUpdate_stub);
- connect_signal(MapMatchedPosition_proxy, PositionOnSegmentUpdate, _PositionOnSegmentUpdate_stub);
- connect_signal(MapMatchedPosition_proxy, StatusUpdate, _StatusUpdate_stub);
- connect_signal(MapMatchedPosition_proxy, OffRoadPositionChanged, _OffRoadPositionChanged_stub);
- }
-
-public:
-
- /* properties exported by this interface */
-public:
-
- /* methods exported by this interface,
- * this functions will invoke the corresponding methods on the remote objects
- */
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > MapMatchedPositionGetVersion()
- {
- ::DBus::CallMessage call;
- call.member("GetVersion");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > argout;
- ri >> argout;
- return argout;
- }
-
- void SetSimulationMode(const uint32_t& sessionHandle, const bool& activate)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << activate;
- call.member("SetSimulationMode");
- ::DBus::Message ret = invoke_method (call);
- }
-
- int32_t GetSimulationStatus()
- {
- ::DBus::CallMessage call;
- call.member("GetSimulationStatus");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- int32_t argout;
- ri >> argout;
- return argout;
- }
-
- void AddSimulationStatusListener()
- {
- ::DBus::CallMessage call;
- call.member("AddSimulationStatusListener");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void RemoveSimulationStatusListener()
- {
- ::DBus::CallMessage call;
- call.member("RemoveSimulationStatusListener");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void SetSimulationSpeed(const uint32_t& sessionHandle, const uint8_t& speedFactor)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << speedFactor;
- call.member("SetSimulationSpeed");
- ::DBus::Message ret = invoke_method (call);
- }
-
- uint8_t GetSimulationSpeed()
- {
- ::DBus::CallMessage call;
- call.member("GetSimulationSpeed");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- uint8_t argout;
- ri >> argout;
- return argout;
- }
-
- void AddSimulationSpeedListener()
- {
- ::DBus::CallMessage call;
- call.member("AddSimulationSpeedListener");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void RemoveSimulationSpeedListener()
- {
- ::DBus::CallMessage call;
- call.member("RemoveSimulationSpeedListener");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void StartSimulation(const uint32_t& sessionHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- call.member("StartSimulation");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void PauseSimulation(const uint32_t& sessionHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- call.member("PauseSimulation");
- ::DBus::Message ret = invoke_method (call);
- }
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > GetPosition(const std::vector< int32_t >& valuesToReturn)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << valuesToReturn;
- call.member("GetPosition");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > argout;
- ri >> argout;
- return argout;
- }
-
- void SetPosition(const uint32_t& sessionHandle, const std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > >& position)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << position;
- call.member("SetPosition");
- ::DBus::Message ret = invoke_method (call);
- }
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > GetAddress(const std::vector< int32_t >& valuesToReturn)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << valuesToReturn;
- call.member("GetAddress");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > argout;
- ri >> argout;
- return argout;
- }
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > GetPositionOnSegment(const std::vector< int32_t >& valuesToReturn)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << valuesToReturn;
- call.member("GetPositionOnSegment");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > argout;
- ri >> argout;
- return argout;
- }
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > GetStatus(const std::vector< int32_t >& valuesToReturn)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << valuesToReturn;
- call.member("GetStatus");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > argout;
- ri >> argout;
- return argout;
- }
-
-
-public:
-
- /* signal handlers for this interface
- */
- virtual void SimulationStatusChanged(const int32_t& simulationStatus) = 0;
- virtual void SimulationSpeedChanged(const uint8_t& speedFactor) = 0;
- virtual void PositionUpdate(const std::vector< int32_t >& changedValues) = 0;
- virtual void AddressUpdate(const std::vector< int32_t >& changedValues) = 0;
- virtual void PositionOnSegmentUpdate(const std::vector< int32_t >& changedValues) = 0;
- virtual void StatusUpdate(const std::vector< int32_t >& changedValues) = 0;
- virtual void OffRoadPositionChanged(const uint32_t& distance, const int32_t& direction) = 0;
-
-private:
-
- /* unmarshalers (to unpack the DBus message before calling the actual signal handler)
- */
- void _SimulationStatusChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- int32_t simulationStatus;
- ri >> simulationStatus;
- SimulationStatusChanged(simulationStatus);
- }
- void _SimulationSpeedChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint8_t speedFactor;
- ri >> speedFactor;
- SimulationSpeedChanged(speedFactor);
- }
- void _PositionUpdate_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- std::vector< int32_t > changedValues;
- ri >> changedValues;
- PositionUpdate(changedValues);
- }
- void _AddressUpdate_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- std::vector< int32_t > changedValues;
- ri >> changedValues;
- AddressUpdate(changedValues);
- }
- void _PositionOnSegmentUpdate_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- std::vector< int32_t > changedValues;
- ri >> changedValues;
- PositionOnSegmentUpdate(changedValues);
- }
- void _StatusUpdate_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- std::vector< int32_t > changedValues;
- ri >> changedValues;
- StatusUpdate(changedValues);
- }
- void _OffRoadPositionChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t distance;
- ri >> distance;
- int32_t direction;
- ri >> direction;
- OffRoadPositionChanged(distance, direction);
- }
-};
-
-} } }
-namespace org {
-namespace genivi {
-namespace navigationcore {
-
-class Guidance_proxy
-: public ::DBus::InterfaceProxy
-{
-public:
-
- Guidance_proxy()
- : ::DBus::InterfaceProxy("org.genivi.navigationcore.Guidance")
- {
- connect_signal(Guidance_proxy, VehicleLeftTheRoadNetwork, _VehicleLeftTheRoadNetwork_stub);
- connect_signal(Guidance_proxy, GuidanceStatusChanged, _GuidanceStatusChanged_stub);
- connect_signal(Guidance_proxy, WaypointReached, _WaypointReached_stub);
- connect_signal(Guidance_proxy, ManeuverChanged, _ManeuverChanged_stub);
- connect_signal(Guidance_proxy, PositionOnRouteChanged, _PositionOnRouteChanged_stub);
- connect_signal(Guidance_proxy, VehicleLeftTheRoute, _VehicleLeftTheRoute_stub);
- connect_signal(Guidance_proxy, PositionToRouteChanged, _PositionToRouteChanged_stub);
- connect_signal(Guidance_proxy, ActiveRouteChanged, _ActiveRouteChanged_stub);
- }
-
-public:
-
- /* properties exported by this interface */
-public:
-
- /* methods exported by this interface,
- * this functions will invoke the corresponding methods on the remote objects
- */
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > GuidanceGetVersion()
- {
- ::DBus::CallMessage call;
- call.member("GetVersion");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ::DBus::Struct< uint16_t, uint16_t, uint16_t, std::string > argout;
- ri >> argout;
- return argout;
- }
-
- void StartGuidance(const uint32_t& sessionHandle, const uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeHandle;
- call.member("StartGuidance");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void StopGuidance(const uint32_t& sessionHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- call.member("StopGuidance");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void SetVoiceGuidance(const bool& activate, const std::string& voice)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << activate;
- wi << voice;
- call.member("SetVoiceGuidance");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void GetGuidanceDetails(bool& voiceGuidance, bool& vehicleOnTheRoad, bool& isDestinationReached, int32_t& maneuver)
- {
- ::DBus::CallMessage call;
- call.member("GetGuidanceDetails");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> voiceGuidance;
- ri >> vehicleOnTheRoad;
- ri >> isDestinationReached;
- ri >> maneuver;
- }
-
- void PlayVoiceManeuver()
- {
- ::DBus::CallMessage call;
- call.member("PlayVoiceManeuver");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void GetWaypointInformation(const uint16_t& requestedNumberOfWaypoints, uint16_t& numberOfWaypoints, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, int32_t, int16_t, int16_t, bool, uint16_t > >& waypointsList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << requestedNumberOfWaypoints;
- call.member("GetWaypointInformation");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> numberOfWaypoints;
- ri >> waypointsList;
- }
-
- void GetDestinationInformation(uint32_t& offset, uint32_t& travelTime, int32_t& direction, int32_t& side, int16_t& timeZone, int16_t& daylightSavingTime)
- {
- ::DBus::CallMessage call;
- call.member("GetDestinationInformation");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> offset;
- ri >> travelTime;
- ri >> direction;
- ri >> side;
- ri >> timeZone;
- ri >> daylightSavingTime;
- }
-
- void GetManeuversList(const uint16_t& requestedNumberOfManeuvers, const uint32_t& maneuverOffset, uint16_t& numberOfManeuvers, std::vector< ::DBus::Struct< std::string, std::string, uint16_t, int32_t, uint32_t, std::vector< ::DBus::Struct< uint32_t, uint32_t, int32_t, int32_t, std::map< int32_t, ::DBus::Struct< uint8_t, ::DBus::Variant > > > > > >& maneuversList)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << requestedNumberOfManeuvers;
- wi << maneuverOffset;
- call.member("GetManeuversList");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> numberOfManeuvers;
- ri >> maneuversList;
- }
-
- void SetRouteCalculationMode(const uint32_t& sessionHandle, const int32_t& routeCalculationMode)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- wi << routeCalculationMode;
- call.member("SetRouteCalculationMode");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void SkipNextManeuver(const uint32_t& sessionHandle)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << sessionHandle;
- call.member("SkipNextManeuver");
- ::DBus::Message ret = invoke_method (call);
- }
-
- void GetGuidanceStatus(int32_t& guidanceStatus, uint32_t& routeHandle)
- {
- ::DBus::CallMessage call;
- call.member("GetGuidanceStatus");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- ri >> guidanceStatus;
- ri >> routeHandle;
- }
-
- void SetVoiceGuidanceSettings(const int32_t& promptMode)
- {
- ::DBus::CallMessage call;
- ::DBus::MessageIter wi = call.writer();
-
- wi << promptMode;
- call.member("SetVoiceGuidanceSettings");
- ::DBus::Message ret = invoke_method (call);
- }
-
- int32_t GetVoiceGuidanceSettings()
- {
- ::DBus::CallMessage call;
- call.member("GetVoiceGuidanceSettings");
- ::DBus::Message ret = invoke_method (call);
- ::DBus::MessageIter ri = ret.reader();
-
- int32_t argout;
- ri >> argout;
- return argout;
- }
-
-
-public:
-
- /* signal handlers for this interface
- */
- virtual void VehicleLeftTheRoadNetwork() = 0;
- virtual void GuidanceStatusChanged(const int32_t& guidanceStatus, const uint32_t& routeHandle) = 0;
- virtual void WaypointReached(const bool& isDestination) = 0;
- virtual void ManeuverChanged(const int32_t& maneuver) = 0;
- virtual void PositionOnRouteChanged(const uint32_t& offsetOnRoute) = 0;
- virtual void VehicleLeftTheRoute() = 0;
- virtual void PositionToRouteChanged(const uint32_t& distance, const int32_t& direction) = 0;
- virtual void ActiveRouteChanged(const int32_t& changeCause) = 0;
-
-private:
-
- /* unmarshalers (to unpack the DBus message before calling the actual signal handler)
- */
- void _VehicleLeftTheRoadNetwork_stub(const ::DBus::SignalMessage &sig)
- {
- VehicleLeftTheRoadNetwork();
- }
- void _GuidanceStatusChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- int32_t guidanceStatus;
- ri >> guidanceStatus;
- uint32_t routeHandle;
- ri >> routeHandle;
- GuidanceStatusChanged(guidanceStatus, routeHandle);
- }
- void _WaypointReached_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- bool isDestination;
- ri >> isDestination;
- WaypointReached(isDestination);
- }
- void _ManeuverChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- int32_t maneuver;
- ri >> maneuver;
- ManeuverChanged(maneuver);
- }
- void _PositionOnRouteChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t offsetOnRoute;
- ri >> offsetOnRoute;
- PositionOnRouteChanged(offsetOnRoute);
- }
- void _VehicleLeftTheRoute_stub(const ::DBus::SignalMessage &sig)
- {
- VehicleLeftTheRoute();
- }
- void _PositionToRouteChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- uint32_t distance;
- ri >> distance;
- int32_t direction;
- ri >> direction;
- PositionToRouteChanged(distance, direction);
- }
- void _ActiveRouteChanged_stub(const ::DBus::SignalMessage &sig)
- {
- ::DBus::MessageIter ri = sig.reader();
-
- int32_t changeCause;
- ri >> changeCause;
- ActiveRouteChanged(changeCause);
- }
-};
-
-} } }
-#endif //__dbusxx__genivi_navigationcore_proxy_h__PROXY_MARSHAL_H
diff --git a/include/genivi/navicore.h b/include/genivi/navicore.h
deleted file mode 100644
index a80bc1f..0000000
--- a/include/genivi/navicore.h
+++ /dev/null
@@ -1,140 +0,0 @@
-// Copyright 2017 AISIN AW CO.,LTD
-
-#ifndef NAVICORE_H
-#define NAVICORE_H
-
-#include <dbus-c++-1/dbus-c++/dbus.h>
-#include "genivi-navigationcore-proxy.h"
-#include <stdio.h>
-
-class Navicore :
- public org::genivi::navigationcore::Session_proxy,
- public org::genivi::navigationcore::Routing_proxy,
- public org::genivi::navigationcore::MapMatchedPosition_proxy,
- public org::genivi::navigationcore::Guidance_proxy,
- public DBus::IntrospectableProxy,
- public DBus::ObjectProxy
-{
-public:
- Navicore(DBus::Connection &connection, const char *path, const char *name)
- : DBus::ObjectProxy(connection, path, name)
- {
- };
-
- // Session
- void SessionDeleted(const uint32_t& sessionHandle)
- {
- printf("NavicoreSession - Session %d deleted\n",sessionHandle);
- };
-
- // Routing
- void RouteDeleted(const uint32_t& routeHandle)
- {
- // TODO
- };
-
- void RouteCalculationCancelled(const uint32_t& routeHandle)
- {
- // TODO
- };
-
- void RouteCalculationSuccessful(const uint32_t& routeHandle, const std::map< int32_t, int32_t >& unfullfilledPreferences)
- {
- // TODO
- };
-
- void RouteCalculationFailed(const uint32_t& routeHandle, const int32_t& errorCode, const std::map< int32_t, int32_t >& unfullfilledPreferences)
- {
- // TODO
- };
-
- void RouteCalculationProgressUpdate(const uint32_t& routeHandle, const int32_t& status, const uint8_t& percentage)
- {
- // TODO
- };
-
- void AlternativeRoutesAvailable(const std::vector< uint32_t >& routeHandlesList)
- {
- // TODO
- };
-
- // MapMatchedPosition
- void SimulationStatusChanged(const int32_t& simulationStatus)
- {
- // TODO
- };
-
- void SimulationSpeedChanged(const uint8_t& speedFactor)
- {
- // TODO
- };
-
- void PositionUpdate(const std::vector< int32_t >& changedValues)
- {
- // TODO
- };
-
- void AddressUpdate(const std::vector< int32_t >& changedValues)
- {
- // TODO
- };
-
- void PositionOnSegmentUpdate(const std::vector< int32_t >& changedValues)
- {
- // TODO
- };
-
- void StatusUpdate(const std::vector< int32_t >& changedValues)
- {
- // TODO
- };
-
- void OffRoadPositionChanged(const uint32_t& distance, const int32_t& direction)
- {
- // TODO
- };
-
- // Guidance
- void VehicleLeftTheRoadNetwork()
- {
- // TODO
- };
-
- void GuidanceStatusChanged(const int32_t& guidanceStatus, const uint32_t& routeHandle)
- {
- // TODO
- };
-
- void WaypointReached(const bool& isDestination)
- {
- // TODO
- };
-
- void ManeuverChanged(const int32_t& maneuver)
- {
- // TODO
- };
-
- void PositionOnRouteChanged(const uint32_t& offsetOnRoute)
- {
- // TODO
- };
-
- void VehicleLeftTheRoute()
- {
- // TODO
- };
-
- void PositionToRouteChanged(const uint32_t& distance, const int32_t& direction)
- {
- // TODO
- };
-
- void ActiveRouteChanged(const int32_t& changeCause)
- {
- // TODO
- };
-
-};
-
-#endif
diff --git a/include/genivi_request.h b/include/genivi_request.h
deleted file mode 100644
index 75201c7..0000000
--- a/include/genivi_request.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2017 AW SOFTWARE CO.,LTD
-// Copyright 2017 AISIN AW CO.,LTD
-
-#pragma once
-
-#include <map>
-#include <vector>
-#include <stdint.h>
-
-typedef std::tuple<double, double> Waypoint;
-
-/**
- * @brief Genivi API call.
- */
-class GeniviRequest
-{
-public:
- ~GeniviRequest();
-
- std::map< int32_t, double > NavicoreGetPosition( const std::vector< int32_t >& valuesToReturn );
- std::vector< uint32_t > NavicoreGetAllRoutes();
- uint32_t 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<Waypoint>& waypointsList );
- void NavicoreCalculateRoute( const uint32_t& sessionHandle, const uint32_t& routeHandle );
- std::map<uint32_t, std::string> NavicoreGetAllSessions();
-
-private:
- void* navicore_;
-
- void CreateDBusSession();
- bool CheckSession();
-};
-
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)
-{
-}
-
diff --git a/libnaviapi-agl.pc.in b/libnaviapi-agl.pc.in
deleted file mode 100644
index b7dcb60..0000000
--- a/libnaviapi-agl.pc.in
+++ /dev/null
@@ -1,14 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-includedir=@PROJECT_INCLUDEDIR@
-libdir=@PROJECT_LIBDIR@
-binding_install_dir=@binding_install_dir@
-
-Name: @PROJECT_PRETTY_NAME@
-Description: @PROJECT_DESCRIPTION@
-Version: @PROJECT_VERSION@
-URL: @PROJECT_URL@
-
-Requires: json-c libafbwsc
-Cflags: -I${includedir}
-Libs: -L${libdir} -lnaviapi-agl
diff --git a/navigation.png b/navigation.png
deleted file mode 100644
index e7ad085..0000000
--- a/navigation.png
+++ /dev/null
Binary files differ
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 bf04453..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__