♻️ Handle incomming messages
This commit is contained in:
@@ -6,84 +6,14 @@
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <communication/proto_helpers.h>
|
#include <communication/proto_helpers.h>
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
struct MessageTraits;
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_IMUData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_imu_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_IMUData& data) {
|
|
||||||
msg.message.imu = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_ModeData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_mode_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_ModeData& data) {
|
|
||||||
msg.message.mode = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_AnalyticsData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_analytics_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_AnalyticsData& data) {
|
|
||||||
msg.message.analytics = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_AnglesData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_angles_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_AnglesData& data) {
|
|
||||||
msg.message.angles = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_RSSIData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_rssi_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_RSSIData& data) {
|
|
||||||
msg.message.rssi = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_KinematicData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_kinematic_data_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_KinematicData& data) {
|
|
||||||
msg.message.kinematic_data = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_IMUCalibrateData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_imu_calibrate_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_IMUCalibrateData& data) {
|
|
||||||
msg.message.imu_calibrate = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_I2CScanData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_i2c_scan_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_I2CScanData& data) {
|
|
||||||
msg.message.i2c_scan = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
template <>
|
|
||||||
struct MessageTraits<socket_message_PeripheralSettingsData> {
|
|
||||||
static constexpr pb_size_t tag = socket_message_WebsocketMessage_peripheral_settings_tag;
|
|
||||||
static void assign(socket_message_WebsocketMessage& msg, const socket_message_PeripheralSettingsData& data) {
|
|
||||||
msg.message.peripheral_settings = data;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
class CommAdapterBase {
|
class CommAdapterBase {
|
||||||
public:
|
public:
|
||||||
CommAdapterBase() { mutex_ = xSemaphoreCreateMutex(); }
|
CommAdapterBase() {
|
||||||
|
mutex_ = xSemaphoreCreateMutex();
|
||||||
|
decoder_.onSubscribe([this](int32_t tag, int cid) { subscribe(tag, cid); });
|
||||||
|
decoder_.onUnsubscribe([this](int32_t tag, int cid) { unsubscribe(tag, cid); });
|
||||||
|
decoder_.onPing([this](int cid) { sendPong(cid); });
|
||||||
|
}
|
||||||
~CommAdapterBase() { vSemaphoreDelete(mutex_); }
|
~CommAdapterBase() { vSemaphoreDelete(mutex_); }
|
||||||
|
|
||||||
virtual void begin() {}
|
virtual void begin() {}
|
||||||
@@ -97,6 +27,11 @@ class CommAdapterBase {
|
|||||||
|
|
||||||
ProtoDecoder& decoder() { return decoder_; }
|
ProtoDecoder& decoder() { return decoder_; }
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void on(std::function<void(const T&, int)> handler) {
|
||||||
|
decoder_.on<T>(handler);
|
||||||
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void emit(const T& data, int clientId = -1) {
|
void emit(const T& data, int clientId = -1) {
|
||||||
constexpr pb_size_t tag = MessageTraits<T>::tag;
|
constexpr pb_size_t tag = MessageTraits<T>::tag;
|
||||||
@@ -159,14 +94,6 @@ class CommAdapterBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupDecoderHandlers() {
|
|
||||||
decoder_.onSubscribe([this](int32_t tag, int cid) { subscribe(tag, cid); });
|
|
||||||
|
|
||||||
decoder_.onUnsubscribe([this](int32_t tag, int cid) { unsubscribe(tag, cid); });
|
|
||||||
|
|
||||||
decoder_.onPing([this](int cid) { sendPong(cid); });
|
|
||||||
}
|
|
||||||
|
|
||||||
SemaphoreHandle_t mutex_;
|
SemaphoreHandle_t mutex_;
|
||||||
std::map<int32_t, std::list<int>> client_subscriptions_;
|
std::map<int32_t, std::list<int>> client_subscriptions_;
|
||||||
ProtoDecoder decoder_;
|
ProtoDecoder decoder_;
|
||||||
|
|||||||
@@ -4,35 +4,59 @@
|
|||||||
#include <pb_decode.h>
|
#include <pb_decode.h>
|
||||||
#include <platform_shared/websocket_message.pb.h>
|
#include <platform_shared/websocket_message.pb.h>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
#define PROTO_BUFFER_SIZE 512
|
#define PROTO_BUFFER_SIZE 512
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct MessageTraits;
|
||||||
|
|
||||||
|
#define DEFINE_MESSAGE_TRAITS(DataType, field) \
|
||||||
|
template <> \
|
||||||
|
struct MessageTraits<socket_message_##DataType> { \
|
||||||
|
static constexpr pb_size_t tag = socket_message_WebsocketMessage_##field##_tag; \
|
||||||
|
static void assign(socket_message_WebsocketMessage& msg, const socket_message_##DataType& data) { \
|
||||||
|
msg.message.field = data; \
|
||||||
|
} \
|
||||||
|
static const socket_message_##DataType& access(const socket_message_WebsocketMessage& msg) { \
|
||||||
|
return msg.message.field; \
|
||||||
|
} \
|
||||||
|
};
|
||||||
|
|
||||||
|
DEFINE_MESSAGE_TRAITS(IMUData, imu)
|
||||||
|
DEFINE_MESSAGE_TRAITS(ModeData, mode)
|
||||||
|
DEFINE_MESSAGE_TRAITS(AnalyticsData, analytics)
|
||||||
|
DEFINE_MESSAGE_TRAITS(AnglesData, angles)
|
||||||
|
DEFINE_MESSAGE_TRAITS(RSSIData, rssi)
|
||||||
|
DEFINE_MESSAGE_TRAITS(KinematicData, kinematic_data)
|
||||||
|
DEFINE_MESSAGE_TRAITS(IMUCalibrateData, imu_calibrate)
|
||||||
|
DEFINE_MESSAGE_TRAITS(I2CScanData, i2c_scan)
|
||||||
|
DEFINE_MESSAGE_TRAITS(PeripheralSettingsData, peripheral_settings)
|
||||||
|
DEFINE_MESSAGE_TRAITS(HumanInputData, human_input_data)
|
||||||
|
DEFINE_MESSAGE_TRAITS(WalkGaitData, walk_gait)
|
||||||
|
DEFINE_MESSAGE_TRAITS(IMUCalibrateExecute, imu_calibrate_execute)
|
||||||
|
DEFINE_MESSAGE_TRAITS(I2CScanDataRequest, i2c_scan_data_request)
|
||||||
|
DEFINE_MESSAGE_TRAITS(PeripheralSettingsDataRequest, peripheral_settings_data_request)
|
||||||
|
DEFINE_MESSAGE_TRAITS(ServoPWMData, servo_pwm)
|
||||||
|
DEFINE_MESSAGE_TRAITS(ServoStateData, servo_state)
|
||||||
|
|
||||||
|
#undef DEFINE_MESSAGE_TRAITS
|
||||||
|
|
||||||
class ProtoDecoder {
|
class ProtoDecoder {
|
||||||
public:
|
public:
|
||||||
using SubscribeHandler = std::function<void(int32_t tag, int clientId)>;
|
using SubscribeHandler = std::function<void(int32_t tag, int clientId)>;
|
||||||
using UnsubscribeHandler = std::function<void(int32_t tag, int clientId)>;
|
using UnsubscribeHandler = std::function<void(int32_t tag, int clientId)>;
|
||||||
using PingHandler = std::function<void(int clientId)>;
|
using PingHandler = std::function<void(int clientId)>;
|
||||||
using ModeHandler = std::function<void(const socket_message_ModeData& data, int clientId)>;
|
|
||||||
using InputHandler = std::function<void(const socket_message_HumanInputData& data, int clientId)>;
|
|
||||||
using AnglesHandler = std::function<void(const socket_message_AnglesData& data, int clientId)>;
|
|
||||||
using KinematicHandler = std::function<void(const socket_message_KinematicData& data, int clientId)>;
|
|
||||||
using WalkGaitHandler = std::function<void(const socket_message_WalkGaitData& data, int clientId)>;
|
|
||||||
using IMUCalibrateExecHandler = std::function<void(int clientId)>;
|
|
||||||
using I2CScanRequestHandler = std::function<void(int clientId)>;
|
|
||||||
using PeripheralSettingsRequestHandler = std::function<void(int clientId)>;
|
|
||||||
|
|
||||||
void onSubscribe(SubscribeHandler handler) { subscribeHandler = handler; }
|
void onSubscribe(SubscribeHandler handler) { subscribeHandler_ = handler; }
|
||||||
void onUnsubscribe(UnsubscribeHandler handler) { unsubscribeHandler = handler; }
|
void onUnsubscribe(UnsubscribeHandler handler) { unsubscribeHandler_ = handler; }
|
||||||
void onPing(PingHandler handler) { pingHandler = handler; }
|
void onPing(PingHandler handler) { pingHandler_ = handler; }
|
||||||
void onMode(ModeHandler handler) { modeHandler = handler; }
|
|
||||||
void onInput(InputHandler handler) { inputHandler = handler; }
|
template <typename T>
|
||||||
void onAngles(AnglesHandler handler) { anglesHandler = handler; }
|
void on(std::function<void(const T&, int)> handler) {
|
||||||
void onKinematic(KinematicHandler handler) { kinematicHandler = handler; }
|
handlers_[MessageTraits<T>::tag] = [handler, this](int clientId) {
|
||||||
void onWalkGait(WalkGaitHandler handler) { walkGaitHandler = handler; }
|
handler(MessageTraits<T>::access(msg_), clientId);
|
||||||
void onIMUCalibrateExec(IMUCalibrateExecHandler handler) { imuCalibrateExecHandler = handler; }
|
};
|
||||||
void onI2CScanRequest(I2CScanRequestHandler handler) { i2cScanRequestHandler = handler; }
|
|
||||||
void onPeripheralSettingsRequest(PeripheralSettingsRequestHandler handler) {
|
|
||||||
peripheralSettingsRequestHandler = handler;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool decode(const uint8_t* data, size_t len, int clientId) {
|
bool decode(const uint8_t* data, size_t len, int clientId) {
|
||||||
@@ -44,66 +68,32 @@ class ProtoDecoder {
|
|||||||
|
|
||||||
switch (msg_.which_message) {
|
switch (msg_.which_message) {
|
||||||
case socket_message_WebsocketMessage_sub_notif_tag:
|
case socket_message_WebsocketMessage_sub_notif_tag:
|
||||||
if (subscribeHandler) subscribeHandler(msg_.message.sub_notif.tag, clientId);
|
if (subscribeHandler_) subscribeHandler_(msg_.message.sub_notif.tag, clientId);
|
||||||
break;
|
return true;
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_unsub_notif_tag:
|
case socket_message_WebsocketMessage_unsub_notif_tag:
|
||||||
if (unsubscribeHandler) unsubscribeHandler(msg_.message.unsub_notif.tag, clientId);
|
if (unsubscribeHandler_) unsubscribeHandler_(msg_.message.unsub_notif.tag, clientId);
|
||||||
break;
|
return true;
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_pingmsg_tag:
|
case socket_message_WebsocketMessage_pingmsg_tag:
|
||||||
if (pingHandler) pingHandler(clientId);
|
if (pingHandler_) pingHandler_(clientId);
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_mode_tag:
|
|
||||||
if (modeHandler) modeHandler(msg_.message.mode, clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_human_input_data_tag:
|
|
||||||
if (inputHandler) inputHandler(msg_.message.human_input_data, clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_angles_tag:
|
|
||||||
if (anglesHandler) anglesHandler(msg_.message.angles, clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_kinematic_data_tag:
|
|
||||||
if (kinematicHandler) kinematicHandler(msg_.message.kinematic_data, clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_walk_gait_tag:
|
|
||||||
if (walkGaitHandler) walkGaitHandler(msg_.message.walk_gait, clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_imu_calibrate_execute_tag:
|
|
||||||
if (imuCalibrateExecHandler) imuCalibrateExecHandler(clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_i2c_scan_data_request_tag:
|
|
||||||
if (i2cScanRequestHandler) i2cScanRequestHandler(clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case socket_message_WebsocketMessage_peripheral_settings_data_request_tag:
|
|
||||||
if (peripheralSettingsRequestHandler) peripheralSettingsRequestHandler(clientId);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default: return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
default: {
|
||||||
|
auto it = handlers_.find(msg_.which_message);
|
||||||
|
if (it != handlers_.end()) {
|
||||||
|
it->second(clientId);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
socket_message_WebsocketMessage msg_ = socket_message_WebsocketMessage_init_zero;
|
socket_message_WebsocketMessage msg_ = socket_message_WebsocketMessage_init_zero;
|
||||||
SubscribeHandler subscribeHandler;
|
SubscribeHandler subscribeHandler_;
|
||||||
UnsubscribeHandler unsubscribeHandler;
|
UnsubscribeHandler unsubscribeHandler_;
|
||||||
PingHandler pingHandler;
|
PingHandler pingHandler_;
|
||||||
ModeHandler modeHandler;
|
std::map<pb_size_t, std::function<void(int)>> handlers_;
|
||||||
InputHandler inputHandler;
|
|
||||||
AnglesHandler anglesHandler;
|
|
||||||
KinematicHandler kinematicHandler;
|
|
||||||
WalkGaitHandler walkGaitHandler;
|
|
||||||
IMUCalibrateExecHandler imuCalibrateExecHandler;
|
|
||||||
I2CScanRequestHandler i2cScanRequestHandler;
|
|
||||||
PeripheralSettingsRequestHandler peripheralSettingsRequestHandler;
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ class Websocket : public CommAdapterBase {
|
|||||||
void begin() override;
|
void begin() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PsychicWebSocketHandler _socket;
|
PsychicWebSocketHandler socket_;
|
||||||
PsychicHttpServer &_server;
|
PsychicHttpServer &server_;
|
||||||
const char *_route;
|
const char *route_;
|
||||||
|
|
||||||
void onWSOpen(PsychicWebSocketClient *client);
|
void onWSOpen(PsychicWebSocketClient *client);
|
||||||
void onWSClose(PsychicWebSocketClient *client);
|
void onWSClose(PsychicWebSocketClient *client);
|
||||||
|
|||||||
@@ -1,28 +1,17 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <ArduinoJson.h>
|
#include <platform_shared/websocket_message.pb.h>
|
||||||
|
|
||||||
struct CommandMsg {
|
struct CommandMsg {
|
||||||
float lx, ly, rx, ry, h, s, s1;
|
float lx, ly, rx, ry, h, s, s1;
|
||||||
friend void toJson(JsonVariant v, CommandMsg const &c) {
|
|
||||||
JsonArray arr = v.to<JsonArray>();
|
|
||||||
arr.add(c.lx);
|
|
||||||
arr.add(c.ly);
|
|
||||||
arr.add(c.rx);
|
|
||||||
arr.add(c.ry);
|
|
||||||
arr.add(c.h);
|
|
||||||
arr.add(c.s);
|
|
||||||
arr.add(c.s1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void fromJson(JsonVariantConst o) {
|
void fromProto(const socket_message_HumanInputData& data) {
|
||||||
JsonArrayConst arr = o.as<JsonArrayConst>();
|
lx = data.has_left ? data.left.x : 0;
|
||||||
lx = arr[0].as<float>();
|
ly = data.has_left ? data.left.y : 0;
|
||||||
ly = arr[1].as<float>();
|
rx = data.has_right ? data.right.x : 0;
|
||||||
rx = arr[2].as<float>();
|
ry = data.has_right ? data.right.y : 0;
|
||||||
ry = arr[3].as<float>();
|
h = data.height;
|
||||||
h = arr[4].as<float>();
|
s = data.speed;
|
||||||
s = arr[5].as<float>();
|
s1 = data.s1;
|
||||||
s1 = arr[6].as<float>();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
#ifndef MotionService_h
|
#ifndef MotionService_h
|
||||||
#define MotionService_h
|
#define MotionService_h
|
||||||
|
|
||||||
#include <ArduinoJson.h>
|
|
||||||
#include "esp_timer.h"
|
#include "esp_timer.h"
|
||||||
|
|
||||||
#include <kinematics.h>
|
#include <kinematics.h>
|
||||||
@@ -22,13 +21,13 @@ class MotionService {
|
|||||||
public:
|
public:
|
||||||
void begin();
|
void begin();
|
||||||
|
|
||||||
void anglesEvent(JsonVariant &root, int originId);
|
void handleAngles(const socket_message_AnglesData& data);
|
||||||
|
|
||||||
void handleInput(JsonVariant &root, int originId);
|
void handleInput(const socket_message_HumanInputData& data);
|
||||||
|
|
||||||
void handleWalkGait(JsonVariant &root, int originId);
|
void handleWalkGait(const socket_message_WalkGaitData& data);
|
||||||
|
|
||||||
void handleMode(JsonVariant &root, int originId);
|
void handleMode(const socket_message_ModeData& data);
|
||||||
|
|
||||||
void setState(MotionState* newState);
|
void setState(MotionState* newState);
|
||||||
|
|
||||||
|
|||||||
@@ -56,19 +56,11 @@ class ServoController : public StatefulService<ServoSettings> {
|
|||||||
_pca.sleep();
|
_pca.sleep();
|
||||||
}
|
}
|
||||||
|
|
||||||
void stateUpdate(JsonVariant &root, int originId) {
|
void setServoPWM(int32_t servo_id, uint32_t pwm) {
|
||||||
bool active = root["active"].as<bool>();
|
|
||||||
ESP_LOGI("SERVOCONTROLLER", "Setting state %d", active);
|
|
||||||
active ? activate() : deactivate();
|
|
||||||
}
|
|
||||||
|
|
||||||
void servoEvent(JsonVariant &root, int originId) {
|
|
||||||
control_state = SERVO_CONTROL_STATE::PWM;
|
control_state = SERVO_CONTROL_STATE::PWM;
|
||||||
int8_t servo_id = root["servo_id"];
|
|
||||||
uint16_t pwm = root["pwm"].as<uint16_t>();
|
|
||||||
if (servo_id < 0) {
|
if (servo_id < 0) {
|
||||||
uint16_t pwms[12];
|
uint16_t pwms[12];
|
||||||
std::fill_n(pwms, 12, pwm);
|
std::fill_n(pwms, 12, static_cast<uint16_t>(pwm));
|
||||||
_pca.setMultiplePWM(pwms, 12);
|
_pca.setMultiplePWM(pwms, 12);
|
||||||
} else {
|
} else {
|
||||||
_pca.setPWM(servo_id, 0, pwm);
|
_pca.setPWM(servo_id, 0, pwm);
|
||||||
|
|||||||
@@ -1,82 +1,42 @@
|
|||||||
#include <communication/websocket_adapter.h>
|
#include <communication/websocket_adapter.h>
|
||||||
#include <string>
|
|
||||||
|
|
||||||
static const char* TAG = "Websocket";
|
static const char* TAG = "Websocket";
|
||||||
|
|
||||||
Websocket::Websocket(PsychicHttpServer &server, const char *route) : _server(server), _route(route) {
|
Websocket::Websocket(PsychicHttpServer& server, const char* route) : server_(server), route_(route) {
|
||||||
_socket.onOpen((std::bind(&Websocket::onWSOpen, this, std::placeholders::_1)));
|
socket_.onOpen(std::bind(&Websocket::onWSOpen, this, std::placeholders::_1));
|
||||||
_socket.onClose(std::bind(&Websocket::onWSClose, this, std::placeholders::_1));
|
socket_.onClose(std::bind(&Websocket::onWSClose, this, std::placeholders::_1));
|
||||||
_socket.onFrame(std::bind(&Websocket::onFrame, this, std::placeholders::_1, std::placeholders::_2));
|
socket_.onFrame(std::bind(&Websocket::onFrame, this, std::placeholders::_1, std::placeholders::_2));
|
||||||
}
|
|
||||||
|
|
||||||
void Websocket::begin() { _server.on(_route, &_socket); }
|
|
||||||
|
|
||||||
void Websocket::onEvent(std::string event, EventCallback callback) {
|
|
||||||
//CommAdapterBase::onEvent(std::move(event), std::move(callback));
|
|
||||||
}
|
|
||||||
|
|
||||||
void Websocket::emit(const char *event, JsonVariant &payload, const char *originId, bool onlyToSameOrigin) {
|
|
||||||
//CommAdapterBase::emit(event, payload, originId, onlyToSameOrigin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Websocket::begin() { server_.on(route_, &socket_); }
|
||||||
|
|
||||||
void Websocket::onWSOpen(PsychicWebSocketClient* client) {
|
void Websocket::onWSOpen(PsychicWebSocketClient* client) {
|
||||||
ESP_LOGI("EventSocket", "ws[%s][%u] connect", client->remoteIP().toString().c_str(), client->socket());
|
ESP_LOGI(TAG, "Client connected: %s [%u]", client->remoteIP().toString().c_str(), client->socket());
|
||||||
ping(client->socket());
|
sendPong(client->socket());
|
||||||
}
|
}
|
||||||
|
|
||||||
void Websocket::onWSClose(PsychicWebSocketClient* client) {
|
void Websocket::onWSClose(PsychicWebSocketClient* client) {
|
||||||
xSemaphoreTake(mutex_, portMAX_DELAY);
|
ESP_LOGI(TAG, "Client disconnected: %s [%u]", client->remoteIP().toString().c_str(), client->socket());
|
||||||
for (auto &event_subscriptions : client_subscriptions) {
|
removeClient(client->socket());
|
||||||
event_subscriptions.second.remove(client->socket());
|
|
||||||
}
|
|
||||||
xSemaphoreGive(mutex_);
|
|
||||||
ESP_LOGI("EventSocket", "ws[%s][%u] disconnect", client->remoteIP().toString().c_str(), client->socket());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
esp_err_t Websocket::onFrame(PsychicWebSocketRequest* request, httpd_ws_frame* frame) {
|
esp_err_t Websocket::onFrame(PsychicWebSocketRequest* request, httpd_ws_frame* frame) {
|
||||||
// ESP_LOGV(TAG, "ws[%s][%u] opcode[%d]", request->client()->remoteIP().toString().c_str(),
|
if (frame->type != HTTPD_WS_TYPE_BINARY) {
|
||||||
// request->client()->socket(), frame->type);
|
ESP_LOGW(TAG, "Expected binary frame, got type %d", frame->type);
|
||||||
|
return ESP_OK;
|
||||||
// if (frame->type != HTTPD_WS_TYPE_TEXT && frame->type != HTTPD_WS_TYPE_BINARY) {
|
}
|
||||||
// ESP_LOGE(TAG, "Unsupported frame type: %d", frame->type);
|
|
||||||
// return ESP_OK;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// #if USE_MSGPACK
|
|
||||||
// if (frame->type == HTTPD_WS_TYPE_BINARY) {
|
|
||||||
// handleIncoming(frame->payload, frame->len, request->client()->socket());
|
|
||||||
// } else {
|
|
||||||
// ESP_LOGE(TAG, "Expected binary, got text");
|
|
||||||
// }
|
|
||||||
// #else
|
|
||||||
// if (frame->type == HTTPD_WS_TYPE_TEXT) {
|
|
||||||
// handleIncoming(frame->payload, frame->len, request->client()->socket());
|
|
||||||
// } else {
|
|
||||||
// ESP_LOGE(TAG, "Expected text, got binary");
|
|
||||||
// }
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
|
handleIncoming(frame->payload, frame->len, request->client()->socket());
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Websocket::send(const uint8_t* data, size_t len, int cid) {
|
void Websocket::send(const uint8_t* data, size_t len, int cid) {
|
||||||
if (cid != -1) {
|
if (cid >= 0) {
|
||||||
auto *client = _socket.getClient(cid);
|
auto* client = socket_.getClient(cid);
|
||||||
if (client) {
|
if (client) {
|
||||||
ESP_LOGV(TAG, "Sending to client %s: %s", client->remoteIP().toString().c_str(), data);
|
|
||||||
#if USE_MSGPACK
|
|
||||||
client->sendMessage(HTTPD_WS_TYPE_BINARY, data, len);
|
client->sendMessage(HTTPD_WS_TYPE_BINARY, data, len);
|
||||||
#else
|
|
||||||
client->sendMessage(HTTPD_WS_TYPE_TEXT, data, len);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGV(TAG, "Sending to all clients: %s", data);
|
socket_.sendAll(HTTPD_WS_TYPE_BINARY, data, len);
|
||||||
#if USE_MSGPACK
|
|
||||||
_socket.sendAll(HTTPD_WS_TYPE_BINARY, data, len);
|
|
||||||
#else
|
|
||||||
_socket.sendAll(HTTPD_WS_TYPE_TEXT, data, len);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+28
-39
@@ -136,52 +136,41 @@ void setupServer() {
|
|||||||
DefaultHeaders::Instance().addHeader("Access-Control-Max-Age", "86400");
|
DefaultHeaders::Instance().addHeader("Access-Control-Max-Age", "86400");
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ANGLES_EVENT "angles"
|
|
||||||
#define INPUT_EVENT "input"
|
|
||||||
#define MODE_EVENT "mode"
|
|
||||||
#define WALK_GAIT_EVENT "walk_gait"
|
|
||||||
#define EVENT_I2C_SCAN "i2cScan"
|
|
||||||
#define EVENT_SERVO_CONFIGURATION_SETTINGS "servoPWM"
|
|
||||||
#define EVENT_SERVO_STATE "servoState"
|
|
||||||
#define EVENT_IMU_CALIBRATE "imuCalibrate"
|
|
||||||
|
|
||||||
void setupEventSocket() {
|
void setupEventSocket() {
|
||||||
// Motion events
|
socket.on<socket_message_HumanInputData>(
|
||||||
// socket.onEvent(INPUT_EVENT, [&](JsonVariant &root, int originId) { motionService.handleInput(root, originId); });
|
[&](const socket_message_HumanInputData &data, int clientId) { motionService.handleInput(data); });
|
||||||
|
|
||||||
// socket.onEvent(MODE_EVENT, [&](JsonVariant &root, int originId) {
|
socket.on<socket_message_ModeData>([&](const socket_message_ModeData &data, int clientId) {
|
||||||
// servoController.setMode(SERVO_CONTROL_STATE::ANGLE);
|
servoController.setMode(SERVO_CONTROL_STATE::ANGLE);
|
||||||
// motionService.handleMode(root, originId);
|
motionService.handleMode(data);
|
||||||
// motionService.isActive() ? servoController.activate() : servoController.deactivate();
|
motionService.isActive() ? servoController.activate() : servoController.deactivate();
|
||||||
// });
|
});
|
||||||
|
|
||||||
// socket.onEvent(WALK_GAIT_EVENT,
|
socket.on<socket_message_WalkGaitData>(
|
||||||
// [&](JsonVariant &root, int originId) { motionService.handleWalkGait(root, originId); });
|
[&](const socket_message_WalkGaitData &data, int clientId) { motionService.handleWalkGait(data); });
|
||||||
|
|
||||||
// socket.onEvent(ANGLES_EVENT, [&](JsonVariant &root, int originId) { motionService.anglesEvent(root, originId);
|
socket.on<socket_message_AnglesData>(
|
||||||
// });
|
[&](const socket_message_AnglesData &data, int clientId) { motionService.handleAngles(data); });
|
||||||
|
|
||||||
// // Peripherals events
|
socket.on<socket_message_I2CScanDataRequest>([&](const socket_message_I2CScanDataRequest &data, int clientId) {
|
||||||
// socket.onEvent(EVENT_I2C_SCAN, [&](JsonVariant &root, int originId) {
|
peripherals.scanI2C();
|
||||||
// peripherals.scanI2C();
|
socket_message_I2CScanData result = socket_message_I2CScanData_init_zero;
|
||||||
// JsonDocument doc;
|
peripherals.getI2CResultProto(result);
|
||||||
// JsonVariant results = doc.to<JsonVariant>();
|
socket.emit(result, clientId);
|
||||||
// peripherals.getI2CResult(results);
|
});
|
||||||
// socket.emit(EVENT_I2C_SCAN, results);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// socket.onEvent(EVENT_IMU_CALIBRATE, [&](JsonVariant &root, int originId) {
|
socket.on<socket_message_IMUCalibrateExecute>([&](const socket_message_IMUCalibrateExecute &data, int clientId) {
|
||||||
// JsonDocument doc;
|
socket_message_IMUCalibrateData result = {.success = peripherals.calibrateIMU()};
|
||||||
// JsonVariant results = doc.to<JsonVariant>();
|
socket.emit(result, clientId);
|
||||||
// results["success"] = peripherals.calibrateIMU();
|
});
|
||||||
// socket.emit(EVENT_IMU_CALIBRATE, results);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// // Servo controller events
|
socket.on<socket_message_ServoPWMData>([&](const socket_message_ServoPWMData &data, int clientId) {
|
||||||
// socket.onEvent(EVENT_SERVO_CONFIGURATION_SETTINGS,
|
servoController.setServoPWM(data.servo_id, data.servo_pwm);
|
||||||
// [&](JsonVariant &root, int originId) { servoController.servoEvent(root, originId); });
|
});
|
||||||
// socket.onEvent(EVENT_SERVO_STATE,
|
|
||||||
// [&](JsonVariant &root, int originId) { servoController.stateUpdate(root, originId); });
|
socket.on<socket_message_ServoStateData>([&](const socket_message_ServoStateData &data, int clientId) {
|
||||||
|
data.active ? servoController.activate() : servoController.deactivate();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void IRAM_ATTR SpotControlLoopEntry(void *) {
|
void IRAM_ATTR SpotControlLoopEntry(void *) {
|
||||||
|
|||||||
+10
-13
@@ -2,10 +2,9 @@
|
|||||||
|
|
||||||
void MotionService::begin() { body_state.updateFeet(KinConfig::default_feet_positions); }
|
void MotionService::begin() { body_state.updateFeet(KinConfig::default_feet_positions); }
|
||||||
|
|
||||||
void MotionService::anglesEvent(JsonVariant &root, int originId) {
|
void MotionService::handleAngles(const socket_message_AnglesData& data) {
|
||||||
JsonArray array = root.as<JsonArray>();
|
for (int i = 0; i < 12 && i < data.angles_count; i++) {
|
||||||
for (int i = 0; i < 12; i++) {
|
angles[i] = data.angles[i];
|
||||||
angles[i] = array[i];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,23 +18,21 @@ void MotionService::setState(MotionState *newState) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MotionService::handleInput(JsonVariant &root, int originId) {
|
void MotionService::handleInput(const socket_message_HumanInputData& data) {
|
||||||
command.fromJson(root);
|
command.fromProto(data);
|
||||||
if (state) state->handleCommand(command);
|
if (state) state->handleCommand(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MotionService::handleWalkGait(JsonVariant &root, int originId) {
|
void MotionService::handleWalkGait(const socket_message_WalkGaitData& data) {
|
||||||
ESP_LOGI("MotionService", "Walk Gait %d", root.as<int>());
|
ESP_LOGI("MotionService", "Walk Gait %d", static_cast<int>(data.gait));
|
||||||
|
if (data.gait == socket_message_WalkGaits_TROT)
|
||||||
WALK_GAIT walkGait = static_cast<WALK_GAIT>(root.as<int>());
|
|
||||||
if (walkGait == WALK_GAIT::TROT)
|
|
||||||
walkState.set_mode_trot();
|
walkState.set_mode_trot();
|
||||||
else
|
else
|
||||||
walkState.set_mode_crawl();
|
walkState.set_mode_crawl();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MotionService::handleMode(JsonVariant &root, int originId) {
|
void MotionService::handleMode(const socket_message_ModeData& data) {
|
||||||
MOTION_STATE mode = static_cast<MOTION_STATE>(root.as<int>());
|
MOTION_STATE mode = static_cast<MOTION_STATE>(data.mode);
|
||||||
ESP_LOGV("MotionService", "Mode %d", static_cast<int>(mode));
|
ESP_LOGV("MotionService", "Mode %d", static_cast<int>(mode));
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case MOTION_STATE::REST: setState(&restState); break;
|
case MOTION_STATE::REST: setState(&restState); break;
|
||||||
|
|||||||
@@ -94,7 +94,8 @@ typedef struct _socket_message_CorrelationRequest {
|
|||||||
uint32_t correlation_id; /* Used for request-response correlation */
|
uint32_t correlation_id; /* Used for request-response correlation */
|
||||||
pb_size_t which_request;
|
pb_size_t which_request;
|
||||||
union _socket_message_CorrelationRequest_request {
|
union _socket_message_CorrelationRequest_request {
|
||||||
/* NOTE: requests must have same tag id as correlating to the response type (currently not enforced in C, but will be, and tests will fail) */
|
/* NOTE: requests must have same tag id as correlating to the response type (currently not enforced in C, but
|
||||||
|
* will be, and tests will fail) */
|
||||||
socket_message_FeaturesDataRequest features_data_request;
|
socket_message_FeaturesDataRequest features_data_request;
|
||||||
} request;
|
} request;
|
||||||
} socket_message_CorrelationRequest;
|
} socket_message_CorrelationRequest;
|
||||||
@@ -104,7 +105,8 @@ typedef struct _socket_message_CorrelationResponse {
|
|||||||
uint32_t stauts_code;
|
uint32_t stauts_code;
|
||||||
pb_size_t which_response;
|
pb_size_t which_response;
|
||||||
union _socket_message_CorrelationResponse_response {
|
union _socket_message_CorrelationResponse_response {
|
||||||
/* NOTE: responses must have same tag id as correlating to the request type (currently not enforced in C, but will be, and tests will fail) */
|
/* NOTE: responses must have same tag id as correlating to the request type (currently not enforced in C, but
|
||||||
|
* will be, and tests will fail) */
|
||||||
socket_message_FeaturesDataResponse features_data_response;
|
socket_message_FeaturesDataResponse features_data_response;
|
||||||
} response;
|
} response;
|
||||||
} socket_message_CorrelationResponse;
|
} socket_message_CorrelationResponse;
|
||||||
@@ -289,13 +291,14 @@ typedef struct _socket_message_WebsocketMessage {
|
|||||||
socket_message_PeripheralSettingsData peripheral_settings;
|
socket_message_PeripheralSettingsData peripheral_settings;
|
||||||
socket_message_PeripheralSettingsDataRequest peripheral_settings_data_request;
|
socket_message_PeripheralSettingsDataRequest peripheral_settings_data_request;
|
||||||
socket_message_KinematicData kinematic_data;
|
socket_message_KinematicData kinematic_data;
|
||||||
|
socket_message_ServoPWMData servo_pwm;
|
||||||
|
socket_message_ServoStateData servo_state;
|
||||||
socket_message_WifiSettingsData wifi_settings;
|
socket_message_WifiSettingsData wifi_settings;
|
||||||
socket_message_HumanInputData human_input_data;
|
socket_message_HumanInputData human_input_data;
|
||||||
socket_message_RSSIData rssi;
|
socket_message_RSSIData rssi;
|
||||||
} message;
|
} message;
|
||||||
} socket_message_WebsocketMessage;
|
} socket_message_WebsocketMessage;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
@@ -309,115 +312,241 @@ extern "C" {
|
|||||||
#define _socket_message_WalkGaits_MAX socket_message_WalkGaits_CRAWL
|
#define _socket_message_WalkGaits_MAX socket_message_WalkGaits_CRAWL
|
||||||
#define _socket_message_WalkGaits_ARRAYSIZE ((socket_message_WalkGaits)(socket_message_WalkGaits_CRAWL + 1))
|
#define _socket_message_WalkGaits_ARRAYSIZE ((socket_message_WalkGaits)(socket_message_WalkGaits_CRAWL + 1))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define socket_message_ModeData_mode_ENUMTYPE socket_message_ModesEnum
|
#define socket_message_ModeData_mode_ENUMTYPE socket_message_ModesEnum
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define socket_message_WalkGaitData_gait_ENUMTYPE socket_message_WalkGaits
|
#define socket_message_WalkGaitData_gait_ENUMTYPE socket_message_WalkGaits
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Initializer values for message structs */
|
/* Initializer values for message structs */
|
||||||
#define socket_message_Vector_init_default {0, 0}
|
#define socket_message_Vector_init_default \
|
||||||
#define socket_message_I2CDevice_init_default {0, "", ""}
|
{ 0, 0 }
|
||||||
#define socket_message_PinConfig_init_default {0, "", "", ""}
|
#define socket_message_I2CDevice_init_default \
|
||||||
#define socket_message_KnownNetworkItem_init_default {"", "", 0, false, "", false, "", false, "", false, "", false, ""}
|
{ 0, "", "" }
|
||||||
#define socket_message_IMUData_init_default {0, 0, 0, 0, 0, 0, 0}
|
#define socket_message_PinConfig_init_default \
|
||||||
#define socket_message_FeaturesDataResponse_init_default {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
{ 0, "", "", "" }
|
||||||
#define socket_message_FeaturesDataRequest_init_default {0}
|
#define socket_message_KnownNetworkItem_init_default \
|
||||||
#define socket_message_CorrelationRequest_init_default {0, 0, {socket_message_FeaturesDataRequest_init_default}}
|
{ "", "", 0, false, "", false, "", false, "", false, "", false, "" }
|
||||||
#define socket_message_CorrelationResponse_init_default {0, 0, 0, {socket_message_FeaturesDataResponse_init_default}}
|
#define socket_message_IMUData_init_default \
|
||||||
#define socket_message_StaticSystemInformation_init_default {"", "", 0, "", 0, 0, 0, 0, "", "", 0, 0, ""}
|
{ 0, 0, 0, 0, 0, 0, 0 }
|
||||||
#define socket_message_IMUCalibrateData_init_default {0}
|
#define socket_message_FeaturesDataResponse_init_default \
|
||||||
#define socket_message_IMUCalibrateExecute_init_default {0}
|
{ {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
#define socket_message_ModeData_init_default {_socket_message_ModesEnum_MIN}
|
#define socket_message_FeaturesDataRequest_init_default \
|
||||||
#define socket_message_ControllerInputData_init_default {false, socket_message_Vector_init_default, false, socket_message_Vector_init_default, 0, 0, 0}
|
{ 0 }
|
||||||
#define socket_message_AnalyticsData_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
#define socket_message_CorrelationRequest_init_default \
|
||||||
#define socket_message_ServoPWMData_init_default {0, 0}
|
{ \
|
||||||
#define socket_message_ServoStateData_init_default {0}
|
0, 0, { socket_message_FeaturesDataRequest_init_default } \
|
||||||
#define socket_message_AnglesData_init_default {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
|
}
|
||||||
#define socket_message_I2CScanData_init_default {0, {socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default}}
|
#define socket_message_CorrelationResponse_init_default \
|
||||||
#define socket_message_I2CScanDataRequest_init_default {0}
|
{ \
|
||||||
#define socket_message_PeripheralSettingsData_init_default {0, 0, 0, 0, {socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, socket_message_PinConfig_init_default}}
|
0, 0, 0, { socket_message_FeaturesDataResponse_init_default } \
|
||||||
#define socket_message_PeripheralSettingsDataRequest_init_default {0}
|
}
|
||||||
#define socket_message_WifiSettingsData_init_default {"", 0, 0, {socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default}}
|
#define socket_message_StaticSystemInformation_init_default \
|
||||||
#define socket_message_RSSIData_init_default {0}
|
{ "", "", 0, "", 0, 0, 0, 0, "", "", 0, 0, "" }
|
||||||
#define socket_message_DownloadOTAData_init_default {"", 0, ""}
|
#define socket_message_IMUCalibrateData_init_default \
|
||||||
#define socket_message_SonarData_init_default {""}
|
{ 0 }
|
||||||
#define socket_message_HumanInputData_init_default {false, socket_message_Vector_init_default, false, socket_message_Vector_init_default, 0, 0, 0}
|
#define socket_message_IMUCalibrateExecute_init_default \
|
||||||
#define socket_message_SystemInformation_init_default {false, socket_message_AnalyticsData_init_default, false, socket_message_StaticSystemInformation_init_default}
|
{ 0 }
|
||||||
#define socket_message_WalkGaitData_init_default {_socket_message_WalkGaits_MIN}
|
#define socket_message_ModeData_init_default \
|
||||||
#define socket_message_KinematicData_init_default {0, 0, 0, 0, 0, 0}
|
{ _socket_message_ModesEnum_MIN }
|
||||||
#define socket_message_SubscribeNotification_init_default {0}
|
#define socket_message_ControllerInputData_init_default \
|
||||||
#define socket_message_UnsubscribeNotification_init_default {0}
|
{ false, socket_message_Vector_init_default, false, socket_message_Vector_init_default, 0, 0, 0 }
|
||||||
#define socket_message_PingMsg_init_default {0}
|
#define socket_message_AnalyticsData_init_default \
|
||||||
#define socket_message_PongMsg_init_default {0}
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
#define socket_message_WebsocketMessage_init_default {0, {socket_message_CorrelationRequest_init_default}}
|
#define socket_message_ServoPWMData_init_default \
|
||||||
#define socket_message_Vector_init_zero {0, 0}
|
{ 0, 0 }
|
||||||
#define socket_message_I2CDevice_init_zero {0, "", ""}
|
#define socket_message_ServoStateData_init_default \
|
||||||
#define socket_message_PinConfig_init_zero {0, "", "", ""}
|
{ 0 }
|
||||||
#define socket_message_KnownNetworkItem_init_zero {"", "", 0, false, "", false, "", false, "", false, "", false, ""}
|
#define socket_message_AnglesData_init_default \
|
||||||
#define socket_message_IMUData_init_zero {0, 0, 0, 0, 0, 0, 0}
|
{ \
|
||||||
#define socket_message_FeaturesDataResponse_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } \
|
||||||
#define socket_message_FeaturesDataRequest_init_zero {0}
|
}
|
||||||
#define socket_message_CorrelationRequest_init_zero {0, 0, {socket_message_FeaturesDataRequest_init_zero}}
|
#define socket_message_I2CScanData_init_default \
|
||||||
#define socket_message_CorrelationResponse_init_zero {0, 0, 0, {socket_message_FeaturesDataResponse_init_zero}}
|
{ \
|
||||||
#define socket_message_StaticSystemInformation_init_zero {"", "", 0, "", 0, 0, 0, 0, "", "", 0, 0, ""}
|
0, { \
|
||||||
#define socket_message_IMUCalibrateData_init_zero {0}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, \
|
||||||
#define socket_message_IMUCalibrateExecute_init_zero {0}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, \
|
||||||
#define socket_message_ModeData_init_zero {_socket_message_ModesEnum_MIN}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, \
|
||||||
#define socket_message_ControllerInputData_init_zero {false, socket_message_Vector_init_zero, false, socket_message_Vector_init_zero, 0, 0, 0}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, \
|
||||||
#define socket_message_AnalyticsData_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, \
|
||||||
#define socket_message_ServoPWMData_init_zero {0, 0}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, \
|
||||||
#define socket_message_ServoStateData_init_zero {0}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default, \
|
||||||
#define socket_message_AnglesData_init_zero {0, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}
|
socket_message_I2CDevice_init_default, socket_message_I2CDevice_init_default \
|
||||||
#define socket_message_I2CScanData_init_zero {0, {socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero}}
|
} \
|
||||||
#define socket_message_I2CScanDataRequest_init_zero {0}
|
}
|
||||||
#define socket_message_PeripheralSettingsData_init_zero {0, 0, 0, 0, {socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero}}
|
#define socket_message_I2CScanDataRequest_init_default \
|
||||||
#define socket_message_PeripheralSettingsDataRequest_init_zero {0}
|
{ 0 }
|
||||||
#define socket_message_WifiSettingsData_init_zero {"", 0, 0, {socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero}}
|
#define socket_message_PeripheralSettingsData_init_default \
|
||||||
#define socket_message_RSSIData_init_zero {0}
|
{ \
|
||||||
#define socket_message_DownloadOTAData_init_zero {"", 0, ""}
|
0, 0, 0, 0, { \
|
||||||
#define socket_message_SonarData_init_zero {""}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_HumanInputData_init_zero {false, socket_message_Vector_init_zero, false, socket_message_Vector_init_zero, 0, 0, 0}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_SystemInformation_init_zero {false, socket_message_AnalyticsData_init_zero, false, socket_message_StaticSystemInformation_init_zero}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_WalkGaitData_init_zero {_socket_message_WalkGaits_MIN}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_KinematicData_init_zero {0, 0, 0, 0, 0, 0}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_SubscribeNotification_init_zero {0}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_UnsubscribeNotification_init_zero {0}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_PingMsg_init_zero {0}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_PongMsg_init_zero {0}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
#define socket_message_WebsocketMessage_init_zero {0, {socket_message_CorrelationRequest_init_zero}}
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default, \
|
||||||
|
socket_message_PinConfig_init_default, socket_message_PinConfig_init_default \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
#define socket_message_PeripheralSettingsDataRequest_init_default \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_WifiSettingsData_init_default \
|
||||||
|
{ \
|
||||||
|
"", 0, 0, { \
|
||||||
|
socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, \
|
||||||
|
socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, \
|
||||||
|
socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default, \
|
||||||
|
socket_message_KnownNetworkItem_init_default, socket_message_KnownNetworkItem_init_default \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
#define socket_message_RSSIData_init_default \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_DownloadOTAData_init_default \
|
||||||
|
{ "", 0, "" }
|
||||||
|
#define socket_message_SonarData_init_default \
|
||||||
|
{ "" }
|
||||||
|
#define socket_message_HumanInputData_init_default \
|
||||||
|
{ false, socket_message_Vector_init_default, false, socket_message_Vector_init_default, 0, 0, 0 }
|
||||||
|
#define socket_message_SystemInformation_init_default \
|
||||||
|
{ false, socket_message_AnalyticsData_init_default, false, socket_message_StaticSystemInformation_init_default }
|
||||||
|
#define socket_message_WalkGaitData_init_default \
|
||||||
|
{ _socket_message_WalkGaits_MIN }
|
||||||
|
#define socket_message_KinematicData_init_default \
|
||||||
|
{ 0, 0, 0, 0, 0, 0 }
|
||||||
|
#define socket_message_SubscribeNotification_init_default \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_UnsubscribeNotification_init_default \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_PingMsg_init_default \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_PongMsg_init_default \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_WebsocketMessage_init_default \
|
||||||
|
{ \
|
||||||
|
0, { socket_message_CorrelationRequest_init_default } \
|
||||||
|
}
|
||||||
|
#define socket_message_Vector_init_zero \
|
||||||
|
{ 0, 0 }
|
||||||
|
#define socket_message_I2CDevice_init_zero \
|
||||||
|
{ 0, "", "" }
|
||||||
|
#define socket_message_PinConfig_init_zero \
|
||||||
|
{ 0, "", "", "" }
|
||||||
|
#define socket_message_KnownNetworkItem_init_zero \
|
||||||
|
{ "", "", 0, false, "", false, "", false, "", false, "", false, "" }
|
||||||
|
#define socket_message_IMUData_init_zero \
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
#define socket_message_FeaturesDataResponse_init_zero \
|
||||||
|
{ {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
#define socket_message_FeaturesDataRequest_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_CorrelationRequest_init_zero \
|
||||||
|
{ \
|
||||||
|
0, 0, { socket_message_FeaturesDataRequest_init_zero } \
|
||||||
|
}
|
||||||
|
#define socket_message_CorrelationResponse_init_zero \
|
||||||
|
{ \
|
||||||
|
0, 0, 0, { socket_message_FeaturesDataResponse_init_zero } \
|
||||||
|
}
|
||||||
|
#define socket_message_StaticSystemInformation_init_zero \
|
||||||
|
{ "", "", 0, "", 0, 0, 0, 0, "", "", 0, 0, "" }
|
||||||
|
#define socket_message_IMUCalibrateData_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_IMUCalibrateExecute_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_ModeData_init_zero \
|
||||||
|
{ _socket_message_ModesEnum_MIN }
|
||||||
|
#define socket_message_ControllerInputData_init_zero \
|
||||||
|
{ false, socket_message_Vector_init_zero, false, socket_message_Vector_init_zero, 0, 0, 0 }
|
||||||
|
#define socket_message_AnalyticsData_init_zero \
|
||||||
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
#define socket_message_ServoPWMData_init_zero \
|
||||||
|
{ 0, 0 }
|
||||||
|
#define socket_message_ServoStateData_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_AnglesData_init_zero \
|
||||||
|
{ \
|
||||||
|
0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } \
|
||||||
|
}
|
||||||
|
#define socket_message_I2CScanData_init_zero \
|
||||||
|
{ \
|
||||||
|
0, { \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero, \
|
||||||
|
socket_message_I2CDevice_init_zero, socket_message_I2CDevice_init_zero \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
#define socket_message_I2CScanDataRequest_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_PeripheralSettingsData_init_zero \
|
||||||
|
{ \
|
||||||
|
0, 0, 0, 0, { \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero, \
|
||||||
|
socket_message_PinConfig_init_zero, socket_message_PinConfig_init_zero \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
#define socket_message_PeripheralSettingsDataRequest_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_WifiSettingsData_init_zero \
|
||||||
|
{ \
|
||||||
|
"", 0, 0, { \
|
||||||
|
socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, \
|
||||||
|
socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, \
|
||||||
|
socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero, \
|
||||||
|
socket_message_KnownNetworkItem_init_zero, socket_message_KnownNetworkItem_init_zero \
|
||||||
|
} \
|
||||||
|
}
|
||||||
|
#define socket_message_RSSIData_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_DownloadOTAData_init_zero \
|
||||||
|
{ "", 0, "" }
|
||||||
|
#define socket_message_SonarData_init_zero \
|
||||||
|
{ "" }
|
||||||
|
#define socket_message_HumanInputData_init_zero \
|
||||||
|
{ false, socket_message_Vector_init_zero, false, socket_message_Vector_init_zero, 0, 0, 0 }
|
||||||
|
#define socket_message_SystemInformation_init_zero \
|
||||||
|
{ false, socket_message_AnalyticsData_init_zero, false, socket_message_StaticSystemInformation_init_zero }
|
||||||
|
#define socket_message_WalkGaitData_init_zero \
|
||||||
|
{ _socket_message_WalkGaits_MIN }
|
||||||
|
#define socket_message_KinematicData_init_zero \
|
||||||
|
{ 0, 0, 0, 0, 0, 0 }
|
||||||
|
#define socket_message_SubscribeNotification_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_UnsubscribeNotification_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_PingMsg_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_PongMsg_init_zero \
|
||||||
|
{ 0 }
|
||||||
|
#define socket_message_WebsocketMessage_init_zero \
|
||||||
|
{ \
|
||||||
|
0, { socket_message_CorrelationRequest_init_zero } \
|
||||||
|
}
|
||||||
|
|
||||||
/* Field tags (for use in manual encoding/decoding) */
|
/* Field tags (for use in manual encoding/decoding) */
|
||||||
#define socket_message_Vector_x_tag 1
|
#define socket_message_Vector_x_tag 1
|
||||||
@@ -548,6 +677,8 @@ extern "C" {
|
|||||||
#define socket_message_WebsocketMessage_peripheral_settings_tag 190
|
#define socket_message_WebsocketMessage_peripheral_settings_tag 190
|
||||||
#define socket_message_WebsocketMessage_peripheral_settings_data_request_tag 191
|
#define socket_message_WebsocketMessage_peripheral_settings_data_request_tag 191
|
||||||
#define socket_message_WebsocketMessage_kinematic_data_tag 200
|
#define socket_message_WebsocketMessage_kinematic_data_tag 200
|
||||||
|
#define socket_message_WebsocketMessage_servo_pwm_tag 210
|
||||||
|
#define socket_message_WebsocketMessage_servo_state_tag 211
|
||||||
#define socket_message_WebsocketMessage_wifi_settings_tag 240
|
#define socket_message_WebsocketMessage_wifi_settings_tag 240
|
||||||
#define socket_message_WebsocketMessage_human_input_data_tag 250
|
#define socket_message_WebsocketMessage_human_input_data_tag 250
|
||||||
#define socket_message_WebsocketMessage_rssi_tag 260
|
#define socket_message_WebsocketMessage_rssi_tag 260
|
||||||
@@ -614,8 +745,7 @@ X(a, STATIC, SINGULAR, BOOL, embed_www, 130)
|
|||||||
#define socket_message_FeaturesDataResponse_CALLBACK pb_default_field_callback
|
#define socket_message_FeaturesDataResponse_CALLBACK pb_default_field_callback
|
||||||
#define socket_message_FeaturesDataResponse_DEFAULT NULL
|
#define socket_message_FeaturesDataResponse_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_FeaturesDataRequest_FIELDLIST(X, a) \
|
#define socket_message_FeaturesDataRequest_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, sonar_test, 1)
|
||||||
X(a, STATIC, SINGULAR, BOOL, sonar_test, 1)
|
|
||||||
#define socket_message_FeaturesDataRequest_CALLBACK NULL
|
#define socket_message_FeaturesDataRequest_CALLBACK NULL
|
||||||
#define socket_message_FeaturesDataRequest_DEFAULT NULL
|
#define socket_message_FeaturesDataRequest_DEFAULT NULL
|
||||||
|
|
||||||
@@ -651,18 +781,16 @@ X(a, STATIC, SINGULAR, STRING, cpu_reset_reason, 13)
|
|||||||
#define socket_message_StaticSystemInformation_CALLBACK NULL
|
#define socket_message_StaticSystemInformation_CALLBACK NULL
|
||||||
#define socket_message_StaticSystemInformation_DEFAULT NULL
|
#define socket_message_StaticSystemInformation_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_IMUCalibrateData_FIELDLIST(X, a) \
|
#define socket_message_IMUCalibrateData_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, success, 1)
|
||||||
X(a, STATIC, SINGULAR, BOOL, success, 1)
|
|
||||||
#define socket_message_IMUCalibrateData_CALLBACK NULL
|
#define socket_message_IMUCalibrateData_CALLBACK NULL
|
||||||
#define socket_message_IMUCalibrateData_DEFAULT NULL
|
#define socket_message_IMUCalibrateData_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_IMUCalibrateExecute_FIELDLIST(X, a) \
|
#define socket_message_IMUCalibrateExecute_FIELDLIST(X, a)
|
||||||
|
|
||||||
#define socket_message_IMUCalibrateExecute_CALLBACK NULL
|
#define socket_message_IMUCalibrateExecute_CALLBACK NULL
|
||||||
#define socket_message_IMUCalibrateExecute_DEFAULT NULL
|
#define socket_message_IMUCalibrateExecute_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_ModeData_FIELDLIST(X, a) \
|
#define socket_message_ModeData_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, mode, 1)
|
||||||
X(a, STATIC, SINGULAR, UENUM, mode, 1)
|
|
||||||
#define socket_message_ModeData_CALLBACK NULL
|
#define socket_message_ModeData_CALLBACK NULL
|
||||||
#define socket_message_ModeData_DEFAULT NULL
|
#define socket_message_ModeData_DEFAULT NULL
|
||||||
|
|
||||||
@@ -700,23 +828,20 @@ X(a, STATIC, SINGULAR, UINT32, servo_pwm, 2)
|
|||||||
#define socket_message_ServoPWMData_CALLBACK NULL
|
#define socket_message_ServoPWMData_CALLBACK NULL
|
||||||
#define socket_message_ServoPWMData_DEFAULT NULL
|
#define socket_message_ServoPWMData_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_ServoStateData_FIELDLIST(X, a) \
|
#define socket_message_ServoStateData_FIELDLIST(X, a) X(a, STATIC, SINGULAR, BOOL, active, 1)
|
||||||
X(a, STATIC, SINGULAR, BOOL, active, 1)
|
|
||||||
#define socket_message_ServoStateData_CALLBACK NULL
|
#define socket_message_ServoStateData_CALLBACK NULL
|
||||||
#define socket_message_ServoStateData_DEFAULT NULL
|
#define socket_message_ServoStateData_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_AnglesData_FIELDLIST(X, a) \
|
#define socket_message_AnglesData_FIELDLIST(X, a) X(a, STATIC, REPEATED, INT32, angles, 1)
|
||||||
X(a, STATIC, REPEATED, INT32, angles, 1)
|
|
||||||
#define socket_message_AnglesData_CALLBACK NULL
|
#define socket_message_AnglesData_CALLBACK NULL
|
||||||
#define socket_message_AnglesData_DEFAULT NULL
|
#define socket_message_AnglesData_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_I2CScanData_FIELDLIST(X, a) \
|
#define socket_message_I2CScanData_FIELDLIST(X, a) X(a, STATIC, REPEATED, MESSAGE, devices, 1)
|
||||||
X(a, STATIC, REPEATED, MESSAGE, devices, 1)
|
|
||||||
#define socket_message_I2CScanData_CALLBACK NULL
|
#define socket_message_I2CScanData_CALLBACK NULL
|
||||||
#define socket_message_I2CScanData_DEFAULT NULL
|
#define socket_message_I2CScanData_DEFAULT NULL
|
||||||
#define socket_message_I2CScanData_devices_MSGTYPE socket_message_I2CDevice
|
#define socket_message_I2CScanData_devices_MSGTYPE socket_message_I2CDevice
|
||||||
|
|
||||||
#define socket_message_I2CScanDataRequest_FIELDLIST(X, a) \
|
#define socket_message_I2CScanDataRequest_FIELDLIST(X, a)
|
||||||
|
|
||||||
#define socket_message_I2CScanDataRequest_CALLBACK NULL
|
#define socket_message_I2CScanDataRequest_CALLBACK NULL
|
||||||
#define socket_message_I2CScanDataRequest_DEFAULT NULL
|
#define socket_message_I2CScanDataRequest_DEFAULT NULL
|
||||||
@@ -730,7 +855,7 @@ X(a, STATIC, REPEATED, MESSAGE, pins, 4)
|
|||||||
#define socket_message_PeripheralSettingsData_DEFAULT NULL
|
#define socket_message_PeripheralSettingsData_DEFAULT NULL
|
||||||
#define socket_message_PeripheralSettingsData_pins_MSGTYPE socket_message_PinConfig
|
#define socket_message_PeripheralSettingsData_pins_MSGTYPE socket_message_PinConfig
|
||||||
|
|
||||||
#define socket_message_PeripheralSettingsDataRequest_FIELDLIST(X, a) \
|
#define socket_message_PeripheralSettingsDataRequest_FIELDLIST(X, a)
|
||||||
|
|
||||||
#define socket_message_PeripheralSettingsDataRequest_CALLBACK NULL
|
#define socket_message_PeripheralSettingsDataRequest_CALLBACK NULL
|
||||||
#define socket_message_PeripheralSettingsDataRequest_DEFAULT NULL
|
#define socket_message_PeripheralSettingsDataRequest_DEFAULT NULL
|
||||||
@@ -743,8 +868,7 @@ X(a, STATIC, REPEATED, MESSAGE, wifi_networks, 3)
|
|||||||
#define socket_message_WifiSettingsData_DEFAULT NULL
|
#define socket_message_WifiSettingsData_DEFAULT NULL
|
||||||
#define socket_message_WifiSettingsData_wifi_networks_MSGTYPE socket_message_KnownNetworkItem
|
#define socket_message_WifiSettingsData_wifi_networks_MSGTYPE socket_message_KnownNetworkItem
|
||||||
|
|
||||||
#define socket_message_RSSIData_FIELDLIST(X, a) \
|
#define socket_message_RSSIData_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT32, rssi, 1)
|
||||||
X(a, STATIC, SINGULAR, INT32, rssi, 1)
|
|
||||||
#define socket_message_RSSIData_CALLBACK NULL
|
#define socket_message_RSSIData_CALLBACK NULL
|
||||||
#define socket_message_RSSIData_DEFAULT NULL
|
#define socket_message_RSSIData_DEFAULT NULL
|
||||||
|
|
||||||
@@ -755,8 +879,7 @@ X(a, STATIC, SINGULAR, STRING, error, 3)
|
|||||||
#define socket_message_DownloadOTAData_CALLBACK NULL
|
#define socket_message_DownloadOTAData_CALLBACK NULL
|
||||||
#define socket_message_DownloadOTAData_DEFAULT NULL
|
#define socket_message_DownloadOTAData_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_SonarData_FIELDLIST(X, a) \
|
#define socket_message_SonarData_FIELDLIST(X, a) X(a, STATIC, SINGULAR, STRING, dummy_field, 1)
|
||||||
X(a, STATIC, SINGULAR, STRING, dummy_field, 1)
|
|
||||||
#define socket_message_SonarData_CALLBACK NULL
|
#define socket_message_SonarData_CALLBACK NULL
|
||||||
#define socket_message_SonarData_DEFAULT NULL
|
#define socket_message_SonarData_DEFAULT NULL
|
||||||
|
|
||||||
@@ -779,8 +902,7 @@ X(a, STATIC, OPTIONAL, MESSAGE, static_system_information, 2)
|
|||||||
#define socket_message_SystemInformation_analytics_data_MSGTYPE socket_message_AnalyticsData
|
#define socket_message_SystemInformation_analytics_data_MSGTYPE socket_message_AnalyticsData
|
||||||
#define socket_message_SystemInformation_static_system_information_MSGTYPE socket_message_StaticSystemInformation
|
#define socket_message_SystemInformation_static_system_information_MSGTYPE socket_message_StaticSystemInformation
|
||||||
|
|
||||||
#define socket_message_WalkGaitData_FIELDLIST(X, a) \
|
#define socket_message_WalkGaitData_FIELDLIST(X, a) X(a, STATIC, SINGULAR, UENUM, gait, 1)
|
||||||
X(a, STATIC, SINGULAR, UENUM, gait, 1)
|
|
||||||
#define socket_message_WalkGaitData_CALLBACK NULL
|
#define socket_message_WalkGaitData_CALLBACK NULL
|
||||||
#define socket_message_WalkGaitData_DEFAULT NULL
|
#define socket_message_WalkGaitData_DEFAULT NULL
|
||||||
|
|
||||||
@@ -794,22 +916,20 @@ X(a, STATIC, SINGULAR, FLOAT, zm, 6)
|
|||||||
#define socket_message_KinematicData_CALLBACK NULL
|
#define socket_message_KinematicData_CALLBACK NULL
|
||||||
#define socket_message_KinematicData_DEFAULT NULL
|
#define socket_message_KinematicData_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_SubscribeNotification_FIELDLIST(X, a) \
|
#define socket_message_SubscribeNotification_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT32, tag, 1)
|
||||||
X(a, STATIC, SINGULAR, INT32, tag, 1)
|
|
||||||
#define socket_message_SubscribeNotification_CALLBACK NULL
|
#define socket_message_SubscribeNotification_CALLBACK NULL
|
||||||
#define socket_message_SubscribeNotification_DEFAULT NULL
|
#define socket_message_SubscribeNotification_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_UnsubscribeNotification_FIELDLIST(X, a) \
|
#define socket_message_UnsubscribeNotification_FIELDLIST(X, a) X(a, STATIC, SINGULAR, INT32, tag, 1)
|
||||||
X(a, STATIC, SINGULAR, INT32, tag, 1)
|
|
||||||
#define socket_message_UnsubscribeNotification_CALLBACK NULL
|
#define socket_message_UnsubscribeNotification_CALLBACK NULL
|
||||||
#define socket_message_UnsubscribeNotification_DEFAULT NULL
|
#define socket_message_UnsubscribeNotification_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_PingMsg_FIELDLIST(X, a) \
|
#define socket_message_PingMsg_FIELDLIST(X, a)
|
||||||
|
|
||||||
#define socket_message_PingMsg_CALLBACK NULL
|
#define socket_message_PingMsg_CALLBACK NULL
|
||||||
#define socket_message_PingMsg_DEFAULT NULL
|
#define socket_message_PingMsg_DEFAULT NULL
|
||||||
|
|
||||||
#define socket_message_PongMsg_FIELDLIST(X, a) \
|
#define socket_message_PongMsg_FIELDLIST(X, a)
|
||||||
|
|
||||||
#define socket_message_PongMsg_CALLBACK NULL
|
#define socket_message_PongMsg_CALLBACK NULL
|
||||||
#define socket_message_PongMsg_DEFAULT NULL
|
#define socket_message_PongMsg_DEFAULT NULL
|
||||||
@@ -832,8 +952,11 @@ X(a, STATIC, ONEOF, MESSAGE, (message,angles,message.angles), 170) \
|
|||||||
X(a, STATIC, ONEOF, MESSAGE, (message, i2c_scan, message.i2c_scan), 180) \
|
X(a, STATIC, ONEOF, MESSAGE, (message, i2c_scan, message.i2c_scan), 180) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (message, i2c_scan_data_request, message.i2c_scan_data_request), 181) \
|
X(a, STATIC, ONEOF, MESSAGE, (message, i2c_scan_data_request, message.i2c_scan_data_request), 181) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (message, peripheral_settings, message.peripheral_settings), 190) \
|
X(a, STATIC, ONEOF, MESSAGE, (message, peripheral_settings, message.peripheral_settings), 190) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (message,peripheral_settings_data_request,message.peripheral_settings_data_request), 191) \
|
X(a, STATIC, ONEOF, MESSAGE, \
|
||||||
|
(message, peripheral_settings_data_request, message.peripheral_settings_data_request), 191) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (message, kinematic_data, message.kinematic_data), 200) \
|
X(a, STATIC, ONEOF, MESSAGE, (message, kinematic_data, message.kinematic_data), 200) \
|
||||||
|
X(a, STATIC, ONEOF, MESSAGE, (message, servo_pwm, message.servo_pwm), 210) \
|
||||||
|
X(a, STATIC, ONEOF, MESSAGE, (message, servo_state, message.servo_state), 211) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (message, wifi_settings, message.wifi_settings), 240) \
|
X(a, STATIC, ONEOF, MESSAGE, (message, wifi_settings, message.wifi_settings), 240) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (message, human_input_data, message.human_input_data), 250) \
|
X(a, STATIC, ONEOF, MESSAGE, (message, human_input_data, message.human_input_data), 250) \
|
||||||
X(a, STATIC, ONEOF, MESSAGE, (message, rssi, message.rssi), 260)
|
X(a, STATIC, ONEOF, MESSAGE, (message, rssi, message.rssi), 260)
|
||||||
@@ -856,8 +979,11 @@ X(a, STATIC, ONEOF, MESSAGE, (message,rssi,message.rssi), 260)
|
|||||||
#define socket_message_WebsocketMessage_message_i2c_scan_MSGTYPE socket_message_I2CScanData
|
#define socket_message_WebsocketMessage_message_i2c_scan_MSGTYPE socket_message_I2CScanData
|
||||||
#define socket_message_WebsocketMessage_message_i2c_scan_data_request_MSGTYPE socket_message_I2CScanDataRequest
|
#define socket_message_WebsocketMessage_message_i2c_scan_data_request_MSGTYPE socket_message_I2CScanDataRequest
|
||||||
#define socket_message_WebsocketMessage_message_peripheral_settings_MSGTYPE socket_message_PeripheralSettingsData
|
#define socket_message_WebsocketMessage_message_peripheral_settings_MSGTYPE socket_message_PeripheralSettingsData
|
||||||
#define socket_message_WebsocketMessage_message_peripheral_settings_data_request_MSGTYPE socket_message_PeripheralSettingsDataRequest
|
#define socket_message_WebsocketMessage_message_peripheral_settings_data_request_MSGTYPE \
|
||||||
|
socket_message_PeripheralSettingsDataRequest
|
||||||
#define socket_message_WebsocketMessage_message_kinematic_data_MSGTYPE socket_message_KinematicData
|
#define socket_message_WebsocketMessage_message_kinematic_data_MSGTYPE socket_message_KinematicData
|
||||||
|
#define socket_message_WebsocketMessage_message_servo_pwm_MSGTYPE socket_message_ServoPWMData
|
||||||
|
#define socket_message_WebsocketMessage_message_servo_state_MSGTYPE socket_message_ServoStateData
|
||||||
#define socket_message_WebsocketMessage_message_wifi_settings_MSGTYPE socket_message_WifiSettingsData
|
#define socket_message_WebsocketMessage_message_wifi_settings_MSGTYPE socket_message_WifiSettingsData
|
||||||
#define socket_message_WebsocketMessage_message_human_input_data_MSGTYPE socket_message_HumanInputData
|
#define socket_message_WebsocketMessage_message_human_input_data_MSGTYPE socket_message_HumanInputData
|
||||||
#define socket_message_WebsocketMessage_message_rssi_MSGTYPE socket_message_RSSIData
|
#define socket_message_WebsocketMessage_message_rssi_MSGTYPE socket_message_RSSIData
|
||||||
|
|||||||
@@ -178,6 +178,8 @@ message WebsocketMessage {
|
|||||||
PeripheralSettingsData peripheral_settings = 190;
|
PeripheralSettingsData peripheral_settings = 190;
|
||||||
PeripheralSettingsDataRequest peripheral_settings_data_request = 191;
|
PeripheralSettingsDataRequest peripheral_settings_data_request = 191;
|
||||||
KinematicData kinematic_data = 200;
|
KinematicData kinematic_data = 200;
|
||||||
|
ServoPWMData servo_pwm = 210;
|
||||||
|
ServoStateData servo_state = 211;
|
||||||
WifiSettingsData wifi_settings = 240;
|
WifiSettingsData wifi_settings = 240;
|
||||||
HumanInputData human_input_data = 250;
|
HumanInputData human_input_data = 250;
|
||||||
RSSIData rssi = 260;
|
RSSIData rssi = 260;
|
||||||
|
|||||||
Reference in New Issue
Block a user