document batching updates and restore bat_v in batches
This commit is contained in:
@@ -199,6 +199,11 @@ bool meterBatchToJson(const MeterData *samples, size_t count, uint16_t batch_id,
|
||||
if (last_error != FaultType::None) {
|
||||
doc["err_last"] = static_cast<uint8_t>(last_error);
|
||||
}
|
||||
if (!isnan(samples[count - 1].battery_voltage_v)) {
|
||||
char bat_buf[16];
|
||||
format_float_2(bat_buf, sizeof(bat_buf), samples[count - 1].battery_voltage_v);
|
||||
doc["bat_v"] = serialized(bat_buf);
|
||||
}
|
||||
|
||||
JsonArray energy = doc.createNestedArray("energy_wh");
|
||||
JsonArray p_w = doc.createNestedArray("p_w");
|
||||
@@ -235,6 +240,7 @@ bool jsonToMeterBatch(const String &json, MeterData *out_samples, size_t max_cou
|
||||
uint32_t err_m = doc["err_m"] | 0;
|
||||
uint32_t err_tx = doc["err_tx"] | 0;
|
||||
FaultType last_error = static_cast<FaultType>(doc["err_last"] | 0);
|
||||
float bat_v = doc["bat_v"] | NAN;
|
||||
|
||||
if (!doc["schema"].isNull()) {
|
||||
if ((doc["schema"] | 0) != 1) {
|
||||
@@ -284,8 +290,12 @@ bool jsonToMeterBatch(const String &json, MeterData *out_samples, size_t max_cou
|
||||
data.phase_power_w[0] = static_cast<float>(p1_w[idx] | 0);
|
||||
data.phase_power_w[1] = static_cast<float>(p2_w[idx] | 0);
|
||||
data.phase_power_w[2] = static_cast<float>(p3_w[idx] | 0);
|
||||
data.battery_voltage_v = NAN;
|
||||
data.battery_percent = 0;
|
||||
data.battery_voltage_v = bat_v;
|
||||
if (!isnan(bat_v)) {
|
||||
data.battery_percent = battery_percent_from_voltage(bat_v);
|
||||
} else {
|
||||
data.battery_percent = 0;
|
||||
}
|
||||
data.valid = true;
|
||||
data.link_valid = false;
|
||||
data.link_rssi_dbm = 0;
|
||||
|
||||
Reference in New Issue
Block a user