wifi STA and AP use different APIs

This commit is contained in:
Kevin Matz 2020-12-17 12:32:43 -05:00
parent dedbf4f930
commit db2af6f626

View File

@ -128,12 +128,22 @@ String templateProcessor(const String& var) {
if (var == "STATUS_WIFI_POWER") return String(WiFi.getTxPower()); if (var == "STATUS_WIFI_POWER") return String(WiFi.getTxPower());
if (var == "STATUS_WIFI_SLEEP") return String(WiFi.getSleep()); if (var == "STATUS_WIFI_SLEEP") return String(WiFi.getSleep());
if (var == "STATUS_WIFI_SSID") return WiFi.SSID(); if (var == "STATUS_WIFI_SSID") return WiFi.SSID();
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_HOSTNAME") return String(WiFi.getHostname());
if (var == "STATUS_IPV4_ADDRESS") return WiFi.localIP().toString(); if (var == "STATUS_IPV4_ADDRESS") return WiFi.localIP().toString();
if (var == "STATUS_IPV6_ADDRESS") return WiFi.localIPv6().toString(); if (var == "STATUS_IPV6_ADDRESS") return WiFi.localIPv6().toString();
if (var == "STATUS_SUBNET_MASK") return WiFi.subnetMask().toString(); if (var == "STATUS_CIDR") return String(WiFi.subnetCIDR());
if (var == "STATUS_GATEWAY_IP") return WiFi.gatewayIP().toString(); if (var == "STATUS_GATEWAY_IP") return WiFi.gatewayIP().toString();
if (var == "STATUS_MAC_ADDRESS") return WiFi.macAddress(); if (var == "STATUS_MAC_ADDRESS") return WiFi.macAddress();
}
// configuration values // configuration values
if (var == "WIFI_MODE") return String(config.mode); if (var == "WIFI_MODE") return String(config.mode);
@ -283,21 +293,29 @@ void setup() {
//// start WiFi: //// start WiFi:
// set IPv4 // set IPv4
Serial.println("Starting WiFi."); Serial.println("Starting WiFi.");
WiFi.setHostname(config.hostname.c_str());
WiFi.mode(config.mode); WiFi.mode(config.mode);
if (!config.dhcp) {
IPAddress ip_, gateway_, subnet_; IPAddress ip_, gateway_, subnet_;
if (!config.dhcp) {
ip_.fromString(config.ip); ip_.fromString(config.ip);
gateway_.fromString(config.gateway); gateway_.fromString(config.gateway);
subnet_.fromString(config.subnet); subnet_.fromString(config.subnet);
WiFi.config(ip_, gateway_, subnet_);
} }
switch (config.mode) { switch (config.mode) {
case WIFI_AP: 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()); WiFi.softAP(config.ssid.c_str(), config.pwd.c_str());
}
break; break;
case WIFI_STA: 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()); WiFi.begin(config.ssid.c_str(), config.pwd.c_str());
}
break; break;
} }