From 26d3469c837af08e48c8ae7c0c03c312bcc8b4a9 Mon Sep 17 00:00:00 2001 From: Martin Bauer Date: Sun, 6 Jun 2021 10:49:09 +0200 Subject: [PATCH] [WIP] New splitted up websocket API --- firmware/src/MessageCodes.h | 24 ++++ firmware/src/SessionAPI.h | 169 ++++++++++++++++++++++++ firmware/src/WifiAPI.cpp | 46 +++++++ firmware/src/WifiAPI.h | 34 +++++ hardware/case/swim_tracker_case_2.FCStd | Bin 0 -> 78103 bytes 5 files changed, 273 insertions(+) create mode 100644 firmware/src/MessageCodes.h create mode 100644 firmware/src/SessionAPI.h create mode 100644 firmware/src/WifiAPI.cpp create mode 100644 firmware/src/WifiAPI.h create mode 100644 hardware/case/swim_tracker_case_2.FCStd diff --git a/firmware/src/MessageCodes.h b/firmware/src/MessageCodes.h new file mode 100644 index 0000000..1cb4b9e --- /dev/null +++ b/firmware/src/MessageCodes.h @@ -0,0 +1,24 @@ +#pragma once + + +enum class MessageCode : uint8_t +{ + // from swim tracker device to frontend + ERROR = 1, + + INITIAL_INFO = 2, + SESSION_STARTED = 3, + SESSION_STOPPED = 4, + SESSION_NEW_DATA = 5, + ANSWER_USER_LIST = 6, + ANSWER_SESSION_LIST = 7, + + // from frontend to device + START_SESSION = 128, + STOP_SESSION = 129, + TARE = 130, + QUERY_USER_LIST = 131, + QUERY_SESSION_LIST = 132, + WIFI_STATE_SET = 133, + WIFI_STATE_GET = 134, +}; diff --git a/firmware/src/SessionAPI.h b/firmware/src/SessionAPI.h new file mode 100644 index 0000000..332e239 --- /dev/null +++ b/firmware/src/SessionAPI.h @@ -0,0 +1,169 @@ + +#include "Dtypes.h" +#include "MessageCodes.h" +#include "SwimTrackerConfig.h" + +#include +#include + +template +class SessionManager; + +template +class SessionAPI +{ +public: + SessionAPI(SessionManager &sessionManager) + : sessionManager_(sessionManager) + { + } + + void onClientConnect(websockets::WebsocketsClient &client); + bool handleMessage(websockets::WebsocketsClient &client, MessageCode code, const char *payload, size_t size); + + template + void iteration(TServer &server); + +private: + template + void sendSessionStartMessages(TServer &server); + template + void sendSessionStopMessages(TServer &server); + template + void sendNewDataMessages(TServer &server); + + SessionManager &sessionManager_; + size_t numSentMeasurements_[MAX_WEBSOCKET_CONNECTIONS]; + bool running_; +}; + +// sending message about current session +template +void SessionAPI::onClientConnect(websockets::WebsocketsClient &client) +{ + // TODO write msgpack instead for consistency? + + using MeasurementT = typename T::MeasurementType; + + // Message format: + // - uint8_t messageType + // - uint8_t running + // - uint32_t sessionId + // - MeasurementT [] measurements (if running) + + auto &session = sessionManager_.session(); + const auto numMeasurements = session.numMeasurements(); + const auto sessionId = session.getStartTime(); + + const size_t msgSize = sizeof(uint8_t) + sizeof(uint8_t) + sizeof(sessionId) + sizeof(MeasurementT) * numMeasurements; + char *msg = (char *)heap_caps_malloc(msgSize, MALLOC_CAP_SPIRAM); + + char *writeHead = msg; + + *writeHead = MessageCode::INITIAL_INFO; + writeHead += sizeof(uint8_t); + + *writeHead = sessionManager_.isMeasuring(); + writeHead += sizeof(uint8_t); + + *((uint32_t *)writeHead) = sessionManager_.isMeasuring() ? sessionId : 0; + writeHead += sizeof(uint32_t); + + assert(writeHead - msg == msgSize - sizeof(MeasurementT) * numMeasurements); + + memcpy(writeHead, session.getDataPointer(), sizeof(MeasurementT) * numMeasurements); + client.sendBinary(msg, msgSize); + + free(msg); +} + +template +bool SessionAPI::handleMessage(websockets::WebsocketsClient &client, MessageCode code, + const char *payload, size_t size) +{ + switch (code) + { + case MessageCode::START_SESSION: + this->sessionManager_.startMeasurements(); + return true; + case MessageCode::STOP_SESSION: + this->sessionManager_.stopMeasurements(); + return true; + case MessageCode::TARE: + this->sessionManager_.tare(); + return true; + } + return false; +} + +template +template +void SessionAPI::iteration(TServer &server) +{ + if (!running_ && sessionManager_.isMeasuring()) + { + sendSessionStartMessages(server); + for (int i = 0; i < MAX_WEBSOCKET_CONNECTIONS; ++i) + numSentMeasurements_[i] = 0; + } + else if (running_ && !sessionManager_.isMeasuring()) + { + sendSessionStopMessages(server); + for (int i = 0; i < MAX_WEBSOCKET_CONNECTIONS; ++i) + numSentMeasurements_[i] = 0; + } + sendNewDataMessages(server); +} + +template +template +void SessionAPI::sendSessionStartMessages(TServer &server) +{ + StaticJsonDocument<128> data; + data["sessionId"] = sessionManager_.session().getStartTime(); + server.sendToAll<32>(MessageCode::SESSION_STARTED, data); +} + +template +template +void SessionAPI::sendSessionStopMessages(TServer &server) +{ + MessageCode code = MessageCode::SESSION_STOPPED; + server.sendToAll<32>(code); +} + +template +template +void SessionAPI::sendNewDataMessages(TServer &server) +{ + constexpr size_t MAX_MEASUREMENTS_PER_MSG = 16; + constexpr size_t WAIT_UNTIL_AT_LEAST_NUM_MEASUREMENTS = 1; + + // new data messages are the only messages not sent in msgpack format + // since they are sent multiple times a second + using MeasurementT = typename T::MeasurementType; + auto &session = sessionManager_.session(); + + char buffer[1 + MAX_MEASUREMENTS_PER_MSG]; + buffer[0] = MessageCode::SESSION_NEW_DATA; + constexpr int headerSize = 1; + + for (int i = 0; i < MAX_WEBSOCKET_CONNECTIONS; ++i) + { + auto &c = server.client(i); + if (c.available()) + { + MeasurementT *dataToSend = session.getDataPointer() + numSentMeasurements_[i]; + int32_t numMeasurementsToSend = int32_t(session.numMeasurements()) - int32_t(numSentMeasurements_[i]); + if (numMeasurementsToSend >= WAIT_UNTIL_AT_LEAST_NUM_MEASUREMENTS) + { + if (numMeasurementsToSend > MAX_MEASUREMENTS_PER_MSG) + numMeasurementsToSend = MAX_MEASUREMENTS_PER_MSG; + + memcpy(buffer + headerSize, dataToSend, sizeof(MeasurementT) * numMeasurementsToSend); + c.sendBinary(buffer, headerSize + sizeof(MeasurementT) * numMeasurementsToSend); + numSentMeasurements_[i] += numMeasurementsToSend; + } + } + } +} diff --git a/firmware/src/WifiAPI.cpp b/firmware/src/WifiAPI.cpp new file mode 100644 index 0000000..eecdad2 --- /dev/null +++ b/firmware/src/WifiAPI.cpp @@ -0,0 +1,46 @@ +#include "WifiAPI.h" +#include "WifiManager.h" + +#include "WebsocketServer.h" + +bool WifiAPI::handleMessage(websockets::WebsocketsClient &client, MessageCode code, const char *payload, size_t size) +{ + if (code == MessageCode::WIFI_STATE_GET) + { + StaticJsonDocument<128> data; + data["state"] = wifiManager_.stateStr(); + sendToClient<64>(client, MessageCode::WIFI_STATE_GET, data); + return true; + } + else if (code == MessageCode::WIFI_STATE_SET) + { + StaticJsonDocument<1024> json; + + DeserializationError err = deserializeJson(json, payload, size); + if (err) + { + sendErrorToClient(client, "Deserialization Error"); + return true; + } + if (json.containsKey("reset_to_provisioning") && json["reset_to_provisioning"].as()) + { + wifiManager_.resetToApProvisioning(); + restartScheduled_ = true; + return true; + } + else if (json.containsKey("ap_password")) + { + wifiManager_.setApCredentials(json["ap_password"].as()); + restartScheduled_ = true; + return true; + } + else if (json.containsKey("sta_ssid") && json.containsKey("sta_password")) + { + wifiManager_.setStaCredentials(json["sta_ssid"].as(), // + json["sta_password"].as()); + restartScheduled_ = true; + return true; + } + } + return false; +} diff --git a/firmware/src/WifiAPI.h b/firmware/src/WifiAPI.h new file mode 100644 index 0000000..a7a983a --- /dev/null +++ b/firmware/src/WifiAPI.h @@ -0,0 +1,34 @@ +#include "Dtypes.h" +#include "MessageCodes.h" +#include "SwimTrackerConfig.h" + +#include +#include + +class WifiManager; + +class WifiAPI +{ +public: + WifiAPI(WifiManager &wifiManager) + : wifiManager_(wifiManager), restartScheduled_(false) + { + } + + void onClientConnect(websockets::WebsocketsClient &client) {} + bool handleMessage(websockets::WebsocketsClient &client, MessageCode code, const char *payload, size_t size); + + template + void iteration(TServer &server) + { + if (restartScheduled_) + { + Serial.print("Restart triggered by WifiAPI"); + ESP.restart(); + } + } + +private: + WifiManager &wifiManager_; + bool restartScheduled_; +}; diff --git a/hardware/case/swim_tracker_case_2.FCStd b/hardware/case/swim_tracker_case_2.FCStd new file mode 100644 index 0000000000000000000000000000000000000000..e60a996220e76481746373d1ddfe0a3f917bd571 GIT binary patch literal 78103 zcmY(qV{m3&7p{Z|#SH+Ho(wR55Ku(i4JwRGN)NO*qv zM%C~=UCY)~Y(t1$#7;4J;V9r$({_vPBqzf_gpxchf$Skz<@5W>3~7X}qC%sK6z6O) z7sUw?BBHJx_qqT4>EW45;t%$~6nlv3wIF_?mtx2jS#bDvxJy-a@<0DR`tf_c{_K^L z?^V_t5p;OE*J_U;t1LCh`K)b#1vz4rM4Lc2H_zqw$J-i2MfQK^Y{M443wFXE8dpYv zkm3mA&;10&W5W8=!_6B)7^RrBF=l*w_>(ZR_m@Y}ZvT|+Okt>q{5MZK8o!`w=-vrT(CE2w$QZcTAx*{BRnI&_zW}cExgezVB=odg#jl zlb^NJC;LM6+!y%|U0Osp-%odH?qI3oua89jAP=6q)P4>7_jUfai9=e*<`0L;=m35< zM6)`1)vMr|ZiOrK(6uy7KWOrPAIi~!Py0tFHs$@>Jw{C`$2!=3{$R@k`=qJkgOA*I z1FWKC0ZOokxs%&i2P7F`{PH5^#|v09?rAe_JMN9vx|W04Qs!4}d=bBV66h-xDoBn> z8K$SA<#I1@a>hAI0=XUV2zk;~Hgd-g4Bu~Yj%;w}a}~NmNXQ`)NG@HAL~nm^oQMl$ zV61>h)aA9By^fai8edeU@~v0Lc^5Q%;SPtd*Sjg!=Vw^WA4gO<7$O;6?BC{jIosCX zkBeQ6(F>j4>b%XHV~gDgup18TM7Ldem>NRumXFuhF9sl$jdg)p$VXfnpw6!*$ZgOx zq?=UZHK8ym&_tI*V^<(er!H?8pav9&#$}*^%XX5I8amd?n7G5!VSW(Qj9HZxp$MrJ zz2{h;cNq4IH676<`fmq$)T1+6ve?>g);CI1^&W(oUqZRV^u52OzeW5|+m6`-t@*yV zdeYw>0)Cq0dn0t7sJ|*6m>IEDYiUObP~kxB%OHt70CKo<+6+XH+d&Jmw<$r&((I

*!O>6c_6fIsZ=bpdMfl&$w_UR;W* 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 literal 0 HcmV?d00001