diff options
Diffstat (limited to 'saltoqd/toqconnection.cpp')
-rw-r--r-- | saltoqd/toqconnection.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/saltoqd/toqconnection.cpp b/saltoqd/toqconnection.cpp index 9468aa8..92d3353 100644 --- a/saltoqd/toqconnection.cpp +++ b/saltoqd/toqconnection.cpp @@ -7,9 +7,9 @@ static const int HEADER_LENGTH = 10; -ToqConnection::ToqConnection(const QBluetoothAddress &address, QObject *parent) : +ToqConnection::ToqConnection(QObject *parent) : QObject(parent), - _address(address), _socket(0), + _socket(0), _reconnectTimer(new QTimer(this)), _lastTransactionId(0) { @@ -18,7 +18,6 @@ ToqConnection::ToqConnection(const QBluetoothAddress &address, QObject *parent) _reconnectTimer->setSingleShot(true); _reconnectTimer->setInterval(1000); - _reconnectTimer->start(); } QString ToqConnection::nameOfEndpoint(Endpoint ep) @@ -51,6 +50,19 @@ quint32 ToqConnection::checksum(QIODevice *dev) return crc; } +void ToqConnection::setAddress(const QBluetoothAddress &address) +{ + qDebug() << address.toString() << _address.toString(); + if (address != _address) { + _address = address; + if (isConnected()) { + _socket->disconnectFromService(); + } else { + _reconnectTimer->start(); + } + } +} + quint16 ToqConnection::newTransactionId() { if (_lastTransactionId >= 0xFFFA) { |