Heap memory improvements

This commit is contained in:
Gunnar Skjold
2026-03-26 15:14:59 +01:00
parent 9609e9fb85
commit 048bd474e4
16 changed files with 135 additions and 113 deletions

View File

@@ -95,7 +95,9 @@ protected:
uint64_t lastList2 = 0;
uint8_t listType = 0, meterType = AmsTypeUnknown;
time_t packageTimestamp = 0;
String listId = "", meterId = "", meterModel = "";
char listId[32] = {};
char meterId[32] = {};
char meterModel[65] = {};
time_t meterTimestamp = 0;
uint32_t activeImportPower = 0, reactiveImportPower = 0, activeExportPower = 0, reactiveExportPower = 0;
float l1voltage = 0, l2voltage = 0, l3voltage = 0, l1current = 0, l2current = 0, l3current = 0;

View File

@@ -88,10 +88,10 @@ void AmsData::apply(AmsData& other) {
}
this->counterEstimated = false;
case 2:
this->listId = other.getListId();
this->meterId = other.getMeterId();
strncpy(this->listId, other.listId, sizeof(this->listId) - 1);
strncpy(this->meterId, other.meterId, sizeof(this->meterId) - 1);
this->meterType = other.getMeterType();
this->meterModel = other.getMeterModel();
strncpy(this->meterModel, other.meterModel, sizeof(this->meterModel) - 1);
this->reactiveImportPower = other.getReactiveImportPower();
this->reactiveExportPower = other.getReactiveExportPower();
this->l1current = other.getL1Current();
@@ -119,7 +119,7 @@ void AmsData::apply(OBIS_code_t obis, double value) {
if(obis.gr == 1) {
if(obis.sensor == 96) {
if(obis.tariff == 0) {
meterId = String((long) value, 10);
snprintf(meterId, sizeof(meterId), "%ld", (long) value);
return;
} else if(obis.tariff == 1) {
return;
@@ -278,11 +278,11 @@ uint8_t AmsData::getListType() {
}
String AmsData::getListId() {
return this->listId;
return String(this->listId);
}
String AmsData::getMeterId() {
return this->meterId;
return String(this->meterId);
}
uint8_t AmsData::getMeterType() {
@@ -290,7 +290,7 @@ uint8_t AmsData::getMeterType() {
}
String AmsData::getMeterModel() {
return this->meterModel;
return String(this->meterModel);
}
time_t AmsData::getMeterTimestamp() {