From 1945c72b5029512e643a9cf06ef5f9500e4cb960 Mon Sep 17 00:00:00 2001 From: TT-Hans-Stols Date: Fri, 9 May 2025 09:17:54 +0200 Subject: [PATCH 1/2] Add receivedBatteryAt, to be able to check if battery info was received --- src/XboxSeriesXControllerESP32_asukiaaa.hpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/XboxSeriesXControllerESP32_asukiaaa.hpp b/src/XboxSeriesXControllerESP32_asukiaaa.hpp index 4616183..1ca832f 100644 --- a/src/XboxSeriesXControllerESP32_asukiaaa.hpp +++ b/src/XboxSeriesXControllerESP32_asukiaaa.hpp @@ -256,10 +256,12 @@ class Core { } unsigned long getReceiveNotificationAt() { return receivedNotificationAt; } uint8_t getCountFailedConnection() { return countFailedConnection; } + unsigned long getReceiveBatteryAt() { return receivedBatteryAt; } private: ConnectionState connectionState = ConnectionState::Scanning; unsigned long receivedNotificationAt = 0; + unsigned long receivedBatteryAt = 0; uint32_t msScanTime = 4000; /** 0 = scan forever */ uint8_t countFailedConnection = 0; uint8_t retryCountInOneConnection = 3; @@ -513,6 +515,7 @@ class Core { } else { if (sUuid.equals(uuidServiceBattery)) { battery = pData[0]; + receivedBatteryAt = millis(); #ifdef XBOX_SERIES_X_CONTROLLER_DEBUG_SERIAL XBOX_SERIES_X_CONTROLLER_DEBUG_SERIAL.println("battery notification"); #endif From a315664f7c9a4060ea356754250fb9cde31e5838 Mon Sep 17 00:00:00 2001 From: TT-Hans-Stols Date: Fri, 9 May 2025 09:19:08 +0200 Subject: [PATCH 2/2] Reset receivedNotificationAt and receivedBatteryAt when not connected --- src/XboxSeriesXControllerESP32_asukiaaa.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/XboxSeriesXControllerESP32_asukiaaa.hpp b/src/XboxSeriesXControllerESP32_asukiaaa.hpp index 1ca832f..76b5836 100644 --- a/src/XboxSeriesXControllerESP32_asukiaaa.hpp +++ b/src/XboxSeriesXControllerESP32_asukiaaa.hpp @@ -203,6 +203,8 @@ class Core { void onLoop() { if (!isConnected()) { + receivedNotificationAt = 0; + receivedBatteryAt = 0; if (advDevice != nullptr) { auto connectionResult = connectToServer(advDevice); if (!connectionResult || !isConnected()) {