diff options
Diffstat (limited to 'daemon/datalogmanager.cpp')
| -rw-r--r-- | daemon/datalogmanager.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/daemon/datalogmanager.cpp b/daemon/datalogmanager.cpp new file mode 100644 index 0000000..c3562ef --- /dev/null +++ b/daemon/datalogmanager.cpp @@ -0,0 +1,42 @@ +#include "datalogmanager.h" +#include "unpacker.h" + +DataLogManager::DataLogManager(WatchConnector *watch, QObject *parent) : + QObject(parent), l(metaObject()->className()), watch(watch) +{ + watch->setEndpointHandler(WatchConnector::watchDATA_LOGGING, [this](const QByteArray& data) { + if (data.size() < 2) { + qCWarning(l) << "small data_logging packet"; + return false; + } + + const char command = data[0]; + const int session = data[1]; + + switch (command) { + case WatchConnector::datalogOPEN: + qCDebug(l) << "open datalog session" << session; + return true; + case WatchConnector::datalogCLOSE: + qCDebug(l) << "close datalog session" << session; + return true; + case WatchConnector::datalogTIMEOUT: + qCDebug(l) << "timeout datalog session" << session; + return true; + case WatchConnector::datalogDATA: + handleDataCommand(session, data.mid(2)); + return true; + default: + return false; + } + }); +} + +void DataLogManager::handleDataCommand(int session, const QByteArray &data) +{ + Unpacker u(data); + + // TODO Seemingly related to analytics, so not important. + + qCDebug(l) << "got datalog data" << session << data.size(); +} |
