mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-02-16 04:43:53 +00:00
Merge branch 'main' into dev-v2.3
This commit is contained in:
@@ -56,10 +56,19 @@
|
||||
#include "esp32s3/rom/rtc.h"
|
||||
#endif
|
||||
|
||||
AmsWebServer::AmsWebServer(uint8_t* buf, RemoteDebug* Debug, HwTools* hw) {
|
||||
AmsWebServer::AmsWebServer(uint8_t* buf, RemoteDebug* Debug, HwTools* hw, ResetDataContainer* rdc) {
|
||||
this->debugger = Debug;
|
||||
this->hw = hw;
|
||||
this->buf = (char*) buf;
|
||||
this->rdc = rdc;
|
||||
if(rdc->magic != 0x4a) {
|
||||
rdc->last_cause = 0;
|
||||
rdc->cause = 0;
|
||||
rdc->magic = 0x4a;
|
||||
} else {
|
||||
rdc->last_cause = rdc->cause;
|
||||
rdc->cause = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void AmsWebServer::setup(AmsConfiguration* config, GpioConfig* gpioConfig, AmsData* meterState, AmsDataStorage* ds, EnergyAccounting* ea, RealtimePlot* rtp) {
|
||||
@@ -338,7 +347,7 @@ void AmsWebServer::sysinfoJson() {
|
||||
webConfig.security,
|
||||
#if defined(ESP32)
|
||||
rtc_get_reset_reason(0),
|
||||
0,
|
||||
rdc->last_cause,
|
||||
#else
|
||||
ESP.getResetInfoPtr()->reason,
|
||||
ESP.getResetInfoPtr()->exccause,
|
||||
@@ -373,6 +382,7 @@ void AmsWebServer::sysinfoJson() {
|
||||
if(debugger->isActive(RemoteDebug::INFO)) debugger->printf_P(PSTR("Rebooting\n"));
|
||||
debugger->flush();
|
||||
delay(1000);
|
||||
rdc->cause = 1;
|
||||
ESP.restart();
|
||||
performRestart = false;
|
||||
}
|
||||
@@ -471,6 +481,7 @@ void AmsWebServer::dataJson() {
|
||||
meterState->getL3Voltage(),
|
||||
meterState->getL1Current(),
|
||||
meterState->getL2Current(),
|
||||
meterState->isL2currentEstimated() ? "true" : "false",
|
||||
meterState->getL3Current(),
|
||||
meterState->getPowerFactor(),
|
||||
meterState->getL1PowerFactor(),
|
||||
@@ -807,9 +818,20 @@ void AmsWebServer::configurationJson() {
|
||||
|
||||
if(!checkSecurity(1))
|
||||
return;
|
||||
|
||||
|
||||
MeterConfig meterConfig;
|
||||
config->getMeterConfig(meterConfig);
|
||||
|
||||
bool multEnable = false;
|
||||
if(meterConfig.wattageMultiplier != 1.0 && meterConfig.wattageMultiplier != 0.0)
|
||||
multEnable = true;
|
||||
if(meterConfig.voltageMultiplier != 1.0 && meterConfig.voltageMultiplier != 0.0)
|
||||
multEnable = true;
|
||||
if(meterConfig.amperageMultiplier != 1.0 && meterConfig.amperageMultiplier != 0.0)
|
||||
multEnable = true;
|
||||
if(meterConfig.accumulatedMultiplier != 1.0 && meterConfig.accumulatedMultiplier != 0.0)
|
||||
multEnable = true;
|
||||
|
||||
SystemConfig sysConfig;
|
||||
config->getSystemConfig(sysConfig);
|
||||
@@ -882,11 +904,11 @@ void AmsWebServer::configurationJson() {
|
||||
encen ? "true" : "false",
|
||||
toHex(meterConfig.encryptionKey, 16).c_str(),
|
||||
toHex(meterConfig.authenticationKey, 16).c_str(),
|
||||
meterConfig.wattageMultiplier > 1 || meterConfig.voltageMultiplier > 1 || meterConfig.amperageMultiplier > 1 || meterConfig.accumulatedMultiplier > 1 ? "true" : "false",
|
||||
meterConfig.wattageMultiplier / 1000.0,
|
||||
meterConfig.voltageMultiplier / 1000.0,
|
||||
meterConfig.amperageMultiplier / 1000.0,
|
||||
meterConfig.accumulatedMultiplier / 1000.0
|
||||
multEnable ? "true" : "false",
|
||||
meterConfig.wattageMultiplier == 0.0 ? 1.0 : meterConfig.wattageMultiplier / 1000.0,
|
||||
meterConfig.voltageMultiplier == 0.0 ? 1.0 : meterConfig.voltageMultiplier / 1000.0,
|
||||
meterConfig.amperageMultiplier == 0.0 ? 1.0 : meterConfig.amperageMultiplier / 1000.0,
|
||||
meterConfig.accumulatedMultiplier == 0.0 ? 1.0 : meterConfig.accumulatedMultiplier / 1000.0
|
||||
);
|
||||
server.sendContent(buf);
|
||||
|
||||
@@ -1011,7 +1033,7 @@ void AmsWebServer::configurationJson() {
|
||||
cloud.enabled ? "true" : "false",
|
||||
cloud.clientId,
|
||||
strlen(cloud.clientSecret) > 0 ? "***" : "",
|
||||
#if defined(ENERGY_SPEEDOMETER_PASS)
|
||||
#if defined(ESP32) && defined(ENERGY_SPEEDOMETER_PASS)
|
||||
sysConfig.energyspeedometer == 7 ? "true" : "false"
|
||||
#else
|
||||
"null"
|
||||
@@ -1607,8 +1629,9 @@ void AmsWebServer::handleSave() {
|
||||
if(debugger->isActive(RemoteDebug::INFO)) debugger->printf_P(PSTR("Rebooting\n"));
|
||||
debugger->flush();
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
rdc->cause = 2;
|
||||
performRestart = false;
|
||||
ESP.restart();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1625,9 +1648,11 @@ void AmsWebServer::reboot() {
|
||||
|
||||
if(debugger->isActive(RemoteDebug::INFO)) debugger->printf_P(PSTR("Rebooting\n"));
|
||||
debugger->flush();
|
||||
delay(1000);
|
||||
ESP.restart();
|
||||
delay(1000); rdc->cause = 3;
|
||||
|
||||
rdc->cause = 3;
|
||||
performRestart = false;
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
void AmsWebServer::upgrade() {
|
||||
@@ -1706,6 +1731,7 @@ void AmsWebServer::upgradeFromUrl(String url, String nextVersion) {
|
||||
case HTTP_UPDATE_OK:
|
||||
debugger->printf_P(PSTR("Update OK\n"));
|
||||
debugger->flush();
|
||||
rdc->cause = 4;
|
||||
ESP.restart();
|
||||
break;
|
||||
}
|
||||
@@ -1883,6 +1909,7 @@ void AmsWebServer::factoryResetPost() {
|
||||
if(debugger->isActive(RemoteDebug::INFO)) debugger->printf_P(PSTR("Rebooting\n"));
|
||||
debugger->flush();
|
||||
delay(1000);
|
||||
rdc->cause = 5;
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user