summaryrefslogtreecommitdiff
path: root/saltoqd/toqconnection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saltoqd/toqconnection.cpp')
-rw-r--r--saltoqd/toqconnection.cpp18
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) {