summaryrefslogtreecommitdiff
path: root/daemon/watchconnector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/watchconnector.cpp')
-rw-r--r--daemon/watchconnector.cpp78
1 files changed, 37 insertions, 41 deletions
diff --git a/daemon/watchconnector.cpp b/daemon/watchconnector.cpp
index 27a5511..ef032f7 100644
--- a/daemon/watchconnector.cpp
+++ b/daemon/watchconnector.cpp
@@ -8,7 +8,7 @@ static const int RECONNECT_TIMEOUT = 500; //ms
static const bool PROTOCOL_DEBUG = false;
WatchConnector::WatchConnector(QObject *parent) :
- QObject(parent), socket(nullptr), is_connected(false)
+ QObject(parent), l(metaObject()->className()), socket(nullptr), is_connected(false)
{
reconnectTimer.setSingleShot(true);
connect(&reconnectTimer, SIGNAL(timeout()), SLOT(reconnect()));
@@ -38,18 +38,18 @@ WatchConnector::WatchConnector(QObject *parent) :
QByteArray address = u.readBytes(6);
if (u.bad()) {
- logger()->warn() << "short read while reading firmware version";
+ qCWarning(l) << "short read while reading firmware version";
}
- logger()->debug() << "got version information"
- << version << version_string << commit
- << is_recovery << hw_platform << metadata_version;
- logger()->debug() << "recovery version information"
- << safe_version << safe_version_string << safe_commit
- << safe_is_recovery << safe_hw_platform << safe_metadata_version;
- logger()->debug() << "hardware information" << bootLoaderTimestamp << hardwareRevision;
- logger()->debug() << "serial number" << serialNumber.left(3) << "...";
- logger()->debug() << "bt address" << address.toHex();
+ qCDebug(l) << "got version information"
+ << version << version_string << commit
+ << is_recovery << hw_platform << metadata_version;
+ qCDebug(l) << "recovery version information"
+ << safe_version << safe_version_string << safe_commit
+ << safe_is_recovery << safe_hw_platform << safe_metadata_version;
+ qCDebug(l) << "hardware information" << bootLoaderTimestamp << hardwareRevision;
+ qCDebug(l) << "serial number" << serialNumber.left(3) << "...";
+ qCDebug(l) << "bt address" << address.toHex();
this->_serialNumber = serialNumber;
@@ -65,10 +65,10 @@ void WatchConnector::deviceDiscovered(const QBluetoothDeviceInfo &device)
{
//FIXME TODO: Configurable
if (device.name().startsWith("Pebble")) {
- logger()->debug() << "Found Pebble:" << device.name() << '(' << device.address().toString() << ')';
+ qCDebug(l) << "Found Pebble:" << device.name() << '(' << device.address().toString() << ')';
handleWatch(device.name(), device.address().toString());
} else {
- logger()->debug() << "Found other device:" << device.name() << '(' << device.address().toString() << ')';
+ qCDebug(l) << "Found other device:" << device.name() << '(' << device.address().toString() << ')';
}
}
@@ -79,7 +79,7 @@ void WatchConnector::deviceConnect(const QString &name, const QString &address)
void WatchConnector::reconnect()
{
- logger()->debug() << "reconnect" << _last_name;
+ qCDebug(l) << "reconnect" << _last_name;
if (!_last_name.isEmpty() && !_last_address.isEmpty()) {
deviceConnect(_last_name, _last_address);
}
@@ -87,16 +87,16 @@ void WatchConnector::reconnect()
void WatchConnector::disconnect()
{
- logger()->debug() << "disconnecting";
+ qCDebug(l) << "disconnecting";
socket->close();
socket->deleteLater();
reconnectTimer.stop();
- logger()->debug() << "stopped reconnect timer";
+ qCDebug(l) << "stopped reconnect timer";
}
void WatchConnector::handleWatch(const QString &name, const QString &address)
{
- logger()->debug() << "handleWatch" << name << address;
+ qCDebug(l) << "handleWatch" << name << address;
reconnectTimer.stop();
if (socket != nullptr && socket->isOpen()) {
socket->close();
@@ -113,12 +113,8 @@ void WatchConnector::handleWatch(const QString &name, const QString &address)
_serialNumber.clear();
}
- logger()->debug() << "Creating socket";
-#if QT_VERSION < QT_VERSION_CHECK(5, 2, 0)
- socket = new QBluetoothSocket(QBluetoothSocket::RfcommSocket);
-#else
+ qCDebug(l) << "Creating socket";
socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
-#endif
connect(socket, SIGNAL(readyRead()), SLOT(onReadSocket()));
connect(socket, SIGNAL(bytesWritten(qint64)), SLOT(onBytesWritten(qint64)));
connect(socket, SIGNAL(connected()), SLOT(onConnected()));
@@ -181,8 +177,8 @@ bool WatchConnector::dispatchMessage(uint endpoint, const QByteArray &data)
}
}
- logger()->info() << "message to endpoint" << decodeEndpoint(endpoint) << "was not dispatched";
- logger()->debug() << data.toHex();
+ qCDebug(l) << "message to endpoint" << decodeEndpoint(endpoint) << "was not dispatched";
+ qCDebug(l) << data.toHex();
return false;
}
@@ -190,7 +186,7 @@ void WatchConnector::onReadSocket()
{
static const int header_length = 4;
- logger()->debug() << "readyRead bytesAvailable =" << socket->bytesAvailable();
+ qCDebug(l) << "readyRead bytesAvailable =" << socket->bytesAvailable();
QBluetoothSocket *socket = qobject_cast<QBluetoothSocket *>(sender());
Q_ASSERT(socket && socket == this->socket);
@@ -207,19 +203,19 @@ void WatchConnector::onReadSocket()
// Sanity checks on the message_length
if (message_length == 0) {
- logger()->warn() << "received empty message";
+ qCWarning(l) << "received empty message";
socket->read(header_length); // skip this header
continue; // check if there are additional headers.
} else if (message_length > 8 * 1024) {
// Protocol does not allow messages more than 8K long, seemingly.
- logger()->warn() << "received message size too long: " << message_length;
+ qCWarning(l) << "received message size too long: " << message_length;
socket->readAll(); // drop entire input buffer
return;
}
// Now wait for the entire message
if (socket->bytesAvailable() < header_length + message_length) {
- logger()->debug() << "incomplete msg body in read buffer";
+ qCDebug(l) << "incomplete msg body in read buffer";
return; // try again once more data comes in
}
@@ -230,8 +226,8 @@ void WatchConnector::onReadSocket()
// Now read the rest of the message
QByteArray data = socket->read(message_length);
- logger()->debug() << "received message of length" << message_length << "to endpoint" << decodeEndpoint(endpoint);
- if (PROTOCOL_DEBUG) logger()->trace() << data.toHex();
+ qCDebug(l) << "received message of length" << message_length << "to endpoint" << decodeEndpoint(endpoint);
+ if (PROTOCOL_DEBUG) qCDebug(l) << data.toHex();
dispatchMessage(endpoint, data);
}
@@ -239,14 +235,14 @@ void WatchConnector::onReadSocket()
void WatchConnector::onConnected()
{
- logger()->debug() << "Connected!";
+ qCDebug(l) << "Connected!";
bool was_connected = is_connected;
is_connected = true;
reconnectTimer.stop();
reconnectTimer.setInterval(0);
if (!was_connected) {
if (!writeData.isEmpty()) {
- logger()->info() << "Found" << writeData.length() << "bytes in write buffer - resending";
+ qCDebug(l) << "Found" << writeData.length() << "bytes in write buffer - resending";
sendData(writeData);
}
if (_serialNumber.isEmpty()) {
@@ -259,7 +255,7 @@ void WatchConnector::onConnected()
void WatchConnector::onDisconnected()
{
- logger()->debug() << "Disconnected!";
+ qCDebug(l) << "Disconnected!";
bool was_connected = is_connected;
is_connected = false;
@@ -279,15 +275,15 @@ void WatchConnector::onDisconnected()
reconnectTimer.setInterval(reconnectTimer.interval() + RECONNECT_TIMEOUT);
}
reconnectTimer.start();
- logger()->debug() << "will reconnect in" << reconnectTimer.interval() << "ms";
+ qCDebug(l) << "will reconnect in" << reconnectTimer.interval() << "ms";
}
void WatchConnector::onError(QBluetoothSocket::SocketError error)
{
if (error == QBluetoothSocket::UnknownSocketError) {
- logger()->info() << error << socket->errorString();
+ qCDebug(l) << error << socket->errorString();
} else {
- logger()->error() << "error connecting Pebble:" << error << socket->errorString();
+ qCCritical(l) << "error connecting Pebble:" << error << socket->errorString();
}
}
@@ -295,11 +291,11 @@ void WatchConnector::sendData(const QByteArray &data)
{
writeData.append(data);
if (socket == nullptr) {
- logger()->debug() << "no socket - reconnecting";
+ qCDebug(l) << "no socket - reconnecting";
reconnect();
} else if (is_connected) {
- logger()->debug() << "writing" << data.length() << "bytes to socket";
- if (PROTOCOL_DEBUG) logger()->trace() << data.toHex();
+ qCDebug(l) << "writing" << data.length() << "bytes to socket";
+ if (PROTOCOL_DEBUG) qCDebug(l) << data.toHex();
socket->write(data);
}
}
@@ -307,12 +303,12 @@ void WatchConnector::sendData(const QByteArray &data)
void WatchConnector::onBytesWritten(qint64 bytes)
{
writeData.remove(0, bytes);
- logger()->debug() << "socket written" << bytes << "bytes," << writeData.length() << "left";
+ qCDebug(l) << "socket written" << bytes << "bytes," << writeData.length() << "left";
}
void WatchConnector::sendMessage(uint endpoint, const QByteArray &data, const EndpointHandlerFunc &callback)
{
- logger()->debug() << "sending message to endpoint" << decodeEndpoint(endpoint);
+ qCDebug(l) << "sending message to endpoint" << decodeEndpoint(endpoint);
QByteArray msg;
// First send the length