diff --git a/src/ATBAPP/ATBDeviceControllerPlugin.cpp b/src/ATBAPP/ATBDeviceControllerPlugin.cpp index e4fd9f7..5aae273 100644 --- a/src/ATBAPP/ATBDeviceControllerPlugin.cpp +++ b/src/ATBAPP/ATBDeviceControllerPlugin.cpp @@ -213,6 +213,19 @@ void ATBDeviceControllerPlugin::cashAbort() this->currentCashState = CASH_STATE::CACHE_EMPTY; } +// Coin/Cash processing variants ---------------------------------------------- + +nsDeviceControllerInterface::COIN_PROCESSOR ATBDeviceControllerPlugin::coinProcessor() +{ + return this->diag->coinProcessorType; +} + +nsDeviceControllerInterface::BILL_ACCEPTOR ATBDeviceControllerPlugin::billAcceptor() +{ + return this->diag->billAcceptor; +} + + // TASKS: Account ------------------------------------------------------------- // for an external account request, e.g. by an ui-button: diff --git a/src/ATBAPP/ATBDeviceControllerPlugin.h b/src/ATBAPP/ATBDeviceControllerPlugin.h index 73f00e6..0d27a7f 100644 --- a/src/ATBAPP/ATBDeviceControllerPlugin.h +++ b/src/ATBAPP/ATBDeviceControllerPlugin.h @@ -48,6 +48,10 @@ public: void cashCollect(); void cashAbort(); + // read coin/cash processing variants ----------------------------------------- + nsDeviceControllerInterface::COIN_PROCESSOR coinProcessor(); + nsDeviceControllerInterface::BILL_ACCEPTOR billAcceptor(); + // TASKS: printing ------------------------------------------------------------ void requestPrintTicket(const QHash & printingData); void requestPrintTicket(nsDeviceControllerInterface::TICKET_VARIANT ticketVariant, const QHash & printingData); diff --git a/src/ATBAPP/DeviceControllerDiag.cpp b/src/ATBAPP/DeviceControllerDiag.cpp index 7cb6021..e74775d 100644 --- a/src/ATBAPP/DeviceControllerDiag.cpp +++ b/src/ATBAPP/DeviceControllerDiag.cpp @@ -7,6 +7,8 @@ DeviceControllerDiag::DeviceControllerDiag(QObject *parent) : QObject(parent) + , coinProcessorType(nsDeviceControllerInterface::COIN_PROCESSOR::ESCROW) + , billAcceptor(nsDeviceControllerInterface::BILL_ACCEPTOR::NO) , eventReceiver(nullptr) , isRequestRunning(false) , flagInterruptDiag(false) @@ -210,6 +212,16 @@ void DeviceControllerDiag::sub_componentAssessment() } // ----------------------------------------------------------------------------------------------- + switch (devPara.kindOfCoinChecker) { + case 1: + case 2: + this->coinProcessorType = nsDeviceControllerInterface::COIN_PROCESSOR::ESCROW; + break; + case 3: + this->coinProcessorType = nsDeviceControllerInterface::COIN_PROCESSOR::CHANGER; + break; + } + if (devPara.kindOfCoinChecker==1 || devPara.kindOfCoinChecker==2) // 0: without 1=EMP820 2=EMP900 3=currenza c² (MW) { if (modCond.coinEscrow>=200) { @@ -242,6 +254,15 @@ void DeviceControllerDiag::sub_componentAssessment() } } + switch (devPara.BillAcceptor) { + case 0: + this->billAcceptor = nsDeviceControllerInterface::BILL_ACCEPTOR::NO; + break; + default: + this->billAcceptor = nsDeviceControllerInterface::BILL_ACCEPTOR::YES; + break; + } + /* if ( modCond.billReader>=200 && devPara.BillAcceptor>0) { diff --git a/src/ATBAPP/DeviceControllerDiag.h b/src/ATBAPP/DeviceControllerDiag.h index e3119ee..cf9ad69 100644 --- a/src/ATBAPP/DeviceControllerDiag.h +++ b/src/ATBAPP/DeviceControllerDiag.h @@ -7,6 +7,8 @@ #include "ATBMachineEvent.h" #include "interfaces.h" +#include "DeviceControllerInterface.h" + namespace DeviceController { Q_NAMESPACE @@ -62,6 +64,9 @@ public: void init(hwinf* hw, QObject* eventReceiver); + nsDeviceControllerInterface::COIN_PROCESSOR coinProcessorType; + nsDeviceControllerInterface::BILL_ACCEPTOR billAcceptor; + public slots: void diagRequest(); @@ -85,6 +90,8 @@ private: QSet machineEventSet; + + private slots: void onDiagRequestTimeoutTimerTimeout(); diff --git a/src/ATBAPP/DeviceControllerInterface.h b/src/ATBAPP/DeviceControllerInterface.h index 24925e6..61e1318 100644 --- a/src/ATBAPP/DeviceControllerInterface.h +++ b/src/ATBAPP/DeviceControllerInterface.h @@ -13,6 +13,8 @@ namespace nsDeviceControllerInterface { enum class RESULT_STATE : quint8; enum class CASH_STATE : quint8; enum class TICKET_VARIANT : quint8; + enum class COIN_PROCESSOR : quint8; + enum class BILL_ACCEPTOR : quint8; } @@ -64,6 +66,10 @@ public: virtual void requestPrintReceipt(const QHash & printingData) = 0; virtual void requestPrintReceipt(const QString & printingString) = 0; + // read coin/cash processing variants + virtual nsDeviceControllerInterface::COIN_PROCESSOR coinProcessor() = 0; + virtual nsDeviceControllerInterface::BILL_ACCEPTOR billAcceptor() = 0; + // mandantory ATBAPP plugin methods: virtual nsDeviceControllerInterface::PLUGIN_STATE getState() = 0; virtual const QString & getLastError() = 0; @@ -159,7 +165,7 @@ signals: Q_DECLARE_INTERFACE(DeviceControllerInterface, - "eu.atb.ptu.plugin.DeviceControllerInterface/1.0") + "eu.atb.ptu.plugin.DeviceControllerInterface/1.0.1") namespace nsDeviceControllerInterface { @@ -194,6 +200,15 @@ namespace nsDeviceControllerInterface { STOP_RECEIPT, // e.g. Szeged Stop }; + enum class COIN_PROCESSOR : quint8 { + CHANGER, + ESCROW + }; + + enum class BILL_ACCEPTOR : quint8 { + YES, + NO + }; } #endif // DEVICECONTROLLERINTERFACE_H