summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-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
6 files changed, 1588 insertions, 0 deletions
diff --git a/include/analyze_request.h b/include/analyze_request.h
new file mode 100644
index 0000000..f570a1c
--- /dev/null
+++ b/include/analyze_request.h
@@ -0,0 +1,31 @@
+// 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
new file mode 100644
index 0000000..44e20d0
--- /dev/null
+++ b/include/binder_reply.h
@@ -0,0 +1,34 @@
+// 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
new file mode 100644
index 0000000..4021006
--- /dev/null
+++ b/include/genivi/genivi-navicore-constants.h
@@ -0,0 +1,199 @@
+// 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
new file mode 100644
index 0000000..2322fa0
--- /dev/null
+++ b/include/genivi/genivi-navigationcore-proxy.h
@@ -0,0 +1,1147 @@
+
+/*
+ * 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
new file mode 100644
index 0000000..a80bc1f
--- /dev/null
+++ b/include/genivi/navicore.h
@@ -0,0 +1,140 @@
+// 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
new file mode 100644
index 0000000..75201c7
--- /dev/null
+++ b/include/genivi_request.h
@@ -0,0 +1,37 @@
+// 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();
+};
+