#include "dataloggingendpoint.h" #include "pebble.h" #include "watchconnection.h" #include "watchdatareader.h" #include "watchdatawriter.h" DataLoggingEndpoint::DataLoggingEndpoint(Pebble *pebble, WatchConnection *connection): QObject(pebble), m_pebble(pebble), m_connection(connection) { m_connection->registerEndpointHandler(WatchConnection::EndpointDataLogging, this, "handleMessage"); } void DataLoggingEndpoint::handleMessage(const QByteArray &data) { qDebug() << "data logged" << data.toHex(); WatchDataReader reader(data); DataLoggingCommand command = (DataLoggingCommand)reader.read(); switch (command) { case DataLoggingDespoolSendData: { quint8 sessionId = reader.read(); quint32 itemsLeft = reader.readLE(); quint32 crc = reader.readLE(); qDebug() << "Despooling data: Session:" << sessionId << "Items left:" << itemsLeft << "CRC:" << crc; QByteArray reply; WatchDataWriter writer(&reply); writer.write(DataLoggingACK); writer.write(sessionId); m_connection->writeToPebble(WatchConnection::EndpointDataLogging, reply); return; } case DataLoggingTimeout: { quint8 sessionId = reader.read(); qDebug() << "DataLogging reached timeout: Session:" << sessionId; return; } default: qDebug() << "Unhandled DataLogging message"; } }