✨ 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 \
|
#define TOPIC_LIST \
|
||||||
X(Imu, ImuMsg) \
|
X(Imu, ImuMsg) \
|
||||||
X(Mode, ModeMsg) \
|
X(Mode, ModeMsg) \
|
||||||
X(Command, CommandMsg) \
|
X(Command, CommandMsg) \
|
||||||
X(Servo, ServoMsg)\
|
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/command_msg.hpp"
|
||||||
#include "msgs/mode_msg.hpp"
|
#include "msgs/mode_msg.hpp"
|
||||||
#include "msgs/servo_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"
|
#include "msgs/topics.def"
|
||||||
|
|
||||||
enum class Topic : uint8_t {
|
enum class Topic : uint8_t {
|
||||||
|
|||||||
Reference in New Issue
Block a user