Compare commits
13 Commits
365b02a9c9
...
909d1355a0
Author | SHA1 | Date | |
---|---|---|---|
909d1355a0 | |||
35f3c5f0a1 | |||
1c2ac9f4da | |||
078dd94e60 | |||
ed8505c177 | |||
63b4d7577d | |||
fc70115079 | |||
f96ac85a18 | |||
028792143a | |||
d15d15b55a | |||
5f7fc7f168 | |||
0f6e666124 | |||
27bc4afd51 |
@ -5,12 +5,8 @@ QT += serialport
|
||||
|
||||
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/support
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/plugins
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/include
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/HMI
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/HMI/screens
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/HMI/support
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/src
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/src/ATBAPP
|
||||
INCLUDEPATH+=$$_PRO_FILE_PWD_/src/ATBAPP/support
|
||||
@ -21,12 +17,11 @@ QMAKE_CXXFLAGS += -Wno-deprecated-copy -O
|
||||
# default
|
||||
ARCH = PTU5
|
||||
|
||||
DEFINES+=ATB_QT_VERSION=\\\"5.11\\\"
|
||||
|
||||
contains( CONFIG, DesktopLinux ) {
|
||||
QMAKE_CC = ccache $$QMAKE_CC
|
||||
QMAKE_CXX = ccache $$QMAKE_CXX
|
||||
QMAKE_CXXFLAGS += -std=c++11
|
||||
QMAKE_CXXFLAGS += -std=c++17
|
||||
# QMAKE_CXXFLAGS += -Wno-deprecated-ctor
|
||||
linux-clang { QMAKE_CXXFLAGS += -Qunused-arguments }
|
||||
ARCH = DesktopLinux
|
||||
@ -35,7 +30,7 @@ contains( CONFIG, DesktopLinux ) {
|
||||
contains( CONFIG, PTU5 ) {
|
||||
# QMAKE_CC = ccache $$QMAKE_CC
|
||||
# QMAKE_CXX = ccache $$QMAKE_CXX
|
||||
QMAKE_CXXFLAGS += -std=c++11
|
||||
QMAKE_CXXFLAGS += -std=c++17
|
||||
linux-clang { QMAKE_CXXFLAGS += -Qunused-arguments }
|
||||
CONFIG += link_pkgconfig
|
||||
ARCH = PTU5
|
||||
@ -57,6 +52,27 @@ INTERFACE_DEFINITION = $${PWD}/src/ATBAPP/VMCInterface.h
|
||||
|
||||
DEFINES += VMCPLUGIN_LIBRARY
|
||||
|
||||
win32 {
|
||||
BUILD_DATE=$$system("date /t")
|
||||
BUILD_TIME=$$system("time /t")
|
||||
} else {
|
||||
BUILD_DATE=$$system("date +%d-%m-%y")
|
||||
BUILD_TIME=$$system("date +%H:%M:%S")
|
||||
}
|
||||
|
||||
GIT_COMMIT=$$system("git log -1 --format=oneline | cut -d' ' -f1")
|
||||
|
||||
EXTENDED_VERSION="$${VERSION}-$${GIT_COMMIT}"
|
||||
|
||||
CONFIG += c++17
|
||||
|
||||
DEFINES+=APP_VERSION=\\\"$$VERSION\\\"
|
||||
DEFINES+=ATB_QT_VERSION=\\\"$${QT_VERSION}\\\"
|
||||
DEFINES+=APP_BUILD_DATE=\\\"$$BUILD_DATE\\\"
|
||||
DEFINES+=APP_BUILD_TIME=\\\"$$BUILD_TIME\\\"
|
||||
DEFINES+=APP_EXTENDED_VERSION=\\\"$$EXTENDED_VERSION\\\"
|
||||
|
||||
|
||||
# Default rules for deployment.
|
||||
#qnx: target.path = /tmp/$${TARGET}/bin
|
||||
#else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
@ -67,6 +83,7 @@ HEADERS += \
|
||||
include/interfaces.h \
|
||||
src/ATBAPP/VMCInterface.h \
|
||||
src/ATBAPP/ATBVMCPlugin.h \
|
||||
src/ATBAPP/ATBAPPplugin.h \
|
||||
src/ATBAPP/UnifiedDCVMCInterface.h \
|
||||
src/ATBAPP/support/VMC/com_interface.h \
|
||||
src/ATBAPP/support/VMC/ReceiveBuffer.h \
|
||||
@ -82,16 +99,5 @@ SOURCES += \
|
||||
src/ATBAPP/support/VMC/vmc.cpp \
|
||||
src/ATBAPP/support/VendingData.cpp
|
||||
|
||||
DISTFILES += \
|
||||
generate-version.sh
|
||||
|
||||
|
||||
# Define how to create version.h
|
||||
VERSION_H = $$PWD/include/version.h
|
||||
version.output = $$PWD/include/version.h
|
||||
version.commands = $$PWD/generate-version.sh $${ARCH} $${TARGET} $${INTERFACE} $${INTERFACE_DEFINITION} $${VERSION_H}
|
||||
version.depends = FORCE
|
||||
version.input = VERSION_H
|
||||
version.variable_out = HEADERS
|
||||
QMAKE_EXTRA_COMPILERS += version
|
||||
QMAKE_CLEAN += $${PWD}/include/version.h
|
||||
OTHER_FILES += \
|
||||
plugins/metadata.json
|
||||
|
1468
include/interfaces.h
1468
include/interfaces.h
File diff suppressed because it is too large
Load Diff
7
plugins/metadata.json
Normal file
7
plugins/metadata.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"type" : "hardware",
|
||||
"name" : "ATBVMCPlugin",
|
||||
"longname" : "VMC hardware control",
|
||||
"version" : "1.0.0",
|
||||
"dependencies" : []
|
||||
}
|
@ -7,11 +7,20 @@
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
class ATBAPPplugin {
|
||||
class ATBAPPplugin
|
||||
{
|
||||
|
||||
public:
|
||||
explicit ATBAPPplugin() = default;
|
||||
virtual ~ATBAPPplugin() = default;
|
||||
|
||||
virtual const QString & getPluginInfo() = 0;
|
||||
virtual void setPluginInfo(QString const &info) = 0;
|
||||
};
|
||||
|
||||
Q_DECLARE_INTERFACE(ATBAPPplugin, "eu.atb.ptu.plugin.ATBAPPplugin/0.9")
|
||||
Q_DECLARE_INTERFACE(ATBAPPplugin,
|
||||
"eu.atb.ptu.plugin.ATBAPPplugin/0.9")
|
||||
|
||||
|
||||
|
||||
#endif // ATBAPPPLUGIN_H
|
||||
|
@ -31,6 +31,13 @@ ATBVMCPlugin::~ATBVMCPlugin() {
|
||||
}
|
||||
}
|
||||
|
||||
QString const &ATBVMCPlugin::getPluginInfo() {
|
||||
return m_pluginInfo;
|
||||
}
|
||||
|
||||
void ATBVMCPlugin::setPluginInfo(QString const &info) {
|
||||
m_pluginInfo = info;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// interface:
|
||||
@ -38,45 +45,46 @@ PLUGIN_STATE ATBVMCPlugin::initVMCPlugin(QObject *appControl,
|
||||
QObject *atbSystem,
|
||||
QObject *hmiConfig,
|
||||
QSettings const &settings) {
|
||||
if (appControl && atbSystem && hmiConfig) {
|
||||
m_vmc = new VMC(appControl, &settings);
|
||||
|
||||
m_vmc = new VMC(appControl, &settings);
|
||||
// -------------------- connect vmc --------------------------------------------
|
||||
connect(m_vmc, SIGNAL(VMCFormatedString(FormatedStringList)), appControl, SLOT(onVMCFormatedString(FormatedStringList)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(displayData(quint8,QString)), appControl, SLOT(onVMCSellData(quint8,QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(retriggerModeSell()), appControl, SLOT(restartSellModeTimeoutTimer()), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setVendingData(QString,QByteArray)), appControl, SLOT(onSetVendingData(QString,QByteArray)), Qt::QueuedConnection);
|
||||
|
||||
// -------------------- connect vmc --------------------------------------------
|
||||
connect(m_vmc, SIGNAL(VMCFormatedString(FormatedStringList)), appControl, SLOT(onVMCFormatedString(FormatedStringList)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(displayData(quint8,QString)), appControl, SLOT(onVMCSellData(quint8,QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(retriggerModeSell()), appControl, SLOT(restartSellModeTimeoutTimer()), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setVendingData(QString,QByteArray)), appControl, SLOT(onSetVendingData(QString,QByteArray)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(sysCommand(quint16, QByteArray)), atbSystem, SLOT(executeSystemCommand(quint16, QByteArray)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(newDateTime(QString)), atbSystem, SLOT(setDateTime(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(wakeVMC()), atbSystem, SLOT(onWakeVMC()));
|
||||
|
||||
connect(m_vmc, SIGNAL(sysCommand(quint16, QByteArray)), atbSystem, SLOT(executeSystemCommand(quint16, QByteArray)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(newDateTime(QString)), atbSystem, SLOT(setDateTime(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(wakeVMC()), atbSystem, SLOT(onWakeVMC()));
|
||||
connect(m_vmc, SIGNAL(setCustNr(QString)), hmiConfig, SLOT(setCustNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setGroupNr(QString)), hmiConfig, SLOT(setGroupNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setZoneNr(QString)), hmiConfig, SLOT(setZoneNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setMachineNr(QString)), hmiConfig, SLOT(setMachineNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setDefaultLanguage(quint8)), hmiConfig, SLOT(setDefaultLanguage(quint8)), Qt::QueuedConnection);
|
||||
|
||||
connect(m_vmc, SIGNAL(setCustNr(QString)), hmiConfig, SLOT(setCustNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setGroupNr(QString)), hmiConfig, SLOT(setGroupNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setZoneNr(QString)), hmiConfig, SLOT(setZoneNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setMachineNr(QString)), hmiConfig, SLOT(setMachineNr(QString)), Qt::QueuedConnection);
|
||||
connect(m_vmc, SIGNAL(setDefaultLanguage(quint8)), hmiConfig, SLOT(setDefaultLanguage(quint8)), Qt::QueuedConnection);
|
||||
return PLUGIN_STATE::INITIALIZED;
|
||||
}
|
||||
|
||||
return PLUGIN_STATE::INITIALIZED;
|
||||
return PLUGIN_STATE::NOT_INITIALIZED;
|
||||
}
|
||||
|
||||
// mandantory ATBAPP plugin methods: ------------------------------------------
|
||||
PLUGIN_STATE ATBVMCPlugin::getState() {
|
||||
return PLUGIN_STATE::NOT_INITIALIZED;
|
||||
return m_pluginState;
|
||||
}
|
||||
|
||||
QString ATBVMCPlugin::getLastError() {
|
||||
return "";
|
||||
return m_errorCode;
|
||||
}
|
||||
|
||||
QString ATBVMCPlugin::getLastErrorDescription() {
|
||||
return "";
|
||||
return m_errorDescription;
|
||||
}
|
||||
|
||||
QString const &ATBVMCPlugin::getPluginInfo() {
|
||||
static QString info;
|
||||
return info;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
||||
// helpers e.g. for debug / log
|
||||
QString ATBVMCPlugin::getString(RESULT_STATE /*resultState*/) {
|
||||
@ -114,3 +122,9 @@ void ATBVMCPlugin::reboot() {
|
||||
void ATBVMCPlugin::reset() {
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if QT_VERSION < 0x050000
|
||||
Q_EXPORT_PLUGIN2(ATBVMCPlugin, ATBVMCPlugin)
|
||||
#endif
|
||||
|
@ -3,26 +3,30 @@
|
||||
|
||||
#include <QObject>
|
||||
#include <QSettings>
|
||||
#include <QtPlugin>
|
||||
|
||||
#include "src/ATBAPP/VMCInterface.h"
|
||||
#include "src/ATBAPP/ATBAPPplugin.h"
|
||||
#include "src/ATBAPP/VMCInterface.h"
|
||||
#include "src/ATBAPP/UnifiedDCVMCInterface.h"
|
||||
|
||||
#include "version.h"
|
||||
|
||||
#include "include/interfaces.h"
|
||||
#include "vmc.h"
|
||||
|
||||
class ATBVMCPlugin : public VMCInterface {
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(ATBAPPplugin)
|
||||
Q_INTERFACES(UnifiedDCVMCInterface)
|
||||
#if QT_VERSION >= 0x050000
|
||||
Q_PLUGIN_METADATA( IID "ATBVMCPlugin" )
|
||||
#endif
|
||||
|
||||
Q_INTERFACES(VMCInterface)
|
||||
|
||||
#if QT_VERSION >= 0x050000
|
||||
Q_PLUGIN_METADATA(IID "eu.atb.ptu.plugin.ATBVMCPlugin" FILE "plugins/metadata.json")
|
||||
#endif
|
||||
|
||||
public:
|
||||
explicit ATBVMCPlugin(QObject *parent = nullptr);
|
||||
~ATBVMCPlugin();
|
||||
virtual ~ATBVMCPlugin();
|
||||
|
||||
virtual const QString & getPluginInfo() override;
|
||||
virtual void setPluginInfo(QString const &info) override;
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// interface:
|
||||
@ -36,7 +40,7 @@ public:
|
||||
QString getLastError() override;
|
||||
QString getLastErrorDescription() override;
|
||||
|
||||
virtual const QString & getPluginInfo() override;
|
||||
#if 0
|
||||
|
||||
// helpers e.g. for debug / log
|
||||
virtual QString getString(RESULT_STATE resultState) override;
|
||||
@ -52,6 +56,8 @@ public slots:
|
||||
virtual void reboot() override;
|
||||
virtual void reset() override;
|
||||
|
||||
#endif
|
||||
|
||||
private:
|
||||
QString m_errorCode;
|
||||
QString m_errorDescription;
|
||||
|
@ -11,13 +11,8 @@
|
||||
|
||||
#include "ATBAPPplugin.h"
|
||||
|
||||
class ATBHMIconfig;
|
||||
class AppControl;
|
||||
class ATBSystem;
|
||||
|
||||
class UnifiedDCVMCInterface : public QObject, public ATBAPPplugin {
|
||||
|
||||
Q_OBJECT
|
||||
class UnifiedDCVMCInterface : public ATBAPPplugin {
|
||||
Q_INTERFACES(ATBAPPplugin)
|
||||
|
||||
public:
|
||||
@ -47,18 +42,26 @@ public:
|
||||
STOP_RECEIPT, // e.g. Szeged Stop
|
||||
};
|
||||
|
||||
explicit UnifiedDCVMCInterface(QObject *parent = nullptr) : QObject(parent) {}
|
||||
virtual ~UnifiedDCVMCInterface() {}
|
||||
explicit UnifiedDCVMCInterface() = default;
|
||||
virtual ~UnifiedDCVMCInterface() = default;
|
||||
|
||||
virtual const QString & getPluginInfo() = 0;
|
||||
|
||||
// mandantory ATBAPP plugin methods:
|
||||
virtual PLUGIN_STATE getState() = 0;
|
||||
virtual QString getLastError() = 0;
|
||||
virtual QString getLastErrorDescription() = 0;
|
||||
|
||||
virtual PLUGIN_STATE initPlugin(QObject *eventReceiver,
|
||||
QObject *atbSystem,
|
||||
QObject *hmiConfig,
|
||||
QSettings const &settings) = 0;
|
||||
|
||||
// mandantory ATBAPP plugin methods:
|
||||
virtual PLUGIN_STATE getState() = 0;
|
||||
virtual QString getLastError() = 0;
|
||||
virtual QString getLastErrorDescription() = 0;
|
||||
virtual PLUGIN_STATE initVMCPlugin(QObject *eventReceiver,
|
||||
QObject *atbSystem, QObject *hmiConfig,
|
||||
const QSettings & settings) = 0;
|
||||
|
||||
#if 0
|
||||
|
||||
virtual QString getString(RESULT_STATE resultState) = 0;
|
||||
|
||||
@ -136,7 +139,7 @@ signals:
|
||||
/* additional variables? */
|
||||
const QString & errorCode,
|
||||
const QString & errorDescription);
|
||||
|
||||
#endif
|
||||
};
|
||||
|
||||
Q_DECLARE_INTERFACE(UnifiedDCVMCInterface,
|
||||
|
@ -17,33 +17,113 @@ namespace nsVMCInterface {
|
||||
}
|
||||
|
||||
|
||||
class VMCInterface : public UnifiedDCVMCInterface {
|
||||
class VMCInterface : public QObject, public UnifiedDCVMCInterface {
|
||||
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(ATBAPPplugin)
|
||||
Q_INTERFACES(UnifiedDCVMCInterface)
|
||||
Q_INTERFACES(ATBAPPplugin UnifiedDCVMCInterface)
|
||||
|
||||
public:
|
||||
|
||||
explicit VMCInterface(QObject *parent = nullptr)
|
||||
: UnifiedDCVMCInterface(parent) {}
|
||||
explicit VMCInterface(QObject *parent = nullptr) : QObject(parent) {}
|
||||
virtual ~VMCInterface() = default;
|
||||
|
||||
virtual PLUGIN_STATE initPlugin(QObject *eventReceiver, QObject *atbSystem,
|
||||
QObject *hmiConfig, QSettings const &settings) override {
|
||||
return initVMCPlugin(eventReceiver, atbSystem, hmiConfig, settings);
|
||||
}
|
||||
|
||||
virtual ~VMCInterface() {}
|
||||
|
||||
/**
|
||||
* @brief initDCPlugin
|
||||
* @brief initVMCPlugin
|
||||
* @param eventReceiver - QObject to receive ATBMachineEvents or HealthEvents
|
||||
* @param settings
|
||||
* @return
|
||||
*/
|
||||
virtual PLUGIN_STATE initVMCPlugin(QObject *eventReceiver,
|
||||
QObject *atbSystem, QObject *hmiConfig,
|
||||
const QSettings & settings) = 0;
|
||||
QObject *atbSystem, QObject *hmiConfig,
|
||||
const QSettings & settings) = 0;
|
||||
|
||||
#if 0
|
||||
|
||||
virtual QString getString(RESULT_STATE resultState) = 0;
|
||||
|
||||
public slots:
|
||||
virtual void onChangedProgramModeToSELL() = 0;
|
||||
virtual void onChangedProgramModeToSERVICE() = 0;
|
||||
virtual void onChangedProgramModeToIDLE() = 0;
|
||||
virtual void onChangedProgramModeToOOO() = 0;
|
||||
|
||||
virtual void startPhysicalLayer() = 0;
|
||||
virtual void stopPhysicalLayer() = 0;
|
||||
virtual void reboot() = 0;
|
||||
virtual void reset() = 0;
|
||||
|
||||
signals:
|
||||
void printTicketFinished(RESULT_STATE resultState,
|
||||
const QString & errorCode,
|
||||
const QString & errorDescription);
|
||||
void printReceiptFinished(RESULT_STATE resultState,
|
||||
const QString & errorCode,
|
||||
const QString & errorDescription);
|
||||
|
||||
/**
|
||||
* emitted on e.g. a coin input
|
||||
*/
|
||||
void cashInputEvent(RESULT_STATE resultState,
|
||||
CASH_STATE cashState,
|
||||
const QString & newCashValue,
|
||||
/* additional variables? */
|
||||
const QString & errorCode,
|
||||
const QString & errorDescription);
|
||||
|
||||
/**
|
||||
* emitted if cashInput has been stopped, e.g. in result to task requestStopCashInput():
|
||||
* -> shutter is blocked
|
||||
* -> no cash input is possible
|
||||
* -> coins are in cache
|
||||
*/
|
||||
void cashInputFinished(RESULT_STATE resultState,
|
||||
const QString & newCashValue,
|
||||
/* additional variables? */
|
||||
const QString & errorCode,
|
||||
const QString & errorDescription);
|
||||
|
||||
|
||||
/**
|
||||
* emitted e.g. if service door is opened
|
||||
*/
|
||||
void requestModeSERVICE();
|
||||
|
||||
/**
|
||||
* emitted e.g. if doors are closed
|
||||
*/
|
||||
void requestModeIDLE();
|
||||
|
||||
/**
|
||||
* emitted e.g. on severe errors
|
||||
*/
|
||||
void requestModeOOO();
|
||||
|
||||
/**
|
||||
* emitted e.g. if service door is opened
|
||||
*/
|
||||
void requestAccountResponse(const QHash<QString, QVariant> & accountData);
|
||||
|
||||
/**
|
||||
* emitted on error
|
||||
* depending on errorCode:
|
||||
* -> interrupt selling process
|
||||
* -> machine can go to state OOO
|
||||
* -> send error event to ISMAS
|
||||
* -> ...
|
||||
*/
|
||||
void Error(
|
||||
/* additional variables? */
|
||||
const QString & errorCode,
|
||||
const QString & errorDescription);
|
||||
#endif
|
||||
};
|
||||
|
||||
Q_DECLARE_INTERFACE(VMCInterface,
|
||||
"eu.atb.ptu.plugin.VMCInterface/1.0")
|
||||
|
||||
#endif // VMCINTERFACE_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user