From 730a987e81cca5f2ddad2fd5e2b69313e5947c4e Mon Sep 17 00:00:00 2001 From: Thomas Karl Date: Mon, 5 May 2025 21:31:15 -0700 Subject: [PATCH 1/2] Add SERVER_SEARCHING status and move the server searching LED effect to the LEDManager --- src/LEDManager.cpp | 19 +++++++++++++++++-- src/LEDManager.h | 5 ++++- src/network/connection.cpp | 8 ++++---- src/status/Status.cpp | 2 ++ src/status/Status.h | 3 ++- 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/LEDManager.cpp b/src/LEDManager.cpp index 51ef864f1..6ce89561f 100644 --- a/src/LEDManager.cpp +++ b/src/LEDManager.cpp @@ -131,13 +131,28 @@ void LEDManager::update() { length = SERVER_CONNECTING_INTERVAL; break; } - } else { + } else if (statusManager.hasStatus(Status::SERVER_SEARCHING)) { + count = SERVER_SEARCHING_COUNT; + switch (m_CurrentStage) + { + case ON: + case OFF: + length = SERVER_SEARCHING_LENGTH; + break; + case GAP: + length = DEFAULT_GAP; + break; + case INTERVAL: + length = SERVER_SEARCHING_INTERVAL; + break; + } + } else { #if defined(LED_INTERVAL_STANDBY) && LED_INTERVAL_STANDBY > 0 count = 1; switch (m_CurrentStage) { case ON: case OFF: - length = STANDBUY_LENGTH; + length = STANDBY_LENGTH; break; case GAP: length = DEFAULT_GAP; diff --git a/src/LEDManager.h b/src/LEDManager.h index 1d30cb2bd..a55cb1365 100644 --- a/src/LEDManager.h +++ b/src/LEDManager.h @@ -32,7 +32,7 @@ #define DEFAULT_GAP 500 #define DEFAULT_INTERVAL 3000 -#define STANDBUY_LENGTH DEFAULT_LENGTH +#define STANDBY_LENGTH DEFAULT_LENGTH #define IMU_ERROR_LENGTH DEFAULT_LENGTH #define IMU_ERROR_INTERVAL 1000 #define IMU_ERROR_COUNT 5 @@ -42,6 +42,9 @@ #define WIFI_CONNECTING_LENGTH DEFAULT_LENGTH #define WIFI_CONNECTING_INTERVAL 3000 #define WIFI_CONNECTING_COUNT 3 +#define SERVER_SEARCHING_LENGTH 20 +#define SERVER_SEARCHING_INTERVAL 1000 +#define SERVER_SEARCHING_COUNT 1 #define SERVER_CONNECTING_LENGTH DEFAULT_LENGTH #define SERVER_CONNECTING_INTERVAL 3000 #define SERVER_CONNECTING_COUNT 2 diff --git a/src/network/connection.cpp b/src/network/connection.cpp index dd906df26..cda68c3c4 100644 --- a/src/network/connection.cpp +++ b/src/network/connection.cpp @@ -573,14 +573,10 @@ void Connection::searchForServer() { auto now = millis(); - // This makes the LED blink for 20ms every second if (m_LastConnectionAttemptTimestamp + 1000 < now) { m_LastConnectionAttemptTimestamp = now; m_Logger.info("Searching for the server on the local network..."); Connection::sendTrackerDiscovery(); - ledManager.on(); - } else if (m_LastConnectionAttemptTimestamp + 20 < now) { - ledManager.off(); } } @@ -609,8 +605,12 @@ void Connection::reset() { void Connection::update() { if (!m_Connected) { + statusManager.setStatus(SlimeVR::Status::SERVER_SEARCHING, true); searchForServer(); return; + } else + { + statusManager.setStatus(SlimeVR::Status::SERVER_SEARCHING, false); } auto& sensors = sensorManager.getSensors(); diff --git a/src/status/Status.cpp b/src/status/Status.cpp index b51693536..a17e718a1 100644 --- a/src/status/Status.cpp +++ b/src/status/Status.cpp @@ -12,6 +12,8 @@ const char* statusToString(Status status) { return "IMU_ERROR"; case WIFI_CONNECTING: return "WIFI_CONNECTING"; + case SERVER_SEARCHING: + return "SERVER_SEARCHING"; case SERVER_CONNECTING: return "SERVER_CONNECTING"; default: diff --git a/src/status/Status.h b/src/status/Status.h index 1f54cd029..1a8e7937d 100644 --- a/src/status/Status.h +++ b/src/status/Status.h @@ -8,7 +8,8 @@ enum Status { LOW_BATTERY = 1 << 1, IMU_ERROR = 1 << 2, WIFI_CONNECTING = 1 << 3, - SERVER_CONNECTING = 1 << 4 + SERVER_SEARCHING = 1 << 4, + SERVER_CONNECTING = 1 << 5 }; const char* statusToString(Status status); From ec8e6f9a26fc03beaa0c7b0bc1894705d8a23f39 Mon Sep 17 00:00:00 2001 From: SomaticTom <129551581+SomaticTom@users.noreply.github.com> Date: Mon, 5 May 2025 22:08:34 -0700 Subject: [PATCH 2/2] Changed status orders to not reorder original meanings --- src/status/Status.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/status/Status.h b/src/status/Status.h index 1a8e7937d..53703df4c 100644 --- a/src/status/Status.h +++ b/src/status/Status.h @@ -8,8 +8,8 @@ enum Status { LOW_BATTERY = 1 << 1, IMU_ERROR = 1 << 2, WIFI_CONNECTING = 1 << 3, - SERVER_SEARCHING = 1 << 4, - SERVER_CONNECTING = 1 << 5 + SERVER_CONNECTING = 1 << 4, + SERVER_SEARCHING = 1 << 5, }; const char* statusToString(Status status);