Skip to content

Commit 27b499f

Browse files
committed
Battery enabled, setDefaults recursive
UI == - Array.svelte: showEditor not in $props Server ===== - Module.cpp: setDefaults recursive - Features.ini: battery enabled - pio.ini: set battery pin and voltage
1 parent bcd3abd commit 27b499f

File tree

8 files changed

+12568
-12569
lines changed

8 files changed

+12568
-12569
lines changed

features.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ build_flags =
66
-D FT_UPLOAD_FIRMWARE=1
77
-D FT_DOWNLOAD_FIRMWARE=1 ; requires FT_NTP=1
88
-D FT_SLEEP=1
9-
-D FT_BATTERY=0
9+
-D FT_BATTERY=1
1010
-D FT_ANALYTICS=1
1111
-D FT_FILEMANAGER=1
1212
-D FT_LIVESCRIPT=1

interface/src/lib/components/custom/Array.svelte

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,20 +26,22 @@
2626
import Array from '$lib/components/custom/Array.svelte';
2727
import ArrayLight from '$lib/components/custom/ArrayLight.svelte';
2828
29-
let { property, data, definition, showEditor = false, onChange, changeOnInput, value1=$bindable(), value2 } = $props();
29+
let { property, data, definition, onChange, changeOnInput, value1=$bindable(), value2 } = $props();
3030
3131
let dataEditable: any = $state({});
3232
3333
let propertyEditable: string = $state("");
3434
35+
let showEditor: boolean = $state(false);
36+
3537
//if no records added yet, add an empty array
3638
if (data[property.name] == undefined) {
3739
data[property.name] = [];
3840
}
3941
4042
let lastIndex: number = -1;
4143
42-
console.log("Array property", property, data, definition, showEditor, changeOnInput, data[property.name], value1, value2);
44+
console.log("Array property", property, data, definition, changeOnInput, data[property.name], value1, value2);
4345
for (let i = 0; i < definition.length; i++) {
4446
// console.log("addItem def", propertyName, property)
4547
if (property.name == definition[i].name) {

interface/src/routes/system/status/SystemStatus.svelte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@
206206
</div>
207207
</div>
208208
{/if}
209-
209+
210210
<div class="rounded-box bg-base-100 flex items-center space-x-3 px-4 py-2">
211211
<div class="mask mask-hexagon bg-primary h-auto w-10 flex-none">
212212
<Heap class="text-primary-content h-auto w-full scale-75" />

lib/framework/WWWData.h

Lines changed: 12528 additions & 12537 deletions
Large diffs are not rendered by default.

platformio.ini

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ data_dir = data
1414
extra_configs =
1515
factory_settings.ini
1616
features.ini
17-
default_envs = esp32-s3-devkitc-1
17+
; default_envs = esp32-s3-devkitc-1
1818

1919
[custom]
2020
build_flags =
@@ -31,7 +31,7 @@ build_flags =
3131
${features.build_flags}
3232
-D BUILD_TARGET=\"$PIOENV\"
3333
-D APP_NAME=\"MoonBase\" ; Must only contain characters from [a-zA-Z0-9-_] as this is converted into a filename
34-
-D APP_VERSION=\"0.5.4\" ; semver compatible version string
34+
-D APP_VERSION=\"0.5.5\" ; semver compatible version string
3535

3636
; Move all networking stuff to the protocol core 0 and leave business logic on application core 1
3737
-D ESP32SVELTEKIT_RUNNING_CORE=0
@@ -61,8 +61,8 @@ build_flags =
6161
; -D TELEPLOT_TASKS
6262

6363
; Uncomment and set right values if FT_BATTERY=1 and battery voltage is on pin
64-
; -D BATTERY_PIN=35
65-
; -D BATTERY_MV=4200
64+
-D BATTERY_PIN=35
65+
-D BATTERY_MV=4200
6666

6767
; Uncomment to use JSON instead of MessagePack for event messages. Default is MessagePack.
6868
-D EVENT_USE_JSON=1

src/custom/Module.cpp

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,24 @@
1111

1212
#include "Module.h"
1313

14-
void ModuleState::setupData() {
14+
void setDefaults(JsonObject root, JsonArray definition) {
15+
for (JsonObject property: definition) {
16+
if (property["type"] != "array") {
17+
root[property["name"]] = property["default"];
18+
} else {
19+
JsonArray array = root[property["name"]].to<JsonArray>();
20+
//loop over detail propertys (recursive)
21+
JsonObject object = array.add<JsonObject>(); // add one row
22+
setDefaults(object, property["n"].as<JsonArray>());
23+
}
24+
}
25+
}
1526

16-
ESP_LOGD("", "ModuleState::setupData size %d", data.size());
27+
void ModuleState::setupData() {
1728

1829
//only if no file ...
1930
if (data.size() == 0) {
31+
ESP_LOGD("", "ModuleState::setupData size %d", data.size());
2032
JsonDocument definition;
2133
if (setupDefinition)
2234
setupDefinition(definition.to<JsonArray>());
@@ -25,32 +37,24 @@ void ModuleState::setupData() {
2537

2638
char buffer[256];
2739
serializeJson(definition, buffer, sizeof(buffer));
28-
ESP_LOGD("", "setupDefinition %s", buffer);
40+
// ESP_LOGD("", "setupDefinition %s", buffer);
2941

3042
JsonObject root = data.to<JsonObject>();
3143

32-
//create doc based on definition... only top level properties
33-
for (JsonObject property: definition.as<JsonArray>()) {
34-
if (property["type"] != "array") {
35-
root[property["name"]] = property["default"];
36-
} else {
37-
root[property["name"]].to<JsonArray>();
38-
//loop over detail propertys (recursive)
39-
}
40-
}
44+
setDefaults(root, definition.as<JsonArray>());
4145

4246
// char buffer[256];
43-
serializeJson(root, buffer, sizeof(buffer));
44-
ESP_LOGD("", "setupData %s", buffer);
47+
// serializeJson(root, buffer, sizeof(buffer));
48+
// ESP_LOGD("", "setupData %s", buffer);
4549
}
4650

4751
//to do: check if the file matches the definition
4852
}
4953

5054
void ModuleState::read(ModuleState &state, JsonObject &root)
5155
{
52-
TaskHandle_t httpdTask = xTaskGetHandle("httpd");
53-
ESP_LOGI("", "Module::read task %s %d", pcTaskGetName(httpdTask), uxTaskGetStackHighWaterMark(httpdTask));
56+
TaskHandle_t currentTask = xTaskGetCurrentTaskHandle();
57+
ESP_LOGI("", "Module::read task %s %d", pcTaskGetName(currentTask), uxTaskGetStackHighWaterMark(currentTask));
5458

5559
root.set(state.data.as<JsonObject>()); //copy
5660

@@ -90,8 +94,8 @@ StateUpdateResult ModuleState::update(JsonObject &root, ModuleState &state)
9094
{
9195

9296
if (root.size() != 0) { // in case of empty file
93-
TaskHandle_t httpdTask = xTaskGetHandle("httpd");
94-
ESP_LOGI("", "Module::update task %s %d", pcTaskGetName(httpdTask), uxTaskGetStackHighWaterMark(httpdTask));
97+
TaskHandle_t currentTask = xTaskGetCurrentTaskHandle();
98+
ESP_LOGI("", "Module::update task %s %d", pcTaskGetName(currentTask), uxTaskGetStackHighWaterMark(currentTask));
9599
state.updatedItems.clear();
96100

97101
//check which propertys have updated

src/custom/ModuleAnimations.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class ModuleAnimations : public Module
7979
}
8080

8181
void setupDefinition(JsonArray root) override {
82+
ESP_LOGD("", "");
8283
JsonObject property;
8384
JsonArray details;
8485
JsonArray values;
@@ -129,9 +130,9 @@ class ModuleAnimations : public Module
129130
property = details.add<JsonObject>(); property["name"] = "type"; property["type"] = "text"; property["default"] = "map";
130131
}
131132

132-
char buffer[1024];
133-
serializeJson(root, buffer, sizeof(buffer));
134-
ESP_LOGD("", "definition %s", buffer);
133+
// char buffer[1024];
134+
// serializeJson(root, buffer, sizeof(buffer));
135+
// ESP_LOGD("", "definition %s", buffer);
135136
}
136137

137138
void onUpdate(UpdatedItem updatedItem) override

src/custom/ModuleDemo.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ ModuleDemo(PsychicHttpServer *server,
2828
}
2929

3030
void setupDefinition(JsonArray root) override{
31+
ESP_LOGD("", "");
3132
JsonObject property;
3233
JsonArray details;
3334
JsonArray values;
@@ -58,9 +59,9 @@ void setupDefinition(JsonArray root) override{
5859

5960
// {"hostName":"MoonLight","connectionMode":"Priority","savedNetworks":[],"invoices":[{"number":1000,"name":"ewowi","date":"2025-03-21", "lines":[{"service":"con", "price":124}]}]}
6061

61-
char buffer[256];
62-
serializeJson(root, buffer, sizeof(buffer));
63-
ESP_LOGD("", "definition %s", buffer);
62+
// char buffer[256];
63+
// serializeJson(root, buffer, sizeof(buffer));
64+
// ESP_LOGD("", "definition %s", buffer);
6465
}
6566

6667
void onUpdate(UpdatedItem updatedItem) override

0 commit comments

Comments
 (0)