diff options
Diffstat (limited to 'dbus_interface')
-rw-r--r-- | dbus_interface/dbus_interface.pro | 44 | ||||
-rw-r--r-- | dbus_interface/dbus_types.h | 75 | ||||
-rw-r--r-- | dbus_interface/org.agl.naviapi.xml | 34 | ||||
-rw-r--r-- | dbus_interface/org.genivi.navigationcore.xml | 61 |
4 files changed, 214 insertions, 0 deletions
diff --git a/dbus_interface/dbus_interface.pro b/dbus_interface/dbus_interface.pro new file mode 100644 index 0000000..d647da3 --- /dev/null +++ b/dbus_interface/dbus_interface.pro @@ -0,0 +1,44 @@ +QT += dbus +TARGET = dbus_interface +TEMPLATE = lib +CONFIG += staticlib + +SOURCES += +HEADERS += \ + dbus_types.h + +XMLSOURCES = \ + org.genivi.navigationcore.xml \ + org.agl.naviapi.xml + +gen_adaptor_cpp.input = XMLSOURCES +gen_adaptor_cpp.commands = \ + qdbusxml2cpp -i $$PWD/dbus_types.h -m -a ${QMAKE_FILE_IN_BASE}_adaptor ${QMAKE_FILE_IN}; \ + moc $$OUT_PWD/${QMAKE_FILE_IN_BASE}_adaptor.h -o $$OUT_PWD/${QMAKE_FILE_IN_BASE}_adaptor.moc +gen_adaptor_cpp.output = ${QMAKE_FILE_IN_BASE}_adaptor.cpp +gen_adaptor_cpp.variable_out = SOURCES +gen_adaptor_cpp.clean = ${QMAKE_FILE_IN_BASE}_adaptor.cpp + +gen_adaptor_h.input = XMLSOURCES +gen_adaptor_h.commands = @echo Fake making the header for ${QMAKE_FILE_IN} +gen_adaptor_h.depends = ${QMAKE_FILE_IN_BASE}_adaptor.cpp +gen_adaptor_h.output = ${QMAKE_FILE_IN_BASE}_adaptor.h +gen_adaptor_h.clean = ${QMAKE_FILE_IN_BASE}_adaptor.h + +gen_interface_cpp.input = XMLSOURCES +gen_interface_cpp.commands = \ + qdbusxml2cpp -i $$PWD/dbus_types.h -m -p ${QMAKE_FILE_IN_BASE}_interface ${QMAKE_FILE_IN}; \ + moc $$OUT_PWD/${QMAKE_FILE_IN_BASE}_interface.h -o $$OUT_PWD/${QMAKE_FILE_IN_BASE}_interface.moc +gen_interface_cpp.output = ${QMAKE_FILE_IN_BASE}_interface.cpp +gen_interface_cpp.variable_out = SOURCES +gen_interface_cpp.clean = ${QMAKE_FILE_IN_BASE}_interface.cpp + +gen_interface_h.input = XMLSOURCES +gen_interface_h.commands = @echo Fake making the header for ${QMAKE_FILE_IN} +gen_interface_h.depends = ${QMAKE_FILE_IN_BASE}_interface.cpp +gen_interface_h.output = ${QMAKE_FILE_IN_BASE}_interface.h +gen_interface_h.clean = ${QMAKE_FILE_IN_BASE}_interface.h + +QMAKE_EXTRA_COMPILERS += gen_adaptor_cpp gen_adaptor_h gen_interface_cpp gen_interface_h + +DISTFILES += diff --git a/dbus_interface/dbus_types.h b/dbus_interface/dbus_types.h new file mode 100644 index 0000000..9b49adb --- /dev/null +++ b/dbus_interface/dbus_types.h @@ -0,0 +1,75 @@ +#ifndef DBUS_TYPES_H +#define DBUS_TYPES_H +#include <QtDBus> + +#include <QMetaType> +#include <QtCore/QList> +#include <QtCore/QMap> +#include <QtCore/QVariant> +#include <QPair> +#include <QDBusVariant> + +// for org.genivi.navigationcore +struct qPositionPairElm{ + uint8_t key; + QDBusVariant value; +}; +Q_DECLARE_METATYPE(qPositionPairElm) + +inline QDBusArgument &operator <<(QDBusArgument &argument, const qPositionPairElm &qpositionpairelm) +{ + argument.beginStructure(); + argument << qpositionpairelm.key << qpositionpairelm.value; + argument.endStructure(); + return argument; +} + +inline const QDBusArgument &operator >>(const QDBusArgument &argument, qPositionPairElm &qpositionpairelm) +{ + argument.beginStructure(); + argument >> qpositionpairelm.key; + argument >> qpositionpairelm.value; + argument.endStructure(); + return argument; +} + +typedef QMap<int32_t,qPositionPairElm> qPosition; +Q_DECLARE_METATYPE(qPosition) + +typedef QList<int32_t> qValuesToReturn; +Q_DECLARE_METATYPE(qValuesToReturn) + +typedef QList<QMap<int32_t,qPositionPairElm>> qWaypointsList; // aa{i(yv)} +Q_DECLARE_METATYPE(qWaypointsList) + +typedef QList<uint32_t> qCalculatedRoutesList; // au + +typedef QList<uint32_t> qRoutesList; //au + +struct qSessionsListElm{ + uint32_t key; + QString value; +}; +Q_DECLARE_METATYPE(qSessionsListElm) + +inline QDBusArgument &operator <<(QDBusArgument &argument, const qSessionsListElm &qsessionslistelm) +{ + argument.beginStructure(); + argument << qsessionslistelm.key << qsessionslistelm.value; + argument.endStructure(); + return argument; +} + +inline const QDBusArgument &operator >>(const QDBusArgument &argument, qSessionsListElm &qsessionslistelm) +{ + argument.beginStructure(); + argument >> qsessionslistelm.key; + argument >> qsessionslistelm.value; + argument.endStructure(); + return argument; +} + +typedef QList<qSessionsListElm> qSessionsList; // a(us) +Q_DECLARE_METATYPE(qSessionsList) + +#endif diff --git a/dbus_interface/org.agl.naviapi.xml b/dbus_interface/org.agl.naviapi.xml new file mode 100644 index 0000000..7132539 --- /dev/null +++ b/dbus_interface/org.agl.naviapi.xml @@ -0,0 +1,34 @@ +<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> +<node> + <interface name="org.agl.naviapi"> + <!-- void signalRouteInfo() --> + <signal name="signalRouteInfo"> + <arg name="start_latitude" type="d" direction="out"/> + <arg name="start_longitude" type="d" direction="out"/> + <arg name="end_latitude" type="d" direction="out"/> + <arg name="end_longitude" type="d" direction="out"/> + </signal> + <!-- void signalPosInfo() --> + <signal name="signalPosInfo"> + <arg name="latitude" type="d" direction="out"/> + <arg name="longitude" type="d" direction="out"/> + <arg name="direction" type="d" direction="out"/> + <arg name="distance" type="d" direction="out"/> + </signal> + <!-- void signalStopDemo() --> + <signal name="signalStopDemo"> + </signal> + <!-- void signalArrvied() --> + <signal name="signalArrvied"> + </signal> + <!-- void getRouteInfo() --> + <signal name="getRouteInfo"> + </signal> + <!-- for Debug heading-up driving over long distance routes --> + <signal name="checkdirection"> + <arg name="cur_direction" type="d" direction="out"/> + <arg name="next_direction" type="d" direction="out"/> + <arg name="is_rotating" type="d" direction="out"/> + </signal> + </interface> +</node> diff --git a/dbus_interface/org.genivi.navigationcore.xml b/dbus_interface/org.genivi.navigationcore.xml new file mode 100644 index 0000000..1e4704e --- /dev/null +++ b/dbus_interface/org.genivi.navigationcore.xml @@ -0,0 +1,61 @@ +<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd"> +<node> + <interface name="org.genivi.navigationcore.MapMatchedPosition"> + <method name="GetPosition"> + <arg direction="in" type="ai" name="valuesToReturn"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="qValuesToReturn"/> + <arg direction="out" type="a{i(yv)}" name="position"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="qPosition"/> + </method> + <method name="SetSimulationMode"> + <arg direction="in" type="u" name="sessionHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="qSessionHandle"/> + <arg direction="in" type="b" name="activate"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="qActivate"/> + </method> + <method name="PauseSimulation"> + <arg direction="in" type="u" name="sessionHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="qSessionHandle"/> + </method> + </interface> + <interface name="org.genivi.navigationcore.Routing"> + <method name="CreateRoute"> + <arg direction="in" type="u" name="sessionHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="qSessionHandle"/> + <arg direction="out" type="u" name="routeHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="qRouteHandle"/> + </method> + <method name="SetWaypoints"> + <arg direction="in" type="u" name="sessionHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="qSessionHandle"/> + <arg direction="in" type="u" name="routeHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="qRouteHandle"/> + <arg direction="in" type="b" name="startFromCurrentPosition"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="qStartFromCurrentPosition"/> + <arg direction="in" type="aa{i(yv)}" name="waypointsList"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In3" value="qWaypointsList"/> + </method> + <method name="CalculateRoute"> + <arg direction="in" type="u" name="sessionHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="qSessionHandle"/> + <arg direction="in" type="u" name="routeHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="qRouteHandle"/> + </method> + <method name="CancelRouteCalculation"> + <arg direction="in" type="u" name="sessionHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="qSessionHandle"/> + <arg direction="in" type="u" name="routeHandle"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="qRouteHandle"/> + </method> + <method name="GetAllRoutes"> + <arg direction="out" type="au" name="routesList"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="qRoutesList"/> + </method> + </interface> + <interface name="org.genivi.navigationcore.Session"> + <method name="GetAllSessions"> + <arg direction="out" type="a(us)" name="sessionsList"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="qSessionsList"/> + </method> + </interface> +</node> |