Add dbus interface for SystemController

This commit is contained in:
2023-07-20 08:15:03 +02:00
parent 33445c1249
commit f790d327e9
6 changed files with 155 additions and 0 deletions

View File

@@ -3,6 +3,7 @@
#include "src/ATBAPP/ATBMachineEvent.h"
#include "src/ATBAPP/Utils.h"
#include "src/ATBAPP/support/JSON.h"
#include "src/ATBAPP/support/DBusControllerInterface.h"
#include <QTimer>
#include <QThread>
@@ -31,6 +32,9 @@ ATBDeviceControllerPlugin::ATBDeviceControllerPlugin(QObject *parent)
return;
}
this->init_sc_dbus();
//connect(dynamic_cast<QObject*>(hw), SIGNAL(hwapi_templatePrintFinished_OK()), this, SLOT(onPrintFinishedOK()), Qt::QueuedConnection);
//connect(dynamic_cast<QObject*>(hw), SIGNAL(hwapi_templatePrintFinished_Err()), this, SLOT(onPrintFinishedERR()), Qt::QueuedConnection);
@@ -911,6 +915,46 @@ bool ATBDeviceControllerPlugin::private_loadCashAgentLib(QString pluginName)
/***********************************************************************************************
* dbus
*/
int ATBDeviceControllerPlugin::init_sc_dbus()
{
#if defined (ARCH_PTU4)
this->dbus = new DBusControllerInterface("eu.atb.ptu", "/systemcontrol", QDBusConnection::systemBus(), 0);
#elif defined (ARCH_PTU5)
this->dbus = new DBusControllerInterface("eu.atb.ptu.systemcontrol", "/systemcontrol", QDBusConnection::systemBus(), 0);
#else
this->dbus = new DBusControllerInterface("eu.atb.ptu", "/systemcontrol", QDBusConnection::sessionBus(), 0);
#endif
if (!dbus->isValid()) {
QString errorString = QDBusError::errorString(dbus->lastError().type());
qCritical() << errorString;
if (dbus->lastError().isValid()){
qCritical() << "last error is valid.";
}
qCritical() << "message: " << dbus->lastError().message();
qCritical() << "SystemController is not valid.";
return 0;
}
if (!dbus->connection().isConnected()) {
qCritical() << "SystemController is not connected.";
return 0;
}
connect(this->dbus, SIGNAL(wokeUpFrom(uchar)), this, SLOT(onWokeUp(uchar)));
return 1;
}
/************************************************************************************************
* Mandatory plugin methods
*