mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-04-05 13:55:01 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c0d5fcc09 | ||
|
|
69d8fa9254 |
@@ -24,6 +24,7 @@ bool AmsConfiguration::getWiFiConfig(WiFiConfig& config) {
|
|||||||
EEPROM.begin(EEPROM_SIZE);
|
EEPROM.begin(EEPROM_SIZE);
|
||||||
EEPROM.get(CONFIG_WIFI_START, config);
|
EEPROM.get(CONFIG_WIFI_START, config);
|
||||||
EEPROM.end();
|
EEPROM.end();
|
||||||
|
if(config.sleep > 2) config.sleep = 1;
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
clearWifi(config);
|
clearWifi(config);
|
||||||
@@ -33,6 +34,7 @@ bool AmsConfiguration::getWiFiConfig(WiFiConfig& config) {
|
|||||||
|
|
||||||
bool AmsConfiguration::setWiFiConfig(WiFiConfig& config) {
|
bool AmsConfiguration::setWiFiConfig(WiFiConfig& config) {
|
||||||
WiFiConfig existing;
|
WiFiConfig existing;
|
||||||
|
if(config.sleep > 2) config.sleep = 1;
|
||||||
if(getWiFiConfig(existing)) {
|
if(getWiFiConfig(existing)) {
|
||||||
wifiChanged |= strcmp(config.ssid, existing.ssid) != 0;
|
wifiChanged |= strcmp(config.ssid, existing.ssid) != 0;
|
||||||
wifiChanged |= strcmp(config.psk, existing.psk) != 0;
|
wifiChanged |= strcmp(config.psk, existing.psk) != 0;
|
||||||
@@ -45,6 +47,7 @@ bool AmsConfiguration::setWiFiConfig(WiFiConfig& config) {
|
|||||||
}
|
}
|
||||||
wifiChanged |= strcmp(config.hostname, existing.hostname) != 0;
|
wifiChanged |= strcmp(config.hostname, existing.hostname) != 0;
|
||||||
wifiChanged |= config.power != existing.power;
|
wifiChanged |= config.power != existing.power;
|
||||||
|
wifiChanged |= config.sleep != existing.sleep;
|
||||||
} else {
|
} else {
|
||||||
wifiChanged = true;
|
wifiChanged = true;
|
||||||
}
|
}
|
||||||
@@ -70,6 +73,7 @@ void AmsConfiguration::clearWifi(WiFiConfig& config) {
|
|||||||
#endif
|
#endif
|
||||||
strcpy(config.hostname, (String("ams-") + String(chipId, HEX)).c_str());
|
strcpy(config.hostname, (String("ams-") + String(chipId, HEX)).c_str());
|
||||||
config.mdns = true;
|
config.mdns = true;
|
||||||
|
config.sleep = 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AmsConfiguration::clearWifiIp(WiFiConfig& config) {
|
void AmsConfiguration::clearWifiIp(WiFiConfig& config) {
|
||||||
|
|||||||
@@ -54,7 +54,8 @@ struct WiFiConfig {
|
|||||||
char hostname[32];
|
char hostname[32];
|
||||||
bool mdns;
|
bool mdns;
|
||||||
uint8_t power;
|
uint8_t power;
|
||||||
}; // 210
|
uint8_t sleep;
|
||||||
|
}; // 211
|
||||||
|
|
||||||
struct MqttConfig86 {
|
struct MqttConfig86 {
|
||||||
char host[128];
|
char host[128];
|
||||||
|
|||||||
@@ -1054,7 +1054,6 @@ void WiFi_connect() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
WiFi.mode(WIFI_STA);
|
WiFi.mode(WIFI_STA);
|
||||||
WiFi.setSleep(WIFI_PS_MAX_MODEM);
|
|
||||||
#if defined(ESP32)
|
#if defined(ESP32)
|
||||||
if(wifi.power >= 195)
|
if(wifi.power >= 195)
|
||||||
WiFi.setTxPower(WIFI_POWER_19_5dBm);
|
WiFi.setTxPower(WIFI_POWER_19_5dBm);
|
||||||
@@ -1115,6 +1114,9 @@ void WiFi_connect() {
|
|||||||
WiFi.setAutoReconnect(true);
|
WiFi.setAutoReconnect(true);
|
||||||
WiFi.persistent(true);
|
WiFi.persistent(true);
|
||||||
if(WiFi.begin(wifi.ssid, wifi.psk)) {
|
if(WiFi.begin(wifi.ssid, wifi.psk)) {
|
||||||
|
if(wifi.sleep <= 2) {
|
||||||
|
WiFi.setSleep(wifi.sleep);
|
||||||
|
}
|
||||||
yield();
|
yield();
|
||||||
} else {
|
} else {
|
||||||
if (Debug.isActive(RemoteDebug::ERROR)) debugI("Unable to start WiFi");
|
if (Debug.isActive(RemoteDebug::ERROR)) debugI("Unable to start WiFi");
|
||||||
|
|||||||
@@ -444,6 +444,9 @@ void AmsWebServer::configWifiHtml() {
|
|||||||
html.replace(F("{h}"), wifi.hostname);
|
html.replace(F("{h}"), wifi.hostname);
|
||||||
html.replace(F("{m}"), wifi.mdns ? F("checked") : F(""));
|
html.replace(F("{m}"), wifi.mdns ? F("checked") : F(""));
|
||||||
html.replace(F("{w}"), String(wifi.power / 10.0, 1));
|
html.replace(F("{w}"), String(wifi.power / 10.0, 1));
|
||||||
|
html.replace(F("{z0}"), wifi.sleep == 0 ? "selected" : "");
|
||||||
|
html.replace(F("{z1}"), wifi.sleep == 1 ? "selected" : "");
|
||||||
|
html.replace(F("{z2}"), wifi.sleep == 2 ? "selected" : "");
|
||||||
#if defined(ESP32)
|
#if defined(ESP32)
|
||||||
html.replace(F("{wm}"), "19.5");
|
html.replace(F("{wm}"), "19.5");
|
||||||
#elif defined(ESP8266)
|
#elif defined(ESP8266)
|
||||||
@@ -1012,9 +1015,11 @@ void AmsWebServer::handleSetup() {
|
|||||||
|
|
||||||
DebugConfig debugConfig;
|
DebugConfig debugConfig;
|
||||||
config->getDebugConfig(debugConfig);
|
config->getDebugConfig(debugConfig);
|
||||||
|
|
||||||
config->clear();
|
config->clear();
|
||||||
|
|
||||||
|
WiFiConfig wifi;
|
||||||
|
config->clearWifi(wifi);
|
||||||
|
|
||||||
switch(sys.boardType) {
|
switch(sys.boardType) {
|
||||||
case 0: // roarfred
|
case 0: // roarfred
|
||||||
gpioConfig->hanPin = 3;
|
gpioConfig->hanPin = 3;
|
||||||
@@ -1039,6 +1044,7 @@ void AmsWebServer::handleSetup() {
|
|||||||
gpioConfig->ledInverted = true;
|
gpioConfig->ledInverted = true;
|
||||||
gpioConfig->tempSensorPin = 5;
|
gpioConfig->tempSensorPin = 5;
|
||||||
gpioConfig->vccBootLimit = 33;
|
gpioConfig->vccBootLimit = 33;
|
||||||
|
wifi.sleep = 1;
|
||||||
break;
|
break;
|
||||||
case 3: // Pow UART0
|
case 3: // Pow UART0
|
||||||
gpioConfig->hanPin = 3;
|
gpioConfig->hanPin = 3;
|
||||||
@@ -1048,6 +1054,7 @@ void AmsWebServer::handleSetup() {
|
|||||||
gpioConfig->ledPinRed = 13;
|
gpioConfig->ledPinRed = 13;
|
||||||
gpioConfig->ledPinGreen = 14;
|
gpioConfig->ledPinGreen = 14;
|
||||||
gpioConfig->ledRgbInverted = true;
|
gpioConfig->ledRgbInverted = true;
|
||||||
|
wifi.sleep = 1;
|
||||||
break;
|
break;
|
||||||
case 4: // Pow GPIO12
|
case 4: // Pow GPIO12
|
||||||
gpioConfig->hanPin = 12;
|
gpioConfig->hanPin = 12;
|
||||||
@@ -1057,6 +1064,7 @@ void AmsWebServer::handleSetup() {
|
|||||||
gpioConfig->ledPinRed = 13;
|
gpioConfig->ledPinRed = 13;
|
||||||
gpioConfig->ledPinGreen = 14;
|
gpioConfig->ledPinGreen = 14;
|
||||||
gpioConfig->ledRgbInverted = true;
|
gpioConfig->ledRgbInverted = true;
|
||||||
|
wifi.sleep = 1;
|
||||||
break;
|
break;
|
||||||
case 5: // Pow-K+ UART2
|
case 5: // Pow-K+ UART2
|
||||||
gpioConfig->hanPin = 16;
|
gpioConfig->hanPin = 16;
|
||||||
@@ -1067,6 +1075,7 @@ void AmsWebServer::handleSetup() {
|
|||||||
gpioConfig->vccPin = 10;
|
gpioConfig->vccPin = 10;
|
||||||
gpioConfig->vccResistorGnd = 22;
|
gpioConfig->vccResistorGnd = 22;
|
||||||
gpioConfig->vccResistorVcc = 33;
|
gpioConfig->vccResistorVcc = 33;
|
||||||
|
wifi.sleep = 1;
|
||||||
break;
|
break;
|
||||||
case 6: // Pow-P1
|
case 6: // Pow-P1
|
||||||
gpioConfig->hanPin = 16;
|
gpioConfig->hanPin = 16;
|
||||||
@@ -1087,6 +1096,7 @@ void AmsWebServer::handleSetup() {
|
|||||||
gpioConfig->vccPin = 10;
|
gpioConfig->vccPin = 10;
|
||||||
gpioConfig->vccResistorGnd = 22;
|
gpioConfig->vccResistorGnd = 22;
|
||||||
gpioConfig->vccResistorVcc = 33;
|
gpioConfig->vccResistorVcc = 33;
|
||||||
|
wifi.sleep = 2;
|
||||||
break;
|
break;
|
||||||
case 101: // D1
|
case 101: // D1
|
||||||
gpioConfig->hanPin = 5;
|
gpioConfig->hanPin = 5;
|
||||||
@@ -1123,18 +1133,17 @@ void AmsWebServer::handleSetup() {
|
|||||||
break;
|
break;
|
||||||
case 50: // S2
|
case 50: // S2
|
||||||
gpioConfig->hanPin = 18;
|
gpioConfig->hanPin = 18;
|
||||||
|
wifi.sleep = 1;
|
||||||
break;
|
break;
|
||||||
case 51: // S2-mini
|
case 51: // S2-mini
|
||||||
gpioConfig->hanPin = 18;
|
gpioConfig->hanPin = 18;
|
||||||
gpioConfig->ledPin = 15;
|
gpioConfig->ledPin = 15;
|
||||||
gpioConfig->ledInverted = false;
|
gpioConfig->ledInverted = false;
|
||||||
gpioConfig->apPin = 0;
|
gpioConfig->apPin = 0;
|
||||||
|
wifi.sleep = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
WiFiConfig wifi;
|
|
||||||
config->clearWifi(wifi);
|
|
||||||
|
|
||||||
strcpy(wifi.ssid, server.arg(F("wifiSsid")).c_str());
|
strcpy(wifi.ssid, server.arg(F("wifiSsid")).c_str());
|
||||||
strcpy(wifi.psk, server.arg(F("wifiPassword")).c_str());
|
strcpy(wifi.psk, server.arg(F("wifiPassword")).c_str());
|
||||||
|
|
||||||
@@ -1256,6 +1265,7 @@ void AmsWebServer::handleSave() {
|
|||||||
strcpy(wifi.hostname, server.arg(F("h")).c_str());
|
strcpy(wifi.hostname, server.arg(F("h")).c_str());
|
||||||
}
|
}
|
||||||
wifi.power = server.arg(F("w")).toFloat() * 10;
|
wifi.power = server.arg(F("w")).toFloat() * 10;
|
||||||
|
wifi.sleep = server.arg(F("z")).toInt();
|
||||||
config->setWiFiConfig(wifi);
|
config->setWiFiConfig(wifi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" id="i">
|
<div class="row" id="i">
|
||||||
<div class="col-xl-3 col-lg-4 form-group">
|
<div class="col-xl-3 col-lg-4 col-md-6 form-group">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">IP</span>
|
<span class="input-group-text">IP</span>
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<input type="text" name="i" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{i}"/>
|
<input type="text" name="i" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{i}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xl-3 col-lg-4 form-group">
|
<div class="col-xl-3 col-lg-4 col-md-6 form-group">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">Netmask</span>
|
<span class="input-group-text">Netmask</span>
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
<input type="text" name="sn" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{sn}"/>
|
<input type="text" name="sn" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{sn}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xl-3 col-lg-4 form-group">
|
<div class="col-xl-3 col-lg-4 col-md-6 form-group">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">Gateway</span>
|
<span class="input-group-text">Gateway</span>
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
<input type="text" name="g" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{g}"/>
|
<input type="text" name="g" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{g}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xl-4 col-lg-5 form-group">
|
<div class="col-xl-4 col-lg-5 col-md-6 form-group">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">DNS 1</span>
|
<span class="input-group-text">DNS 1</span>
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
<input type="text" name="d1" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{d1}"/>
|
<input type="text" name="d1" class="form-control sip" pattern="\d?\d?\d.\d?\d?\d.\d?\d?\d.\d?\d?\d" value="{d1}"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xl-4 col-lg-5 form-group">
|
<div class="col-xl-4 col-lg-5 col-md-6 form-group">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">DNS 2</span>
|
<span class="input-group-text">DNS 2</span>
|
||||||
@@ -89,7 +89,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
<div class="col-lg-3 col-md-4 col-sm-6 form-group">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">Power saving</span>
|
||||||
|
</div>
|
||||||
|
<select name="z" class="form-control">
|
||||||
|
<option value="255">Default</option>
|
||||||
|
<option value="0" {z0}>Off</option>
|
||||||
|
<option value="1" {z1}>Minimum</option>
|
||||||
|
<option value="2" {z2}>Maximum</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="row form-group">
|
<div class="row form-group">
|
||||||
|
|||||||
Reference in New Issue
Block a user