mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-03-18 23:56:32 +03:00
more messages on network connect
This commit is contained in:
@@ -63,7 +63,16 @@ void NetworkSettingsService::loop() {
|
|||||||
manageSTA();
|
manageSTA();
|
||||||
}
|
}
|
||||||
static uint8_t connect = 0;
|
static uint8_t connect = 0;
|
||||||
enum uint8_t { CONNECT_IDLE = 0, CONNECT_WAIT_ETH, CONNECT_ETH_ACTIVE, CONNECT_WIFI_ACTIVE };
|
enum uint8_t {
|
||||||
|
CONNECT_IDLE = 0,
|
||||||
|
CONNECT_WAIT_ETH,
|
||||||
|
CONNECT_WAIT_IP4,
|
||||||
|
CONNECT_WAIT_ETH_IP4,
|
||||||
|
CONNECT_WAIT_IP6,
|
||||||
|
CONNECT_WAIT_ETH_IP6,
|
||||||
|
CONNECT_ETH_ACTIVE,
|
||||||
|
CONNECT_WIFI_ACTIVE
|
||||||
|
};
|
||||||
switch (connect) {
|
switch (connect) {
|
||||||
default:
|
default:
|
||||||
connect = CONNECT_IDLE;
|
connect = CONNECT_IDLE;
|
||||||
@@ -71,45 +80,86 @@ void NetworkSettingsService::loop() {
|
|||||||
case CONNECT_IDLE:
|
case CONNECT_IDLE:
|
||||||
if (ETH.started() && _state.ssid.length() == 0) {
|
if (ETH.started() && _state.ssid.length() == 0) {
|
||||||
emsesp::EMSESP::logger().info("ETH started");
|
emsesp::EMSESP::logger().info("ETH started");
|
||||||
connect = CONNECT_WAIT_ETH;
|
|
||||||
ETH.enableIPv6(true);
|
ETH.enableIPv6(true);
|
||||||
if (_state.staticIPConfig) {
|
if (_state.staticIPConfig) {
|
||||||
ETH.config(_state.localIP, _state.gatewayIP, _state.subnetMask, _state.dnsIP1, _state.dnsIP2);
|
ETH.config(_state.localIP, _state.gatewayIP, _state.subnetMask, _state.dnsIP1, _state.dnsIP2);
|
||||||
}
|
}
|
||||||
ETH.setHostname(emsesp::EMSESP::system_.hostname().c_str());
|
ETH.setHostname(emsesp::EMSESP::system_.hostname().c_str());
|
||||||
|
connect = CONNECT_WAIT_ETH;
|
||||||
}
|
}
|
||||||
if (WiFi.isConnected()) {
|
if (WiFi.isConnected()) {
|
||||||
emsesp::EMSESP::logger().info("Wifi connected");
|
emsesp::EMSESP::logger().info("Wifi connected");
|
||||||
connect = CONNECT_WIFI_ACTIVE;
|
|
||||||
if (_state.tx_power == 0) {
|
if (_state.tx_power == 0) {
|
||||||
setWiFiPowerOnRSSI();
|
setWiFiPowerOnRSSI();
|
||||||
}
|
}
|
||||||
mDNS_start();
|
mDNS_start();
|
||||||
|
emsesp::EMSESP::system_.has_ipv6(true);
|
||||||
|
connect = CONNECT_WAIT_IP4;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CONNECT_WAIT_ETH:
|
case CONNECT_WAIT_ETH:
|
||||||
if (ETH.connected()) {
|
if (ETH.connected()) {
|
||||||
emsesp::EMSESP::logger().info("ETH connected");
|
emsesp::EMSESP::logger().info("ETH connected");
|
||||||
connect = CONNECT_ETH_ACTIVE;
|
|
||||||
emsesp::EMSESP::system_.ethernet_connected(true);
|
emsesp::EMSESP::system_.ethernet_connected(true);
|
||||||
mDNS_start();
|
mDNS_start();
|
||||||
|
emsesp::EMSESP::system_.has_ipv6(true);
|
||||||
|
connect = CONNECT_WAIT_ETH_IP4;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CONNECT_WAIT_ETH_IP4:
|
||||||
|
if (ETH.hasIP()) {
|
||||||
|
emsesp::EMSESP::logger().info("Eth IPv4: %s", ETH.localIP().toString().c_str());
|
||||||
|
connect = CONNECT_WAIT_ETH_IP6;
|
||||||
|
}
|
||||||
|
if (!ETH.connected()) {
|
||||||
|
connect = CONNECT_ETH_ACTIVE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CONNECT_WAIT_ETH_IP6:
|
||||||
|
if (ETH.hasLinkLocalIPv6() && ETH.hasGlobalIPv6()) {
|
||||||
|
emsesp::EMSESP::system_.has_ipv6(true);
|
||||||
|
connect = CONNECT_ETH_ACTIVE;
|
||||||
|
}
|
||||||
|
if (!ETH.connected()) {
|
||||||
|
connect = CONNECT_ETH_ACTIVE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case CONNECT_ETH_ACTIVE:
|
case CONNECT_ETH_ACTIVE:
|
||||||
if (!ETH.connected()) {
|
if (!ETH.connected()) {
|
||||||
emsesp::EMSESP::logger().info("ETH disconnected");
|
emsesp::EMSESP::logger().info("ETH disconnected");
|
||||||
emsesp::EMSESP::system_.ethernet_connected(false);
|
emsesp::EMSESP::system_.ethernet_connected(false);
|
||||||
|
emsesp::EMSESP::system_.has_ipv6(false);
|
||||||
connect = CONNECT_IDLE;
|
connect = CONNECT_IDLE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case CONNECT_WAIT_IP4:
|
||||||
|
if (!WiFi.localIP().toString().isEmpty()) {
|
||||||
|
emsesp::EMSESP::logger().info("Wifi IPv4: %s", WiFi.localIP().toString().c_str());
|
||||||
|
connect = CONNECT_WAIT_IP6;
|
||||||
|
}
|
||||||
|
if (!WiFi.isConnected()) {
|
||||||
|
connect = CONNECT_ETH_ACTIVE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case CONNECT_WAIT_IP6:
|
||||||
|
if (WiFi.linkLocalIPv6().toString() != "::" && WiFi.globalIPv6().toString() != "::") {
|
||||||
|
emsesp::EMSESP::logger().info("Wifi IPv6: %s, %s", WiFi.linkLocalIPv6().toString().c_str(), WiFi.globalIPv6().toString().c_str());
|
||||||
|
emsesp::EMSESP::system_.has_ipv6(true);
|
||||||
|
connect = CONNECT_WIFI_ACTIVE;
|
||||||
|
}
|
||||||
|
if (!WiFi.isConnected()) {
|
||||||
|
connect = CONNECT_WIFI_ACTIVE;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case CONNECT_WIFI_ACTIVE:
|
case CONNECT_WIFI_ACTIVE:
|
||||||
if (!WiFi.isConnected()) {
|
if (!WiFi.isConnected()) {
|
||||||
emsesp::EMSESP::logger().info("WiFi disconnected");
|
emsesp::EMSESP::logger().info("WiFi disconnected");
|
||||||
connect = CONNECT_IDLE;
|
|
||||||
if (_stopping) {
|
if (_stopping) {
|
||||||
_lastConnectionAttempt = 0;
|
_lastConnectionAttempt = 0;
|
||||||
_stopping = false;
|
_stopping = false;
|
||||||
}
|
}
|
||||||
|
emsesp::EMSESP::system_.has_ipv6(false);
|
||||||
|
connect = CONNECT_IDLE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user