Refactor wireless command error handling and update device mode terminology in setup tool

This commit is contained in:
PhosphorosVR
2025-09-05 18:38:13 +02:00
parent 93b2f7f23f
commit 21e7589546
7 changed files with 41 additions and 8 deletions
@@ -1,11 +1,15 @@
#include "scan_commands.hpp" #include "scan_commands.hpp"
#include "sdkconfig.h"
CommandResult scanNetworksCommand(std::shared_ptr<DependencyRegistry> registry) CommandResult scanNetworksCommand(std::shared_ptr<DependencyRegistry> registry)
{ {
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager); auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager);
if (!wifiManager) if (!wifiManager)
{ {
return CommandResult::getErrorResult("WiFiManager not available"); return CommandResult::getErrorResult("Not supported by current firmware");
} }
auto networks = wifiManager->ScanNetworks(); auto networks = wifiManager->ScanNetworks();
@@ -1,5 +1,6 @@
#include "wifi_commands.hpp" #include "wifi_commands.hpp"
#include "esp_netif.h" #include "esp_netif.h"
#include "sdkconfig.h"
std::optional<WifiPayload> parseSetWiFiCommandPayload(std::string_view jsonPayload) std::optional<WifiPayload> parseSetWiFiCommandPayload(std::string_view jsonPayload)
{ {
@@ -143,6 +144,9 @@ std::optional<UpdateAPWiFiPayload> parseUpdateAPWiFiCommandPayload(const std::st
CommandResult setWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload) CommandResult setWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload)
{ {
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseSetWiFiCommandPayload(jsonPayload); const auto payload = parseSetWiFiCommandPayload(jsonPayload);
if (!payload.has_value()) if (!payload.has_value())
@@ -164,6 +168,9 @@ CommandResult setWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::
CommandResult deleteWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload) CommandResult deleteWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload)
{ {
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseDeleteWifiCommandPayload(jsonPayload); const auto payload = parseDeleteWifiCommandPayload(jsonPayload);
if (!payload.has_value()) if (!payload.has_value())
return CommandResult::getErrorResult("Invalid payload"); return CommandResult::getErrorResult("Invalid payload");
@@ -176,6 +183,9 @@ CommandResult deleteWiFiCommand(std::shared_ptr<DependencyRegistry> registry, st
CommandResult updateWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload) CommandResult updateWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload)
{ {
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseUpdateWifiCommandPayload(jsonPayload); const auto payload = parseUpdateWifiCommandPayload(jsonPayload);
if (!payload.has_value()) if (!payload.has_value())
{ {
@@ -207,6 +217,9 @@ CommandResult updateWiFiCommand(std::shared_ptr<DependencyRegistry> registry, st
CommandResult updateAPWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload) CommandResult updateAPWiFiCommand(std::shared_ptr<DependencyRegistry> registry, std::string_view jsonPayload)
{ {
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseUpdateAPWiFiCommandPayload(jsonPayload); const auto payload = parseUpdateAPWiFiCommandPayload(jsonPayload);
if (!payload.has_value()) if (!payload.has_value())
@@ -226,7 +239,13 @@ CommandResult updateAPWiFiCommand(std::shared_ptr<DependencyRegistry> registry,
} }
CommandResult getWiFiStatusCommand(std::shared_ptr<DependencyRegistry> registry) { CommandResult getWiFiStatusCommand(std::shared_ptr<DependencyRegistry> registry) {
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager); auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager);
if (!wifiManager) {
return CommandResult::getErrorResult("Not supported by current firmware");
}
auto projectConfig = registry->resolve<ProjectConfig>(DependencyType::project_config); auto projectConfig = registry->resolve<ProjectConfig>(DependencyType::project_config);
// Get current WiFi state // Get current WiFi state
@@ -287,7 +306,13 @@ CommandResult getWiFiStatusCommand(std::shared_ptr<DependencyRegistry> registry)
} }
CommandResult connectWiFiCommand(std::shared_ptr<DependencyRegistry> registry) { CommandResult connectWiFiCommand(std::shared_ptr<DependencyRegistry> registry) {
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager); auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager);
if (!wifiManager) {
return CommandResult::getErrorResult("Not supported by current firmware");
}
auto projectConfig = registry->resolve<ProjectConfig>(DependencyType::project_config); auto projectConfig = registry->resolve<ProjectConfig>(DependencyType::project_config);
auto networks = projectConfig->getWifiConfigs(); auto networks = projectConfig->getWifiConfigs();
+1
View File
@@ -68,3 +68,4 @@ CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000
CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_SAMPLES=10
CONFIG_MONITORING_LED_INTERVAL_MS=500 CONFIG_MONITORING_LED_INTERVAL_MS=500
CONFIG_GENERAL_WHO_AM_I="facefocusvr_eye" CONFIG_GENERAL_WHO_AM_I="facefocusvr_eye"
# CONFIG_GENERAL_ENABLE_WIRELESS is not set
+1
View File
@@ -68,3 +68,4 @@ CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000
CONFIG_MONITORING_LED_SAMPLES=10 CONFIG_MONITORING_LED_SAMPLES=10
CONFIG_MONITORING_LED_INTERVAL_MS=500 CONFIG_MONITORING_LED_INTERVAL_MS=500
CONFIG_GENERAL_WHO_AM_I="facefocusvr_face" CONFIG_GENERAL_WHO_AM_I="facefocusvr_face"
# CONFIG_GENERAL_ENABLE_WIRELESS is not set
+1
View File
@@ -55,3 +55,4 @@ CONFIG_GENERAL_INCLUDE_UVC_MODE=y
# CONFIG_START_IN_UVC_MODE is not set # CONFIG_START_IN_UVC_MODE is not set
# CONFIG_MONITORING_LED_CURRENT is not set # CONFIG_MONITORING_LED_CURRENT is not set
CONFIG_GENERAL_WHO_AM_I="project_babble" CONFIG_GENERAL_WHO_AM_I="project_babble"
CONFIG_GENERAL_ENABLE_WIRELESS=y
+1
View File
@@ -60,3 +60,4 @@ CONFIG_GENERAL_INCLUDE_UVC_MODE=y
# CONFIG_START_IN_UVC_MODE is not set # CONFIG_START_IN_UVC_MODE is not set
# CONFIG_MONITORING_LED_CURRENT is not set # CONFIG_MONITORING_LED_CURRENT is not set
CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3" CONFIG_GENERAL_WHO_AM_I="xiao_esp32s3"
CONFIG_GENERAL_ENABLE_WIRELESS=y
+1 -1
View File
@@ -1204,7 +1204,7 @@ def main():
print(f"{str(2):>2} 🌐 Configure MDNS") print(f"{str(2):>2} 🌐 Configure MDNS")
print(f"{str(3):>2} 💻 Configure UVC Name") print(f"{str(3):>2} 💻 Configure UVC Name")
print(f"{str(4):>2} 🚀 Start streaming mode") print(f"{str(4):>2} 🚀 Start streaming mode")
print(f"{str(5):>2} 🔄 Switch device mode (WiFi/UVC/Auto)") print(f"{str(5):>2} 🔄 Switch device mode (WiFi/UVC/Setup)")
print(f"{str(6):>2} 💡 Update PWM Duty Cycle") print(f"{str(6):>2} 💡 Update PWM Duty Cycle")
print(f"{str(7):>2} 📖 Monitor logs") print(f"{str(7):>2} 📖 Monitor logs")
print(f"{str(8):>2} 🧩 Get settings summary") print(f"{str(8):>2} 🧩 Get settings summary")