diff --git a/src/ATBAPP/ATBDeviceControllerPlugin.cpp b/src/ATBAPP/ATBDeviceControllerPlugin.cpp index 9d5d411..7e649d4 100644 --- a/src/ATBAPP/ATBDeviceControllerPlugin.cpp +++ b/src/ATBAPP/ATBDeviceControllerPlugin.cpp @@ -30,6 +30,14 @@ ATBDeviceControllerPlugin::ATBDeviceControllerPlugin(QObject *parent) : QObject( connect(dynamic_cast(hw), SIGNAL(hwapi_payStopByError()), this, SLOT(onCashPayStopByError())); connect(dynamic_cast(hw), SIGNAL(hwapi_payStopByTimeout()), this, SLOT(onCashPayStopByTimeout())); + connect(dynamic_cast(hw), SIGNAL(hwapi_doorServiceDoorOpened()), this, SLOT(onServiceDoorOpened())); // switch to ModeSERVICE + connect(dynamic_cast(hw), SIGNAL(hwapi_doorVaultDoorOpened()), this, SLOT(onVaultDoorOpened())); // Screen?? with message + connect(dynamic_cast(hw), SIGNAL(hwapi_doorCoinBoxRemoved()), this, SLOT(onCoinBoxRemoved())); // Create/Send Account + connect(dynamic_cast(hw), SIGNAL(hwapi_doorCoinBoxInserted()), this, SLOT(onCoinBoxInserted())); + //connect(dynamic_cast(hw), SIGNAL(hwapi_doorCBinAndAllDoorsClosed()), this, SLOT( ??? ))); + connect(dynamic_cast(hw), SIGNAL(hwapi_doorAllDoorsClosed()), this, SLOT(onAllDoorsClosed())); // check for errors, switch to mode IDLE + + this->currentSelectedTicketType = 0; } @@ -65,22 +73,19 @@ PLUGIN_STATE ATBDeviceControllerPlugin::initDCPlugin(QObject *healthEventReceive void ATBDeviceControllerPlugin::onChangedProgramModeToSELL() { hw->dc_autoRequest(true); - } -void ATBDeviceControllerPlugin::changedProgramModeToSERVICE() +void ATBDeviceControllerPlugin::onChangedProgramModeToSERVICE() { hw->dc_autoRequest(true); - } -void ATBDeviceControllerPlugin::changedProgramModeToIDLE() +void ATBDeviceControllerPlugin::onChangedProgramModeToIDLE() { hw->dc_autoRequest(false); - } -void ATBDeviceControllerPlugin::changedProgramModeToOOO() +void ATBDeviceControllerPlugin::onChangedProgramModeToOOO() { } @@ -117,12 +122,57 @@ void ATBDeviceControllerPlugin::cashAbort() } // TASKS: Account ------------------------------------------------------------- + +// for an external account request, e.g. by an ui-button: void ATBDeviceControllerPlugin::requestAccount() { qCritical() << "TODO: implement ATBDeviceControllerPlugin::requestAccount()"; } +// Door Events / Hardware contacts -------------------------------------------- +void ATBDeviceControllerPlugin::onServiceDoorOpened() +{ + qCritical() << "ATBDeviceControllerPlugin::onServiceDoorOpened()"; + + // switch to mode service + emit this->requestModeSERVICE(); + + // TODO: + // - create an HealthEvent (-> ISMAS-Event) +} + +void ATBDeviceControllerPlugin::onVaultDoorOpened() +{ + // TODO: + // - show special screen / message on screen + // - create an HealthEvent (-> ISMAS-Event) + qCritical() << "TODO: implement ATBDeviceControllerPlugin::onVaultDoorOpened()"; +} + +void ATBDeviceControllerPlugin::onCoinBoxRemoved() +{ + // TODO: + // - create and send account (-> requestAccountResponse()) + qCritical() << "TODO: implement ATBDeviceControllerPlugin::onCoinBoxRemoved()"; +} + +void ATBDeviceControllerPlugin::onCoinBoxInserted() +{ + qCritical() << "TODO: implement ATBDeviceControllerPlugin::onCoinBoxInserted()"; +} + +void ATBDeviceControllerPlugin::onAllDoorsClosed() +{ + // TODO: + // - check for errors, switch to mode IDLE + + qCritical() << "TODO: implement ATBDeviceControllerPlugin::onAllDoorsClosed()"; + + emit this->requestModeIDLE(); +} + + // TASKS: printing ------------------------------------------------------------ void ATBDeviceControllerPlugin::requestPrintTicket(const QHash & printingData) { diff --git a/src/ATBAPP/ATBDeviceControllerPlugin.h b/src/ATBAPP/ATBDeviceControllerPlugin.h index 14aca65..6e52be7 100644 --- a/src/ATBAPP/ATBDeviceControllerPlugin.h +++ b/src/ATBAPP/ATBDeviceControllerPlugin.h @@ -65,10 +65,10 @@ public: const QString getString(nsDeviceControllerInterface::RESULT_STATE resultState);; public slots: - virtual void onChangedProgramModeToSELL(); - virtual void changedProgramModeToSERVICE(); - virtual void changedProgramModeToIDLE(); - virtual void changedProgramModeToOOO(); + void onChangedProgramModeToSELL(); + void onChangedProgramModeToSERVICE(); + void onChangedProgramModeToIDLE(); + void onChangedProgramModeToOOO(); @@ -90,11 +90,14 @@ signals: const QString & errorCode, const QString & errorDescription); - void requestServiceMode(); + void requestModeSERVICE(); + void requestModeIDLE(); + void requestModeOOO(); void requestAccountResponse(const QHash & accountData); + void Error( const QString & errorCode, const QString & errorDescription); @@ -140,6 +143,13 @@ private slots: void onCashPayStopByEscrow(); void onCashPayStopByError(); void onCashPayStopByTimeout(); + + // doors and hardware contacts + void onServiceDoorOpened(); + void onVaultDoorOpened(); + void onCoinBoxRemoved(); + void onCoinBoxInserted(); + void onAllDoorsClosed(); }; #endif // ATBDEVICECONTROLLERPLUGIN_H