From b627f52272fa47ca0d3f1079fa0330adc0ee63f7 Mon Sep 17 00:00:00 2001 From: Marcel Peterkau Date: Sun, 4 May 2025 11:53:38 +0200 Subject: [PATCH] some debugger-commands added --- Software/include/globals.h | 1 + Software/src/debugger.cpp | 26 +++++++++++++++++++++++--- Software/src/globals.cpp | 1 + Software/src/main.cpp | 6 ++++++ 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Software/include/globals.h b/Software/include/globals.h index 7ff65fe..b851aa8 100644 --- a/Software/include/globals.h +++ b/Software/include/globals.h @@ -32,6 +32,7 @@ typedef struct Globals_s bool hasDTC; /**< Flag indicating the presence of Diagnostic Trouble Codes (DTC) */ bool measurementActive; /**< Flag indicating active measurement */ uint32_t measuredPulses; /**< Number of measured pulses */ + bool toggle_wifi; } Globals_t; extern Globals_t globals; /**< Global variable struct */ diff --git a/Software/src/debugger.cpp b/Software/src/debugger.cpp index 48a8596..893fee8 100644 --- a/Software/src/debugger.cpp +++ b/Software/src/debugger.cpp @@ -26,6 +26,7 @@ void Debug_dumpPersistance(); void Debug_ShowDTCs(); void Debug_dumpGlobals(); void Debug_printHelp(); +void Debug_Purge(); const char *uint32_to_binary_string(uint32_t num); /** @@ -273,6 +274,10 @@ void processCmdDebug(String command) Websocket_PushNotification("Debug Success Notification", success); else if (command == "notify_info") Websocket_PushNotification("Debug Info Notification", info); + else if (command == "purge") + Debug_Purge(); + else if (command == "toggle_wifi") + globals.toggle_wifi = true; else Debug_pushMessage("unknown Command\n"); } @@ -488,6 +493,18 @@ void Debug_printHelp() } } +/** + * @brief Start purging for 10 pulses. + */ +void Debug_Purge() +{ + globals.purgePulses = 10; + globals.resumeStatus = globals.systemStatus; + globals.systemStatus = sysStat_Purge; + + Debug_pushMessage("Purging 10 pulses\n"); +} + /** * @brief Convert a uint32_t value to a binary string with nibbles separated by a space. * @@ -501,12 +518,15 @@ void Debug_printHelp() * @return A pointer to a const char string containing the binary representation * of the input number with nibbles separated by a space. */ -const char* uint32_to_binary_string(uint32_t num) { +const char *uint32_to_binary_string(uint32_t num) +{ static char binary_str[65]; // 32 bits + 31 spaces + null terminator int i, j; - for (i = 31, j = 0; i >= 0; i--, j++) { + for (i = 31, j = 0; i >= 0; i--, j++) + { binary_str[j] = ((num >> i) & 1) ? '1' : '0'; - if (i % 4 == 0 && i != 0) { + if (i % 4 == 0 && i != 0) + { binary_str[++j] = ' '; // Insert space after every nibble } } diff --git a/Software/src/globals.cpp b/Software/src/globals.cpp index 01bba72..3e48932 100644 --- a/Software/src/globals.cpp +++ b/Software/src/globals.cpp @@ -26,4 +26,5 @@ void initGlobals() globals.systemStatus = sysStat_Startup; globals.measurementActive = false; globals.measuredPulses = 0; + globals.toggle_wifi = false; } diff --git a/Software/src/main.cpp b/Software/src/main.cpp index fa3a40a..3ca2145 100644 --- a/Software/src/main.cpp +++ b/Software/src/main.cpp @@ -249,6 +249,12 @@ void loop() DTC_Process(); Debug_Process(); + if (globals.toggle_wifi == true){ + + globals.toggle_wifi = false; + toggleWiFiAP(); + } + // Handle OTA updates and update cyclic EEPROM tasks for Persistence Data Structure (PDS) ArduinoOTA.handle(); EEPROMCyclicPDSTicker.update();