Add atomic<bool> variable m_coinAttached to check for state change:

send signal runProc_coinAttached only if state changes from false true.
This commit is contained in:
Gerhard Hoffmann 2024-02-21 10:39:03 +01:00
parent 790c2fd031
commit aa10d3b275
2 changed files with 11 additions and 2 deletions

View File

@ -15,6 +15,7 @@
#include <QDebug>
#include "datIf.h"
#include <QSharedMemory>
#include <atomic>
#include "sendWRcmd.h"
#include "controlBus.h"
#include "storeINdata.h"
@ -35,6 +36,10 @@ class T_runProc : public QObject
void restoreDeviceParameter(struct T_devices *deviceSettings);
#ifndef THIS_IS_CA_MASTER
std::atomic_bool m_coinAttached{false};
#endif
private slots:
void runProc_slotProcess(void);
bool bl_performComplStart(void);

View File

@ -48,8 +48,12 @@ T_runProc::T_runProc()
void T_runProc::runProc_slotProcess(void)
{
#ifndef THIS_IS_CA_MASTER
if (epi_getDI_CoinAttach()) {
emit runProc_coinAttached();
bool const coinAttached = epi_getDI_CoinAttach();
if (m_coinAttached.exchange(coinAttached) == false) {
if (coinAttached) {
// old value was false, and new value is true
emit runProc_coinAttached();
}
}
cash_paymentProcessing();
doors_supervise();