summaryrefslogtreecommitdiffstats
path: root/app/dbus_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/dbus_server.cpp')
-rw-r--r--app/dbus_server.cpp134
1 files changed, 134 insertions, 0 deletions
diff --git a/app/dbus_server.cpp b/app/dbus_server.cpp
new file mode 100644
index 0000000..d83528e
--- /dev/null
+++ b/app/dbus_server.cpp
@@ -0,0 +1,134 @@
+#include"dbus_server.h"
+#include <QDebug>
+
+DBus_Server::DBus_Server(const QString &pathName,
+ const QString &objName,
+ const QString &serverName,
+ QObject *parent) :
+ m_serverName(serverName),
+ m_pathName(pathName + serverName),
+ m_objName(objName + serverName)
+{
+ initDBus();
+ initAPIs(parent);
+}
+DBus_Server::~DBus_Server(){}
+
+void DBus_Server::initDBus(){
+
+ new NaviapiAdaptor(this);
+
+ if (!QDBusConnection::sessionBus().registerService(m_pathName))
+ qDebug() << m_pathName << "registerService() failed";
+
+ if (!QDBusConnection::sessionBus().registerObject(m_objName, this))
+ qDebug() << m_objName << "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(doAddPOI(QVariant,QVariant,QVariant)),
+ parent,SLOT(addPoiIconSLOT(QVariant,QVariant,QVariant)))) {
+ qDebug() << m_serverName << "cppSIGNAL:doAddPOI to qmlSLOT:addPoiIcon connect is failed";
+ }
+
+ if(!QObject::connect(this,SIGNAL(doRemovePOIs(QVariant)),
+ parent,SLOT(removePoiIconsSLOT(QVariant)))) {
+ qDebug() << m_serverName << "cppSIGNAL:doRemovePOIs to qmlSLOT:removePoiIcons connect is failed";
+ }
+
+ 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){
+// qDebug() << "call sendSignalPosInfo ";
+ 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
+void DBus_Server::addPOI(uint category_id, double poi_Lat, double poi_Lon){
+ qDebug() << "call addPOI category_id: " << category_id << " poi_Lat: " << poi_Lat << " poi_Lon: " << poi_Lon;
+ emit doAddPOI(poi_Lat,poi_Lon,category_id);
+ return;
+}
+void DBus_Server::removePOIs(uint category_id){
+ qDebug() << "call removePOIs category_id: " << category_id;
+ emit doRemovePOIs(category_id);
+ return;
+}