Adds simple data sync

This commit is contained in:
Rune Harlyk
2024-03-30 01:29:08 +01:00
committed by Rune Harlyk
parent 259bc0b5eb
commit 0fb2387e30
8 changed files with 73 additions and 40 deletions
+6 -8
View File
@@ -28,7 +28,8 @@ public:
static void read(ActuatorState &settings, JsonObject &root)
{
JsonArray array = root.createNestedArray("state");
root["type"] = "angles";
JsonArray array = root.createNestedArray("data");
for(int i = 0; i < 12; i++)
{
array.add(settings.state[i]);
@@ -37,26 +38,23 @@ public:
static StateUpdateResult update(JsonObject &root, ActuatorState &actuatorState)
{
Serial.print("New state array: [");
JsonArray array = root["state"];
if (root["type"] != "angles") return StateUpdateResult::UNCHANGED;
JsonArray array = root["data"];
bool changed = false;
for(int i = 0; i < 12; i++)
{
Serial.print(array[i].as<int16_t>());
Serial.print(", ");
if (actuatorState.state[i] != array[i].as<int16_t>())
{
actuatorState.state[i] = array[i];
changed = true;
}
}
Serial.println("]");
return changed ? StateUpdateResult::CHANGED : StateUpdateResult::UNCHANGED;
}
static void homeAssistRead(ActuatorState &settings, JsonObject &root)
{
JsonArray array = root.createNestedArray("state");
JsonArray array = root.createNestedArray("angles");
for(int i = 0; i < 12; i++)
{
array.add(settings.state[i]);
@@ -65,7 +63,7 @@ public:
static StateUpdateResult homeAssistUpdate(JsonObject &root, ActuatorState &actuatorState)
{
JsonArray array = root["state"];
JsonArray array = root["angles"];
if(array.size() != 12) return StateUpdateResult::ERROR;
bool changed = false;