diff options
author | Scott Murray <scott.murray@konsulko.com> | 2019-08-30 11:40:23 -0400 |
---|---|---|
committer | Scott Murray <scott.murray@konsulko.com> | 2019-09-05 00:18:27 +0000 |
commit | da9d177514fe438edd8262226cdc770df6c9eb82 (patch) | |
tree | e33d2af8d2e129b372caf34afac37366b641553a /include | |
parent | dd61aa309b3a082488c9d3c383c1601fd3efbc2a (diff) |
Initial check in
Initial check in of contents of the original repository:
git://github.com/AGLExport/agl-service-navigation
as of commit 1f1ffc92fcc882aa5e885badbc91a3384f5d77b1.
Bug-AGL: SPEC-2787
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Change-Id: I02d008ee73cdfd88f1e7587ee57101187b9c4d6d
(cherry picked from commit f14ecdd52975ae365af5ed32648bf55dddacb8d9)
Diffstat (limited to 'include')
-rw-r--r-- | include/analyze_request.h | 31 | ||||
-rw-r--r-- | include/binder_reply.h | 34 | ||||
-rw-r--r-- | include/genivi/genivi-navicore-constants.h | 199 | ||||
-rw-r--r-- | include/genivi/genivi-navigationcore-proxy.h | 1147 | ||||
-rw-r--r-- | include/genivi/navicore.h | 140 | ||||
-rw-r--r-- | include/genivi_request.h | 37 |
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(); +}; + |