feat(factory-cli): add Wi-Fi credential management commands
This commit is contained in:
@@ -128,6 +128,17 @@ bool platform_wifi_portal_has_saved_credentials(void)
|
||||
return wifi_portal_has_saved_credentials();
|
||||
}
|
||||
|
||||
esp_err_t platform_wifi_portal_get_saved_ssids(char *out_ssids,
|
||||
size_t ssid_stride,
|
||||
size_t capacity,
|
||||
size_t *out_count)
|
||||
{
|
||||
return wifi_portal_get_saved_ssids(out_ssids,
|
||||
ssid_stride,
|
||||
capacity,
|
||||
out_count);
|
||||
}
|
||||
|
||||
bool platform_wifi_portal_sta_is_connected(void)
|
||||
{
|
||||
return wifi_portal_sta_is_connected();
|
||||
|
||||
@@ -298,6 +298,34 @@ bool wifi_portal_has_saved_credentials(void)
|
||||
return !SsidManager::GetInstance().GetSsidList().empty();
|
||||
}
|
||||
|
||||
esp_err_t wifi_portal_get_saved_ssids(char *out_ssids,
|
||||
size_t ssid_stride,
|
||||
size_t capacity,
|
||||
size_t *out_count)
|
||||
{
|
||||
if (out_count == nullptr ||
|
||||
(capacity > 0U && (out_ssids == nullptr || ssid_stride < 33U))) {
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
|
||||
install_wifi_storage_hooks();
|
||||
ESP_RETURN_ON_ERROR(wifi_portal_lock(), TAG, "Failed to lock Wi-Fi portal");
|
||||
PortalUnlockGuard guard;
|
||||
|
||||
const auto &ssid_list = SsidManager::GetInstance().GetSsidList();
|
||||
*out_count = ssid_list.size();
|
||||
if (ssid_list.size() > capacity) {
|
||||
return ESP_ERR_INVALID_SIZE;
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < ssid_list.size(); ++i) {
|
||||
strlcpy(out_ssids + (i * ssid_stride),
|
||||
ssid_list[i].ssid.c_str(),
|
||||
ssid_stride);
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
bool wifi_portal_sta_is_connected(void)
|
||||
{
|
||||
if (!s_wifi_manager_initialized) {
|
||||
|
||||
Reference in New Issue
Block a user