7 , _device(config->device())
8 , _serviceUuid(QBluetoothUuid(config->serviceUuid()))
9 , _readCharacteristicUuid(config->readCharacteristicUuid())
10 , _writeCharacteristicUuid(config->writeCharacteristicUuid())
11 , _reconnectTimer(new QTimer(this))
12 , _serviceDiscoveryTimer(new QTimer(this))
14 qCDebug(BluetoothLinkLog) <<
this;
32 QObject::disconnect();
41 qCDebug(BluetoothLinkLog) <<
this;
51 if (config->mode() == BluetoothConfiguration::BluetoothMode::ModeLowEnergy) {
67 qCWarning(BluetoothLinkLog) <<
"Already connected to" <<
_device.name();
93 qCWarning(BluetoothLinkLog) <<
"Write called with empty data";
112 qCWarning(BluetoothLinkLog) <<
"Max reconnection attempts (" <<
MAX_RECONNECT_ATTEMPTS <<
") reached. Giving up.";
static constexpr int MAX_RECONNECT_INTERVAL_MS
virtual void onSetupConnection()=0
void writeData(const QByteArray &data)
QPointer< QTimer > _serviceDiscoveryTimer
void errorOccurred(const QString &errorString)
virtual void onWriteData(const QByteArray &data)=0
static constexpr int MAX_CONSECUTIVE_FAILURES
virtual void onResetAfterConsecutiveFailures()=0
virtual void onConnectLink()=0
static constexpr int MAX_RECONNECT_ATTEMPTS
QPointer< QTimer > _reconnectTimer
void _serviceDiscoveryTimeout()
virtual void onServiceDiscoveryTimeout()=0
std::atomic< int > _reconnectAttempts
static BluetoothWorker * create(const BluetoothConfiguration *config, QObject *parent=nullptr)
std::atomic< bool > _connected
const QBluetoothDeviceInfo _device
~BluetoothWorker() override
virtual void onDisconnectLink()=0
std::atomic< bool > _intentionalDisconnect
static constexpr int RECONNECT_BASE_INTERVAL_MS
BluetoothWorker(const BluetoothConfiguration *config, QObject *parent=nullptr)
static constexpr int SERVICE_DISCOVERY_TIMEOUT_MS