Adds more messages

This commit is contained in:
Rune Harlyk
2025-07-08 18:17:33 +02:00
parent 4766f47e7e
commit 0586775849
7 changed files with 114 additions and 5 deletions
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include <ArduinoJson.h>
#include <vector>
struct I2CScanMsg {
std::vector<uint8_t> addresses;
friend void toJson(JsonVariant v, I2CScanMsg const& c) {
JsonArray arr = v.to<JsonArray>();
for (uint8_t addr : c.addresses) arr.add(addr);
}
void fromJson(JsonVariantConst o) {
addresses.clear();
for (JsonVariantConst val : o.as<JsonArrayConst>()) addresses.push_back(val.as<uint8_t>());
}
};
+20
View File
@@ -0,0 +1,20 @@
#pragma once
#include <ArduinoJson.h>
struct MotionAnglesMsg {
float angles[12];
friend void toJson(JsonVariant v, MotionAnglesMsg const &m) {
JsonArray arr = v.to<JsonArray>();
for (int i = 0; i < 12; i++) {
arr.add(m.angles[i]);
}
}
void fromJson(JsonVariantConst o) {
JsonArrayConst arr = o.as<JsonArrayConst>();
for (int i = 0; i < 12 && i < arr.size(); i++) {
angles[i] = arr[i].as<float>();
}
}
};
+28
View File
@@ -0,0 +1,28 @@
#pragma once
#include <ArduinoJson.h>
struct MotionInputMsg {
float lx, ly, rx, ry, h, s, s1;
friend void toJson(JsonVariant v, MotionInputMsg const &m) {
JsonArray arr = v.to<JsonArray>();
arr.add(m.lx);
arr.add(m.ly);
arr.add(m.rx);
arr.add(m.ry);
arr.add(m.h);
arr.add(m.s);
arr.add(m.s1);
}
void fromJson(JsonVariantConst o) {
JsonArrayConst arr = o.as<JsonArrayConst>();
lx = arr[0].as<float>();
ly = arr[1].as<float>();
rx = arr[2].as<float>();
ry = arr[3].as<float>();
h = arr[4].as<float>();
s = arr[5].as<float>();
s1 = arr[6].as<float>();
}
};
+10
View File
@@ -0,0 +1,10 @@
#pragma once
#include <ArduinoJson.h>
struct MotionModeMsg {
int mode;
friend void toJson(JsonVariant v, MotionModeMsg const &m) { v.set(m.mode); }
void fromJson(JsonVariantConst o) { mode = o.as<int>(); }
};
@@ -0,0 +1,26 @@
#pragma once
#include <ArduinoJson.h>
struct MotionPositionMsg {
float omega, phi, psi, xm, ym, zm;
friend void toJson(JsonVariant v, MotionPositionMsg const &m) {
JsonArray arr = v.to<JsonArray>();
arr.add(m.omega);
arr.add(m.phi);
arr.add(m.psi);
arr.add(m.xm);
arr.add(m.ym);
arr.add(m.zm);
}
void fromJson(JsonVariantConst o) {
JsonArrayConst arr = o.as<JsonArrayConst>();
omega = arr[0].as<float>();
phi = arr[1].as<float>();
psi = arr[2].as<float>();
xm = arr[3].as<float>();
ym = arr[4].as<float>();
zm = arr[5].as<float>();
}
};
+9 -5
View File
@@ -1,5 +1,9 @@
#define TOPIC_LIST \
X(Imu, ImuMsg) \
X(Mode, ModeMsg) \
X(Command, CommandMsg) \
X(Servo, ServoMsg)\
#define TOPIC_LIST \
X(Imu, ImuMsg) \
X(Mode, ModeMsg) \
X(Command, CommandMsg) \
X(Servo, ServoMsg) \
X(MotionInput, MotionInputMsg) \
X(MotionAngles, MotionAnglesMsg) \
X(MotionPosition, MotionPositionMsg) \
X(MotionMode, MotionModeMsg)