diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2015-05-13 14:10:43 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2015-05-13 14:10:43 +0200 |
| commit | 67670934bef4ac7f41e6bc336f0ad9516fe2b28d (patch) | |
| tree | 521a74d281dc76d16db2b7edc780e2bcee3a3fb3 | |
| parent | d966f3ae2e91915a376af70dd2a9a2c93390be58 (diff) | |
Auto-synchronize time
Sync on connect, then every four hours while connected.
| -rw-r--r-- | daemon/watchconnector.cpp | 7 | ||||
| -rw-r--r-- | daemon/watchconnector.h | 1 |
2 files changed, 8 insertions, 0 deletions
diff --git a/daemon/watchconnector.cpp b/daemon/watchconnector.cpp index a4bfb64..04e9ceb 100644 --- a/daemon/watchconnector.cpp +++ b/daemon/watchconnector.cpp @@ -68,6 +68,9 @@ WatchConnector::WatchConnector(QObject *parent) : { reconnectTimer.setSingleShot(true); connect(&reconnectTimer, SIGNAL(timeout()), SLOT(reconnect())); + timeSyncTimer.setSingleShot(true); + connect(&timeSyncTimer, SIGNAL(timeout()), SLOT(time())); + timeSyncTimer.setInterval(14400000); firmwareMapping.insert(UNKNOWN, "unknown"); firmwareMapping.insert(PEBBLE_ONE_EV1, "ev1"); @@ -151,6 +154,7 @@ void WatchConnector::disconnect() socket->close(); socket->deleteLater(); reconnectTimer.stop(); + timeSyncTimer.stop(); qCDebug(l) << "stopped reconnect timer"; } @@ -312,6 +316,7 @@ void WatchConnector::onConnected() sendMessage(watchVERSION, QByteArray(1, 0)); emit connectedChanged(); if (name() != _last_name) emit nameChanged(); + time(); } } @@ -476,6 +481,7 @@ void WatchConnector::ping(uint cookie) void WatchConnector::time() { + timeSyncTimer.stop(); QByteArray res; QDateTime UTC(QDateTime::currentDateTimeUtc()); QDateTime local(UTC.toLocalTime()); @@ -489,6 +495,7 @@ void WatchConnector::time() res.append((char)((val >> 8) & 0xff)); res.append((char)(val & 0xff)); sendMessage(watchTIME, res); + timeSyncTimer.start(); } QString WatchConnector::timeStamp() diff --git a/daemon/watchconnector.h b/daemon/watchconnector.h index 4e6ed5d..f9576a3 100644 --- a/daemon/watchconnector.h +++ b/daemon/watchconnector.h @@ -261,6 +261,7 @@ private: bool is_connected; QByteArray writeData; QTimer reconnectTimer; + QTimer timeSyncTimer; QString _last_name; QString _last_address; WatchVersions _versions; |
