From 35e1cc678a77f3debb75b93322ef49cf570ecaa1 Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Thu, 14 Nov 2024 11:18:29 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=90=20Makes=20analytics=20a=20part=20o?= =?UTF-8?q?f=20system=20service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- esp32/features.ini | 1 - esp32/include/spot.h | 4 --- esp32/lib/ESP32-sveltekit/analytics_service.h | 32 ------------------- esp32/lib/ESP32-sveltekit/features.cpp | 1 - esp32/lib/ESP32-sveltekit/features.h | 5 --- esp32/lib/ESP32-sveltekit/system_service.cpp | 12 +++++++ esp32/lib/ESP32-sveltekit/system_service.h | 7 ++++ esp32/src/spot.cpp | 5 +-- 8 files changed, 20 insertions(+), 47 deletions(-) delete mode 100644 esp32/lib/ESP32-sveltekit/analytics_service.h diff --git a/esp32/features.ini b/esp32/features.ini index b808c4f..51bb6e8 100644 --- a/esp32/features.ini +++ b/esp32/features.ini @@ -5,7 +5,6 @@ build_flags = -D USE_SLEEP=0 -D USE_UPLOAD_FIRMWARE=1 -D USE_DOWNLOAD_FIRMWARE=0 - -D USE_ANALYTICS=1 -D USE_MOTION=1 ; Hardware specific diff --git a/esp32/include/spot.h b/esp32/include/spot.h index a33f7c1..21287cd 100644 --- a/esp32/include/spot.h +++ b/esp32/include/spot.h @@ -3,7 +3,6 @@ #include -#include #include #include #include @@ -93,9 +92,6 @@ class Spot { #if FT_ENABLED(USE_BATTERY) BatteryService _batteryService; #endif -#if FT_ENABLED(USE_ANALYTICS) - AnalyticsService _analyticsService; -#endif #if FT_ENABLED(USE_MOTION) MotionService _motionService; #endif diff --git a/esp32/lib/ESP32-sveltekit/analytics_service.h b/esp32/lib/ESP32-sveltekit/analytics_service.h deleted file mode 100644 index 3948014..0000000 --- a/esp32/lib/ESP32-sveltekit/analytics_service.h +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once - -#include -#include -#include -#include -#include -#include - -#define MAX_ESP_ANALYTICS_SIZE 2024 -#define EVENT_ANALYTICS "analytics" -#define ANALYTICS_INTERVAL 2000 - -class AnalyticsService { - public: - AnalyticsService() {}; - - void loop() { EXECUTE_EVERY_N_MS(ANALYTICS_INTERVAL, updateAnalytics()); }; - - private: - JsonDocument doc; - char message[MAX_ESP_ANALYTICS_SIZE]; - - void updateAnalytics() { - if (!socket.hasSubscribers(EVENT_ANALYTICS)) return; - doc.clear(); - JsonObject root = doc.to(); - system_service::metrics(root); - serializeJson(doc, message); - socket.emit(EVENT_ANALYTICS, message); - } -}; diff --git a/esp32/lib/ESP32-sveltekit/features.cpp b/esp32/lib/ESP32-sveltekit/features.cpp index e9e9211..bbb2839 100644 --- a/esp32/lib/ESP32-sveltekit/features.cpp +++ b/esp32/lib/ESP32-sveltekit/features.cpp @@ -8,7 +8,6 @@ void features(JsonObject &root) { root["download_firmware"] = USE_DOWNLOAD_FIRMWARE; root["sleep"] = USE_SLEEP; root["battery"] = USE_BATTERY; - root["analytics"] = USE_ANALYTICS; root["camera"] = USE_CAMERA; root["imu"] = USE_IMU; root["mag"] = USE_MAG; diff --git a/esp32/lib/ESP32-sveltekit/features.h b/esp32/lib/ESP32-sveltekit/features.h index 31371e0..0d5a51d 100644 --- a/esp32/lib/ESP32-sveltekit/features.h +++ b/esp32/lib/ESP32-sveltekit/features.h @@ -32,11 +32,6 @@ #define USE_BATTERY 0 #endif -// ESP32 analytics on by default -#ifndef USE_ANALYTICS -#define USE_ANALYTICS 1 -#endif - // ESP32 camera off by default #ifndef USE_CAMERA #define USE_CAMERA 0 diff --git a/esp32/lib/ESP32-sveltekit/system_service.cpp b/esp32/lib/ESP32-sveltekit/system_service.cpp index 2723d04..00de159 100644 --- a/esp32/lib/ESP32-sveltekit/system_service.cpp +++ b/esp32/lib/ESP32-sveltekit/system_service.cpp @@ -4,6 +4,9 @@ namespace system_service { static const char *TAG = "SystemService"; +static JsonDocument analyticsDoc; +static char analyticsMessage[MAX_ESP_ANALYTICS_SIZE]; + esp_err_t handleReset(PsychicRequest *request) { reset(); return request->reply(200); @@ -132,6 +135,15 @@ void metrics(JsonObject &root) { } } +void emitMetrics() { + if (!socket.hasSubscribers(EVENT_ANALYTICS)) return; + analyticsDoc.clear(); + JsonObject root = analyticsDoc.to(); + system_service::metrics(root); + serializeJson(analyticsDoc, analyticsMessage); + socket.emit(EVENT_ANALYTICS, analyticsMessage); +} + const char *resetReason(int reason) { switch (reason) { case 1: return "Vbat power on reset"; diff --git a/esp32/lib/ESP32-sveltekit/system_service.h b/esp32/lib/ESP32-sveltekit/system_service.h index 60342e1..8c7b473 100644 --- a/esp32/lib/ESP32-sveltekit/system_service.h +++ b/esp32/lib/ESP32-sveltekit/system_service.h @@ -5,9 +5,13 @@ #include #include #include +#include #include #include +#define MAX_ESP_ANALYTICS_SIZE 2024 +#define EVENT_ANALYTICS "analytics" + namespace system_service { esp_err_t handleReset(PsychicRequest *request); esp_err_t handleRestart(PsychicRequest *request); @@ -20,6 +24,9 @@ void restart(); void sleep(); void status(JsonObject &root); void metrics(JsonObject &root); + +void emitMetrics(); + const char *resetReason(int reason); } // namespace system_service diff --git a/esp32/src/spot.cpp b/esp32/src/spot.cpp index a0857c5..03c4a50 100644 --- a/esp32/src/spot.cpp +++ b/esp32/src/spot.cpp @@ -184,7 +184,6 @@ void Spot::setupMDNS() { void Spot::startServices() { _apService.begin(); - #if FT_ENABLED(USE_UPLOAD_FIRMWARE) _uploadFirmwareService.begin(); #endif @@ -209,9 +208,7 @@ void IRAM_ATTR Spot::loop() { while (1) { _wifiService.loop(); _apService.loop(); -#if FT_ENABLED(USE_ANALYTICS) - _analyticsService.loop(); -#endif + EXECUTE_EVERY_N_MS(2000, system_service::emitMetrics()); delay(20); } }