diff --git a/wiflash_esp32/wiflash_esp32.ino b/wiflash_esp32/wiflash_esp32.ino index f0ae6dd..44b08be 100644 --- a/wiflash_esp32/wiflash_esp32.ino +++ b/wiflash_esp32/wiflash_esp32.ino @@ -128,12 +128,22 @@ String templateProcessor(const String& var) { if (var == "STATUS_WIFI_POWER") return String(WiFi.getTxPower()); if (var == "STATUS_WIFI_SLEEP") return String(WiFi.getSleep()); if (var == "STATUS_WIFI_SSID") return WiFi.SSID(); - if (var == "STATUS_HOSTNAME") return String(WiFi.getHostname()); - if (var == "STATUS_IPV4_ADDRESS") return WiFi.localIP().toString(); - if (var == "STATUS_IPV6_ADDRESS") return WiFi.localIPv6().toString(); - if (var == "STATUS_SUBNET_MASK") return WiFi.subnetMask().toString(); - if (var == "STATUS_GATEWAY_IP") return WiFi.gatewayIP().toString(); - if (var == "STATUS_MAC_ADDRESS") return WiFi.macAddress(); + if (config.mode == WIFI_AP) { + if (var == "STATUS_HOSTNAME") return String(WiFi.softAPgetHostname()); + if (var == "STATUS_IPV4_ADDRESS") return WiFi.softAPIP().toString(); + if (var == "STATUS_IPV6_ADDRESS") return WiFi.softAPIPv6().toString(); + if (var == "STATUS_CIDR") return String(WiFi.softAPSubnetCIDR()); + if (var == "STATUS_GATEWAY_IP") return WiFi.gatewayIP().toString(); + if (var == "STATUS_MAC_ADDRESS") return WiFi.softAPmacAddress(); + } + if (config.mode == WIFI_STA) { + if (var == "STATUS_HOSTNAME") return String(WiFi.getHostname()); + if (var == "STATUS_IPV4_ADDRESS") return WiFi.localIP().toString(); + if (var == "STATUS_IPV6_ADDRESS") return WiFi.localIPv6().toString(); + if (var == "STATUS_CIDR") return String(WiFi.subnetCIDR()); + if (var == "STATUS_GATEWAY_IP") return WiFi.gatewayIP().toString(); + if (var == "STATUS_MAC_ADDRESS") return WiFi.macAddress(); + } // configuration values if (var == "WIFI_MODE") return String(config.mode); @@ -283,21 +293,29 @@ void setup() { //// start WiFi: // set IPv4 Serial.println("Starting WiFi."); - WiFi.setHostname(config.hostname.c_str()); WiFi.mode(config.mode); + IPAddress ip_, gateway_, subnet_; if (!config.dhcp) { - IPAddress ip_, gateway_, subnet_; ip_.fromString(config.ip); gateway_.fromString(config.gateway); subnet_.fromString(config.subnet); - WiFi.config(ip_, gateway_, subnet_); } switch (config.mode) { - case WIFI_AP: - WiFi.softAP(config.ssid.c_str(), config.pwd.c_str()); + case WIFI_AP: { + WiFi.softAPsetHostname(config.hostname.c_str()); + if (!config.dhcp) { + WiFi.softAPConfig(ip_, gateway_, subnet_); + } + WiFi.softAP(config.ssid.c_str(), config.pwd.c_str()); + } break; - case WIFI_STA: - WiFi.begin(config.ssid.c_str(), config.pwd.c_str()); + case WIFI_STA: { + WiFi.setHostname(config.hostname.c_str()); + if (!config.dhcp) { + WiFi.config(ip_, gateway_, subnet_); + } + WiFi.begin(config.ssid.c_str(), config.pwd.c_str()); + } break; }