✨ Adds more messages
This commit is contained in:
@@ -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>());
|
||||
}
|
||||
};
|
||||
@@ -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>();
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -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>();
|
||||
}
|
||||
};
|
||||
@@ -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>();
|
||||
}
|
||||
};
|
||||
@@ -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)
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
#include "msgs/command_msg.hpp"
|
||||
#include "msgs/mode_msg.hpp"
|
||||
#include "msgs/servo_msg.hpp"
|
||||
#include "msgs/motion_input_msg.hpp"
|
||||
#include "msgs/motion_angles_msg.hpp"
|
||||
#include "msgs/motion_position_msg.hpp"
|
||||
#include "msgs/motion_mode_msg.hpp"
|
||||
#include "msgs/topics.def"
|
||||
|
||||
enum class Topic : uint8_t {
|
||||
|
||||
Reference in New Issue
Block a user