fix hostname and static ip settings

pull/132/head
Peter Buchegger 2021-12-18 22:33:35 +01:00
rodzic 3d6dded543
commit f1e64a6acf
6 zmienionych plików z 73 dodań i 34 usunięć

Wyświetl plik

@ -1,13 +1,18 @@
{ {
"callsign": "NOCALL-10", "callsign": "NOCALL-10",
"network": { "network": {
"hostname": "NOCALL-10",
"DHCP": true, "DHCP": true,
"staticIP": "192.0.2.100", "static": {
"subnet": "255.255.255.0", "ip": "192.168.0.100",
"gateway": "192.0.2.1", "subnet": "255.255.255.0",
"dns1": "192.0.2.1", "gateway": "192.168.0.1",
"dns2": "192.0.2.2" "dns1": "192.168.0.1",
"dns2": "192.168.0.2"
},
"hostname": {
"overwrite": false,
"name": "NOCALL-10"
}
}, },
"wifi": { "wifi": {
"active": true, "active": true,

Wyświetl plik

@ -39,7 +39,6 @@ void WiFiEvent(WiFiEvent_t event) {
break; break;
case SYSTEM_EVENT_ETH_CONNECTED: case SYSTEM_EVENT_ETH_CONNECTED:
logPrintlnI("ETH Connected"); logPrintlnI("ETH Connected");
ETH.setHostname("esp32-ethernet");
break; break;
case SYSTEM_EVENT_ETH_GOT_IP: case SYSTEM_EVENT_ETH_GOT_IP:
logPrintI("Hostname: "); logPrintI("Hostname: ");
@ -105,9 +104,13 @@ bool EthTask::setup(System &system) {
ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK); ETH.begin(ETH_ADDR, ETH_POWER_PIN, ETH_MDC_PIN, ETH_MDIO_PIN, ETH_TYPE, ETH_CLK);
if (!system.getUserConfig()->network.DHCP) { if (!system.getUserConfig()->network.DHCP) {
ETH.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns1, system.getUserConfig()->network.dns2); ETH.config(system.getUserConfig()->network.static_.ip, system.getUserConfig()->network.static_.gateway, system.getUserConfig()->network.static_.subnet, system.getUserConfig()->network.static_.dns1, system.getUserConfig()->network.static_.dns2);
}
if (system.getUserConfig()->network.hostname.overwrite) {
ETH.setHostname(system.getUserConfig()->network.hostname.name.c_str());
} else {
ETH.setHostname(system.getUserConfig()->callsign.c_str());
} }
ETH.setHostname(system.getUserConfig()->network.hostname.c_str());
return true; return true;
} }

Wyświetl plik

@ -43,7 +43,11 @@ bool OTATask::setup(System &system) {
else if (error == OTA_END_ERROR) else if (error == OTA_END_ERROR)
logPrintlnE("End Failed"); logPrintlnE("End Failed");
}); });
_ota.setHostname(system.getUserConfig()->callsign.c_str()); if (system.getUserConfig()->network.hostname.overwrite) {
_ota.setHostname(system.getUserConfig()->network.hostname.name.c_str());
} else {
_ota.setHostname(system.getUserConfig()->callsign.c_str());
}
_stateInfo = ""; _stateInfo = "";
return true; return true;
} }

Wyświetl plik

