#ifndef ATBDEVICECONTROLLERPLUGIN_H #define ATBDEVICECONTROLLERPLUGIN_H #include #include "src/ATBAPP/DeviceControllerInterface.h" #include "src/ATBAPP/ATBAPPplugin.h" #include "src/ATBAPP/DeviceControllerDiag.h" #include "version.h" #include "interfaces.h" #include class DBusControllerInterface; class QTextCodec; using namespace nsDeviceControllerInterface; class QSettings; class ATBDeviceControllerPlugin : public DeviceControllerInterface { Q_OBJECT Q_INTERFACES(ATBAPPplugin) Q_INTERFACES(DeviceControllerInterface) #if QT_VERSION >= 0x050000 Q_PLUGIN_METADATA( IID "ATBDeviceControllerPlugin" ) #endif public: explicit ATBDeviceControllerPlugin(QObject *parent = nullptr); ~ATBDeviceControllerPlugin(); // ---------------------------------------------------------------------------- // interface: PLUGIN_STATE initDCPlugin(QObject *eventReceiver, const QSettings & settings); // TASKS: Cash handling ------------------------------------------------------- void requestStartCashInput(const QString & amount); void requestStopCashInput(); void cashCollect(); void cashAbort(); // TASKS: printing ------------------------------------------------------------ void requestPrintTicket(const QHash & printingData); void requestPrintTicket(nsDeviceControllerInterface::TICKET_VARIANT ticketVariant, const QHash & printingData); void requestPrintReceipt(const QHash & printingData); // TASKS: Account ------------------------------------------------------------- void requestAccount(); // mandantory ATBAPP plugin methods: ------------------------------------------ nsDeviceControllerInterface::PLUGIN_STATE getState(); QString & getLastError(); const QString & getLastErrorDescription(); const QString & getPluginInfo(); // helpers e.g. for debug / log const QString getString(nsDeviceControllerInterface::RESULT_STATE resultState);; public slots: void onChangedProgramModeToSELL(); void onChangedProgramModeToSERVICE(); void onChangedProgramModeToIDLE(); void onChangedProgramModeToOOO(); void startPhysicalLayer(); void stopPhysicalLayer(); void reboot(); void reset(); signals: // public Signals are defined in interface private: QString errorCode; QString errorDescription; QString pluginInfo; QList templateList; QString serialPortName; bool useDebug; PLUGIN_STATE pluginState; QObject* eventReceiver; DBusControllerInterface* dbus; hwinf* hw; DeviceControllerDiag* diag; QTextCodec *codec; bool private_loadCashAgentLib(QString pluginName); quint8 currentSelectedTicketType; nsDeviceControllerInterface::CASH_STATE currentCashState; // counts failed hw->log_chkIfVaultRecordAvailable() int accountCheckCounter; // dbus int init_sc_dbus(); private slots: // printer void onPrinterDataPrepared(); void onPrinterDataPreparedForTemplates(); void onPrinterPrintNextTemplate(); void onPrinterWaitForPrinting(); void onPrintFinishedOK(); void onPrintFinishedERR(); // cash payment void onCashGotCoin(); void onCashPayStopedSuccess(); void onCashPayStopByMax(); void onCashPayStopByEscrow(); void onCashPayStopByError(); void onCashPayStopByTimeout(); // doors and hardware contacts void onServiceDoorOpened(); void onVaultDoorOpened(); void onCoinBoxRemoved(); void onCoinBoxInserted(); void onAllDoorsClosed(); void onCBinAndAllDoorsClosed(); // account handling void private_startAccount(); void private_checkAccountData(); void private_getAccountData(); // measurement values void onNewVoltage(uint32_t voltage); void onWokeUp(uchar source); }; #endif // ATBDEVICECONTROLLERPLUGIN_H