Removed WL_ prefix in StaStatus and added eth connected bool
This commit is contained in:
@@ -106,7 +106,7 @@ bool _long_range = false;
|
||||
wifi_ps_type_t _sleepEnabled = WIFI_PS_MIN_MODEM;
|
||||
|
||||
// sta
|
||||
std::atomic<WiFiStaStatus> _sta_status{WiFiStaStatus::WL_NO_SHIELD};
|
||||
std::atomic<WiFiStaStatus> _sta_status{WiFiStaStatus::NO_SHIELD};
|
||||
std::optional<espchrono::millis_clock::time_point> _wifiConnectFailFlag;
|
||||
uint8_t _wifiConnectFailCounter{};
|
||||
|
||||
@@ -392,7 +392,7 @@ void update(const config &config)
|
||||
{
|
||||
if (_wifiState == WiFiState::None)
|
||||
{
|
||||
if (get_sta_status() == WiFiStaStatus::WL_CONNECTED)
|
||||
if (get_sta_status() == WiFiStaStatus::CONNECTED)
|
||||
{
|
||||
ESP_LOGI(TAG, "Unexpected connected!");
|
||||
|
||||
@@ -458,7 +458,7 @@ void update(const config &config)
|
||||
{
|
||||
ESP_LOGI(TAG, "Finished scan with %zd results", scanResult->entries.size());
|
||||
|
||||
if (get_sta_status() != WiFiStaStatus::WL_CONNECTED)
|
||||
if (get_sta_status() != WiFiStaStatus::CONNECTED)
|
||||
{
|
||||
ESP_LOGI(TAG, "Not connected after scan, building connect plan...");
|
||||
buildConnectPlan(config, *scanResult);
|
||||
@@ -482,7 +482,7 @@ void update(const config &config)
|
||||
if (_wifiState == WiFiState::Connecting)
|
||||
{
|
||||
const auto status = get_sta_status();
|
||||
if (status == WiFiStaStatus::WL_CONNECTED)
|
||||
if (status == WiFiStaStatus::CONNECTED)
|
||||
{
|
||||
if (const auto interf = esp_netifs[ESP_IF_WIFI_STA])
|
||||
{
|
||||
@@ -553,7 +553,7 @@ void update(const config &config)
|
||||
if (_wifiState == WiFiState::Connected)
|
||||
{
|
||||
const auto status = get_sta_status();
|
||||
if (status != WiFiStaStatus::WL_CONNECTED)
|
||||
if (status != WiFiStaStatus::CONNECTED)
|
||||
{
|
||||
ESP_LOGW(TAG, "lost connection: %s", toString(status).c_str());
|
||||
if (const auto result = wifi_sta_disconnect(config, false, true); result != ESP_OK)
|
||||
@@ -618,7 +618,7 @@ void update(const config &config)
|
||||
setWifiState(WiFiState::None);
|
||||
}
|
||||
|
||||
if (!cpputils::is_in(get_sta_status(), WiFiStaStatus::WL_IDLE_STATUS, WiFiStaStatus::WL_DISCONNECTED) ||
|
||||
if (!cpputils::is_in(get_sta_status(), WiFiStaStatus::IDLE_STATUS, WiFiStaStatus::DISCONNECTED) ||
|
||||
!cpputils::is_in(_wifiState, WiFiState::None, WiFiState::Scanning))
|
||||
{
|
||||
ESP_LOGI(TAG, "disconnecting, because wifi_enabled is false");
|
||||
@@ -808,6 +808,11 @@ esp_eth_handle_t getEthHandle()
|
||||
{
|
||||
return eth_handle;
|
||||
}
|
||||
|
||||
bool get_eth_connected()
|
||||
{
|
||||
return wifi_get_status_bits() & ETH_CONNECTED_BIT;
|
||||
}
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
@@ -1102,9 +1107,9 @@ void set_sta_status(WiFiStaStatus status)
|
||||
|
||||
ESP_LOGI(TAG, "%s (from %s)", toString(status).c_str(), toString(oldStatus).c_str());
|
||||
|
||||
if (oldStatus == WiFiStaStatus::WL_CONNECTED && status != WiFiStaStatus::WL_CONNECTED)
|
||||
if (oldStatus == WiFiStaStatus::CONNECTED && status != WiFiStaStatus::CONNECTED)
|
||||
_lastStaSwitchedFromConnected = espchrono::millis_clock::now();
|
||||
else if (oldStatus != WiFiStaStatus::WL_CONNECTED && status == WiFiStaStatus::WL_CONNECTED)
|
||||
else if (oldStatus != WiFiStaStatus::CONNECTED && status == WiFiStaStatus::CONNECTED)
|
||||
_lastStaSwitchedToConnected = espchrono::millis_clock::now();
|
||||
}
|
||||
|
||||
@@ -1157,17 +1162,17 @@ void wifi_event_callback(const config &config, const WifiEvent &event)
|
||||
wifi_scan_done();
|
||||
break;
|
||||
case WifiEventId::WIFI_STA_START:
|
||||
set_sta_status(WiFiStaStatus::WL_IDLE_STATUS);
|
||||
set_sta_status(WiFiStaStatus::IDLE_STATUS);
|
||||
wifi_set_status_bits(STA_STARTED_BIT);
|
||||
if (const auto result = esp_wifi_set_ps(_sleepEnabled); result != ESP_OK)
|
||||
ESP_LOGE(TAG, "esp_wifi_set_ps() failed with %s", esp_err_to_name(result));
|
||||
break;
|
||||
case WifiEventId::WIFI_STA_STOP:
|
||||
set_sta_status(WiFiStaStatus::WL_NO_SHIELD);
|
||||
set_sta_status(WiFiStaStatus::NO_SHIELD);
|
||||
wifi_clear_status_bits(STA_STARTED_BIT | STA_CONNECTED_BIT | STA_HAS_IP_BIT | STA_HAS_IP6_BIT);
|
||||
break;
|
||||
case WifiEventId::WIFI_STA_CONNECTED:
|
||||
set_sta_status(WiFiStaStatus::WL_IDLE_STATUS);
|
||||
set_sta_status(WiFiStaStatus::IDLE_STATUS);
|
||||
wifi_set_status_bits(STA_CONNECTED_BIT);
|
||||
//esp_netif_create_ip6_linklocal(esp_netifs[ESP_IF_WIFI_STA]);
|
||||
break;
|
||||
@@ -1197,18 +1202,18 @@ void wifi_event_callback(const config &config, const WifiEvent &event)
|
||||
default:
|
||||
{
|
||||
const auto sta_status = get_sta_status();
|
||||
if (sta_status != WiFiStaStatus::WL_DISCONNECTING)
|
||||
if (sta_status != WiFiStaStatus::DISCONNECTING)
|
||||
{
|
||||
ESP_LOGW(TAG, "setting fail flag");
|
||||
_wifiConnectFailFlag = espchrono::millis_clock::now();
|
||||
}
|
||||
switch (sta_status)
|
||||
{
|
||||
case WiFiStaStatus::WL_CONNECTED: set_sta_status(WiFiStaStatus::WL_CONNECTION_LOST); break;
|
||||
case WiFiStaStatus::WL_CONNECTING: set_sta_status(WiFiStaStatus::WL_CONNECT_FAILED); break;
|
||||
case WiFiStaStatus::WL_DISCONNECTING:
|
||||
case WiFiStaStatus::CONNECTED: set_sta_status(WiFiStaStatus::CONNECTION_LOST); break;
|
||||
case WiFiStaStatus::CONNECTING: set_sta_status(WiFiStaStatus::CONNECT_FAILED); break;
|
||||
case WiFiStaStatus::DISCONNECTING:
|
||||
default:
|
||||
set_sta_status(WiFiStaStatus::WL_DISCONNECTED);
|
||||
set_sta_status(WiFiStaStatus::DISCONNECTED);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -1233,12 +1238,12 @@ void wifi_event_callback(const config &config, const WifiEvent &event)
|
||||
wifi_stack::toString(event.got_ip.ip_info.netmask).c_str(),
|
||||
wifi_stack::toString(event.got_ip.ip_info.gw).c_str()
|
||||
);
|
||||
set_sta_status(WiFiStaStatus::WL_CONNECTED);
|
||||
set_sta_status(WiFiStaStatus::CONNECTED);
|
||||
wifi_set_status_bits(STA_HAS_IP_BIT | STA_CONNECTED_BIT);
|
||||
break;
|
||||
case WifiEventId::WIFI_STA_LOST_IP:
|
||||
ESP_LOGW(TAG, "WIFI_STA_LOST_IP");
|
||||
set_sta_status(WiFiStaStatus::WL_IDLE_STATUS);
|
||||
set_sta_status(WiFiStaStatus::IDLE_STATUS);
|
||||
wifi_clear_status_bits(STA_HAS_IP_BIT);
|
||||
break;
|
||||
case WifiEventId::WIFI_AP_START:
|
||||
@@ -2134,7 +2139,7 @@ esp_err_t wifi_sta_begin(const config &config, const wifi_entry &sta_config,
|
||||
return result;
|
||||
}
|
||||
}
|
||||
else if (get_sta_status() == WiFiStaStatus::WL_CONNECTED)
|
||||
else if (get_sta_status() == WiFiStaStatus::CONNECTED)
|
||||
{
|
||||
ESP_LOGW(TAG, "when already connected?!");
|
||||
return ESP_OK;
|
||||
@@ -2174,7 +2179,7 @@ esp_err_t wifi_sta_begin(const config &config, const wifi_entry &sta_config,
|
||||
return result;
|
||||
}
|
||||
|
||||
set_sta_status(WiFiStaStatus::WL_CONNECTING);
|
||||
set_sta_status(WiFiStaStatus::CONNECTING);
|
||||
}
|
||||
|
||||
return ESP_OK;
|
||||
@@ -2219,7 +2224,7 @@ esp_err_t wifi_sta_restart(const config &config)
|
||||
|
||||
//last_sta_static_dns = config.sta.static_dns;
|
||||
|
||||
if (get_sta_status() != WiFiStaStatus::WL_CONNECTED)
|
||||
if (get_sta_status() != WiFiStaStatus::CONNECTED)
|
||||
{
|
||||
_wifiConnectFailFlag = std::nullopt;
|
||||
|
||||
@@ -2229,7 +2234,7 @@ esp_err_t wifi_sta_restart(const config &config)
|
||||
return result;
|
||||
}
|
||||
|
||||
set_sta_status(WiFiStaStatus::WL_CONNECTING);
|
||||
set_sta_status(WiFiStaStatus::CONNECTING);
|
||||
}
|
||||
else
|
||||
ESP_LOGW(TAG, "when already connected?!");
|
||||
@@ -2255,7 +2260,7 @@ esp_err_t wifi_sta_disconnect(const config &config, bool wifioff, bool eraseap)
|
||||
}
|
||||
}
|
||||
|
||||
set_sta_status(WiFiStaStatus::WL_DISCONNECTING);
|
||||
set_sta_status(WiFiStaStatus::DISCONNECTING);
|
||||
|
||||
if (const auto result = esp_wifi_disconnect(); result != ESP_OK)
|
||||
{
|
||||
|
@@ -68,5 +68,6 @@ tl::expected<tcpip_adapter_ip_info_t, std::string> get_ip_info(tcpip_adapter_if_
|
||||
|
||||
#ifdef CONFIG_ETH_ENABLED
|
||||
esp_eth_handle_t getEthHandle();
|
||||
bool get_eth_connected();
|
||||
#endif
|
||||
} // namespace wifi_stack
|
||||
|
@@ -13,16 +13,16 @@ namespace wifi_stack {
|
||||
DECLARE_TYPESAFE_ENUM(WiFiState, : uint8_t, WiFiStateValues)
|
||||
|
||||
#define WiFiStaStatusValues(x) \
|
||||
x(WL_IDLE_STATUS) \
|
||||
x(WL_NO_SSID_AVAIL) \
|
||||
x(WL_SCAN_COMPLETED) \
|
||||
x(WL_CONNECTED) \
|
||||
x(WL_CONNECT_FAILED) \
|
||||
x(WL_CONNECTION_LOST) \
|
||||
x(WL_DISCONNECTED) \
|
||||
x(WL_CONNECTING) \
|
||||
x(WL_DISCONNECTING) \
|
||||
x(WL_NO_SHIELD)
|
||||
x(IDLE_STATUS) \
|
||||
x(NO_SSID_AVAIL) \
|
||||
x(SCAN_COMPLETED) \
|
||||
x(CONNECTED) \
|
||||
x(CONNECT_FAILED) \
|
||||
x(CONNECTION_LOST) \
|
||||
x(DISCONNECTED) \
|
||||
x(CONNECTING) \
|
||||
x(DISCONNECTING) \
|
||||
x(NO_SHIELD)
|
||||
DECLARE_TYPESAFE_ENUM(WiFiStaStatus, : uint8_t, WiFiStaStatusValues)
|
||||
|
||||
#define WiFiScanStatusValues(x) \
|
||||
|
Reference in New Issue
Block a user