@ -20,10 +20,14 @@ bool WifiTask::setup(System &system) {
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
WiFi.onEvent(WiFiEvent); WiFi.onEvent(WiFiEvent);
WiFi.setHostname(system.getUserConfig()->callsign.c_str()); if (system.getUserConfig()->network.hostname.overwrite) {
WiFi.setHostname(system.getUserConfig()->network.hostname.name.c_str());
} else {
WiFi.setHostname(system.getUserConfig()->callsign.c_str());
}
if (!system.getUserConfig()->network.DHCP) { if (!system.getUserConfig()->network.DHCP) {
WiFi.config(system.getUserConfig()->network.staticIP, system.getUserConfig()->network.gateway, system.getUserConfig()->network.subnet, system.getUserConfig()->network.dns1, system.getUserConfig()->network.dns2); WiFi.config(system.getUserConfig()->network.static_.ip, system.getUserConfig()->network.static_.gateway, system.getUserConfig()->network.static_.subnet, system.getUserConfig()->network.static_.dns1, system.getUserConfig()->network.static_.dns2);
} }
for (Configuration::Wifi::AP ap : system.getUserConfig()->wifi.APs) { for (Configuration::Wifi::AP ap : system.getUserConfig()->wifi.APs) {

Wyświetl plik

@ -8,14 +8,25 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen
if (data.containsKey("callsign")) if (data.containsKey("callsign"))
conf.callsign = data["callsign"].as<String>(); conf.callsign = data["callsign"].as<String>();
if (data.containsKey("network") && data["network"].containsKey("DHCP")) { if (data.containsKey("network")) {
conf.network.hostname = data["network"]["hostname"].as<String>(); conf.network.DHCP = data["network"]["DHCP"] | false;
conf.network.DHCP = data["network"]["DHCP"]; if (data["network"].containsKey("static")) {
conf.network.staticIP.fromString(data["network"]["staticIP"].as<String>()); if (data["network"]["static"].containsKey("ip"))
conf.network.subnet.fromString(data["network"]["subnet"].as<String>()); conf.network.static_.ip.fromString(data["network"]["static"]["ip"].as<String>());
conf.network.gateway.fromString(data["network"]["gateway"].as<String>()); if (data["network"]["static"].containsKey("subnet"))
conf.network.dns1.fromString(data["network"]["dns1"].as<String>()); conf.network.static_.subnet.fromString(data["network"]["static"]["subnet"].as<String>());
conf.network.dns2.fromString(data["network"]["dns2"].as<String>()); if (data["network"]["static"].containsKey("gateway"))
conf.network.static_.gateway.fromString(data["network"]["static"]["gateway"].as<String>());
if (data["network"]["static"].containsKey("dns1"))
conf.network.static_.dns1.fromString(data["network"]["static"]["dns1"].as<String>());
if (data["network"]["static"].containsKey("dns2"))
conf.network.static_.dns2.fromString(data["network"]["static"]["dns2"].as<String>());
}
if (data["network"].containsKey("hostname")) {
conf.network.hostname.overwrite = data["network"]["hostname"]["overwrite"] | false;
if (data["network"]["hostname"].containsKey("name"))
conf.network.hostname.name = data["network"]["hostname"]["name"].as<String>();
}
} }
conf.wifi.active = data["wifi"]["active"]; conf.wifi.active = data["wifi"]["active"];
@ -77,13 +88,14 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co
data["callsign"] = conf.callsign; data["callsign"] = conf.callsign;
if (!conf.network.DHCP) { if (!conf.network.DHCP) {
data["network"]["hostname"] = conf.network.hostname; data["network"]["DHCP"] = conf.network.DHCP;
data["network"]["DHCP"] = conf.network.DHCP; data["network"]["static"]["ip"] = conf.network.static_.ip.toString();
data["network"]["staticIP"] = conf.network.staticIP.toString(); data["network"]["static"]["subnet"] = conf.network.static_.subnet.toString();
data["network"]["subnet"] = conf.network.subnet.toString(); data["network"]["static"]["gateway"] = conf.network.static_.gateway.toString();
data["network"]["gateway"] = conf.network.gateway.toString(); data["network"]["static"]["dns1"] = conf.network.static_.dns1.toString();
data["network"]["dns1"] = conf.network.dns1.toString(); data["network"]["static"]["dns2"] = conf.network.static_.dns2.toString();
data["network"]["dns2"] = conf.network.dns2.toString(); data["network"]["hostname"]["overwrite"] = conf.network.hostname.overwrite;
data["network"]["hostname"]["name"] = conf.network.hostname.name;
} }
data["wifi"]["active"] = conf.wifi.active; data["wifi"]["active"] = conf.wifi.active;

Wyświetl plik

@ -6,18 +6,29 @@
class Configuration { class Configuration {
public: public:
class Static {
public:
IPAddress ip;
IPAddress subnet;
IPAddress gateway;
IPAddress dns1;
IPAddress dns2;
};
class Hostname {
public:
bool overwrite;
String name;
};
class Network { class Network {
public: public:
Network() : DHCP(true) { Network() : DHCP(true) {
} }
String hostname; bool DHCP;
bool DHCP; Static static_;
IPAddress staticIP; Hostname hostname;
IPAddress subnet;
IPAddress gateway;
IPAddress dns1;
IPAddress dns2;
}; };
class Wifi { class Wifi {