aboutsummaryrefslogtreecommitdiffstats
path: root/app/dbus_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/dbus_server.cpp')
-rw-r--r--app/dbus_server.cpp113
1 files changed, 113 insertions, 0 deletions
diff --git a/app/dbus_server.cpp b/app/dbus_server.cpp
new file mode 100644
index 0000000..ea3acad
--- /dev/null
+++ b/app/dbus_server.cpp
@@ -0,0 +1,113 @@
+#include"dbus_server.h"
+#include <QDebug>
+
+DBus_Server::DBus_Server(QObject *parent) :
+ m_serverName("naviapi"),
+ m_pathName("org.agl.naviapi"),
+ m_objName("/org/agl/naviapi")
+{
+ initDBus();
+ initAPIs(parent);
+}
+
+DBus_Server::~DBus_Server(){
+ QDBusConnection::sessionBus().unregisterObject(m_objName);
+ QDBusConnection::sessionBus().unregisterService(m_pathName);
+}
+
+void DBus_Server::initDBus(){
+
+ new NaviapiAdaptor(this);
+
+ if (!QDBusConnection::sessionBus().registerService(m_pathName))
+ qDebug() << m_serverName << "registerService() failed";
+
+ if (!QDBusConnection::sessionBus().registerObject(m_objName, this))
+ qDebug() << m_serverName << "registerObject() failed";
+
+ QDBusConnection sessionBus = QDBusConnection::connectToBus(QDBusConnection::SessionBus, m_serverName);
+ if (!sessionBus.isConnected()) {
+ qDebug() << m_serverName << "connectToBus() failed";
+ }
+
+ //for receive dbus signal
+ org::agl::naviapi *mInterface;
+ mInterface = new org::agl::naviapi(QString(),QString(),QDBusConnection::sessionBus(),this);
+ if (!connect(mInterface,SIGNAL(getRouteInfo()),this,SLOT(getRouteInfoSlot()))){
+ qDebug() << m_serverName << "sessionBus.connect():getRouteInfoSlot failed";
+ }
+
+}
+
+void DBus_Server::initAPIs(QObject *parent){
+
+ if(!QObject::connect(this,SIGNAL(doGetRouteInfo()),
+ parent,SLOT(doGetRouteInfoSlot()))) {
+ qDebug() << m_serverName << "cppSIGNAL:doGetRouteInfo to qmlSLOT:doGetRouteInfoSlot connect is failed";
+ }
+
+ if(!QObject::connect(parent,SIGNAL(qmlSignalRouteInfo(double,double,double,double)),
+ this,SLOT(sendSignalRouteInfo(double,double,double,double)))) {
+ qDebug() << m_serverName << "qmlSIGNAL:qmlSignalRouteInfo to cppSLOT:sendSignalRouteInfo connect is failed";
+ }
+
+ if(!QObject::connect(parent,SIGNAL(qmlSignalPosInfo(double,double,double,double)),
+ this,SLOT(sendSignalPosInfo(double,double,double,double)))) {
+ qDebug() << m_serverName << "qmlSIGNAL:qmlSignalPosInfo to cppSLOT:sendSignalPosInfo connect is failed";
+ }
+
+ if(!QObject::connect(parent,SIGNAL(qmlSignalStopDemo()),
+ this,SLOT(sendSignalStopDemo()))) {
+ qDebug() << m_serverName << "qmlSIGNAL:qmlSignalStopDemo to cppSLOT:sendSignalStopDemo connect is failed";
+ }
+
+ if(!QObject::connect(parent,SIGNAL(qmlSignalArrvied()),
+ this,SLOT(sendSignalArrvied()))) {
+ qDebug() << m_serverName << "qmlSIGNAL:qmlSignalArrvied to cppSLOT:sendSignalArrvied connect is failed";
+ }
+}
+
+void DBus_Server::getRouteInfoSlot(){
+ qDebug() << "call getRouteInfoSlot ";
+ emit doGetRouteInfo();
+ return;
+}
+
+// Signal
+void DBus_Server::sendSignalRouteInfo(double srt_lat, double srt_lon, double end_lat, double end_lon){
+ qDebug() << "call sendSignalRouteInfo ";
+ QDBusMessage message = QDBusMessage::createSignal(m_objName,
+ org::agl::naviapi::staticInterfaceName(),
+ "signalRouteInfo");
+ message << srt_lat << srt_lon << end_lat << end_lon;
+ QDBusConnection::sessionBus().send(message);
+ return;
+}
+
+void DBus_Server::sendSignalPosInfo(double lat, double lon, double drc, double dst){
+ QDBusMessage message = QDBusMessage::createSignal(m_objName,
+ org::agl::naviapi::staticInterfaceName(),
+ "signalPosInfo");
+ message << lat << lon << drc << dst;
+ QDBusConnection::sessionBus().send(message);
+ return;
+}
+
+void DBus_Server::sendSignalStopDemo(){
+ qDebug() << "call sendSignalStopDemo ";
+ QDBusMessage message = QDBusMessage::createSignal(m_objName,
+ org::agl::naviapi::staticInterfaceName(),
+ "signalStopDemo");
+ QDBusConnection::sessionBus().send(message);
+ return;
+}
+
+void DBus_Server::sendSignalArrvied(){
+ qDebug() << "call sendSignalArrvied ";
+ QDBusMessage message = QDBusMessage::createSignal(m_objName,
+ org::agl::naviapi::staticInterfaceName(),
+ "signalArrvied");
+ QDBusConnection::sessionBus().send(message);
+ return;
+}
+// Method