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

View File

@@ -1,11 +1,15 @@
#include "scan_commands.hpp"
#include "sdkconfig.h"
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);
if (!wifiManager)
{
return CommandResult::getErrorResult("WiFiManager not available");
return CommandResult::getErrorResult("Not supported by current firmware");
}
auto networks = wifiManager->ScanNetworks();

View File

@@ -1,5 +1,6 @@
#include "wifi_commands.hpp"
#include "esp_netif.h"
#include "sdkconfig.h"
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)
{
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseSetWiFiCommandPayload(jsonPayload);
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)
{
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseDeleteWifiCommandPayload(jsonPayload);
if (!payload.has_value())
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)
{
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseUpdateWifiCommandPayload(jsonPayload);
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)
{
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
const auto payload = parseUpdateAPWiFiCommandPayload(jsonPayload);
if (!payload.has_value())
@@ -226,7 +239,13 @@ CommandResult updateAPWiFiCommand(std::shared_ptr<DependencyRegistry> registry,
}
CommandResult getWiFiStatusCommand(std::shared_ptr<DependencyRegistry> registry) {
auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager);
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
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);
// Get current WiFi state
@@ -287,7 +306,13 @@ CommandResult getWiFiStatusCommand(std::shared_ptr<DependencyRegistry> registry)
}
CommandResult connectWiFiCommand(std::shared_ptr<DependencyRegistry> registry) {
auto wifiManager = registry->resolve<WiFiManager>(DependencyType::wifi_manager);
#if !CONFIG_GENERAL_ENABLE_WIRELESS
return CommandResult::getErrorResult("Not supported by current firmware");
#endif
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 networks = projectConfig->getWifiConfigs();

View File

@@ -67,4 +67,5 @@ CONFIG_MONITORING_LED_GAIN=11
CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000
CONFIG_MONITORING_LED_SAMPLES=10
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

View File

@@ -67,4 +67,5 @@ CONFIG_MONITORING_LED_GAIN=11
CONFIG_MONITORING_LED_SHUNT_MILLIOHM=22000
CONFIG_MONITORING_LED_SAMPLES=10
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

View File

@@ -54,4 +54,5 @@ CONFIG_CAMERA_USB_XCLK_FREQ=23000000
CONFIG_GENERAL_INCLUDE_UVC_MODE=y
# CONFIG_START_IN_UVC_MODE 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

View File

@@ -59,4 +59,5 @@ CONFIG_CAMERA_USB_XCLK_FREQ=23000000
CONFIG_GENERAL_INCLUDE_UVC_MODE=y
# CONFIG_START_IN_UVC_MODE 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

View File

@@ -1204,7 +1204,7 @@ def main():
print(f"{str(2):>2} 🌐 Configure MDNS")
print(f"{str(3):>2} 💻 Configure UVC Name")
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(7):>2} 📖 Monitor logs")
print(f"{str(8):>2} 🧩 Get settings summary")