optimize memory allocation for battery percentage template
This commit is contained in:
parent
57b9494c98
commit
3dc31ff585
@ -76,9 +76,11 @@ VoltageSensor* createVoltageSensor(const char* id) {
|
|||||||
return new VoltageSensor{id, "Battery voltage", "{{ value_json.sensor.diagnostic.voltage }}"};
|
return new VoltageSensor{id, "Battery voltage", "{{ value_json.sensor.diagnostic.voltage }}"};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define BATTERY_PERCENTAGE_TEMPLATE "{{ ((value_json.sensor.diagnostic.voltage|float-%.2f)|round(2)*100/%.2f)|int }}"
|
||||||
BatterySensor* createBatterySensor(const char* id, float min, float max) {
|
BatterySensor* createBatterySensor(const char* id, float min, float max) {
|
||||||
char* value_json = new char[128];
|
auto len = snprintf(nullptr, 0, BATTERY_PERCENTAGE_TEMPLATE, min, max - min) + 1;
|
||||||
snprintf(value_json, 128, "{{ ((value_json.sensor.diagnostic.voltage|float-%.2f)|round(2)*100/%.2f)|int }}", min, max - min);
|
char* value_json = new char[len];
|
||||||
|
snprintf(value_json, len, BATTERY_PERCENTAGE_TEMPLATE, min, max - min);
|
||||||
return new BatterySensor{id, "Battery level", value_json};
|
return new BatterySensor{id, "Battery level", value_json};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user