♻️ Handle incomming messages

This commit is contained in:
Rune Harlyk
2026-01-03 12:49:48 +01:00
committed by nikguin04
parent c0c13754f4
commit fa332995f9
11 changed files with 603 additions and 632 deletions
+11 -84
View File
@@ -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_;
+63 -73
View File
@@ -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);
+9 -20
View File
@@ -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>();
} }
}; };
+8 -9
View File
@@ -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,23 +21,23 @@ 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);
void handleGestures(const gesture_t ges); void handleGestures(const gesture_t ges);
bool update(Peripherals *peripherals); bool update(Peripherals* peripherals);
bool update_angles(float new_angles[12], float angles[12]); bool update_angles(float new_angles[12], float angles[12]);
float *getAngles() { return angles; } float* getAngles() { return angles; }
inline bool isActive() { return state != nullptr; } inline bool isActive() { return state != nullptr; }
@@ -49,7 +48,7 @@ class MotionService {
friend class MotionState; friend class MotionState;
MotionState *state = nullptr; MotionState* state = nullptr;
RestState restState; RestState restState;
StandState standState; StandState standState;
+2 -10
View File
@@ -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);
+21 -61
View File
@@ -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::begin() { server_.on(route_, &socket_); }
void Websocket::onEvent(std::string event, EventCallback callback) { void Websocket::onWSOpen(PsychicWebSocketClient* client) {
//CommAdapterBase::onEvent(std::move(event), std::move(callback)); ESP_LOGI(TAG, "Client connected: %s [%u]", client->remoteIP().toString().c_str(), client->socket());
sendPong(client->socket());
} }
void Websocket::emit(const char *event, JsonVariant &payload, const char *originId, bool onlyToSameOrigin) { void Websocket::onWSClose(PsychicWebSocketClient* client) {
//CommAdapterBase::emit(event, payload, originId, onlyToSameOrigin); ESP_LOGI(TAG, "Client disconnected: %s [%u]", client->remoteIP().toString().c_str(), client->socket());
removeClient(client->socket());
} }
esp_err_t Websocket::onFrame(PsychicWebSocketRequest* request, httpd_ws_frame* frame) {
void Websocket::onWSOpen(PsychicWebSocketClient *client) { if (frame->type != HTTPD_WS_TYPE_BINARY) {
ESP_LOGI("EventSocket", "ws[%s][%u] connect", client->remoteIP().toString().c_str(), client->socket()); ESP_LOGW(TAG, "Expected binary frame, got type %d", frame->type);
ping(client->socket()); return ESP_OK;
}
void Websocket::onWSClose(PsychicWebSocketClient *client) {
xSemaphoreTake(mutex_, portMAX_DELAY);
for (auto &event_subscriptions : client_subscriptions) {
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_LOGV(TAG, "ws[%s][%u] opcode[%d]", request->client()->remoteIP().toString().c_str(),
// request->client()->socket(), frame->type);
// 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
View File
@@ -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 *) {
+12 -15
View File
@@ -2,14 +2,13 @@
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];
} }
} }
void MotionService::setState(MotionState *newState) { void MotionService::setState(MotionState* newState) {
if (state) { if (state) {
state->end(); state->end();
} }
@@ -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;
@@ -60,7 +57,7 @@ void MotionService::handleGestures(const gesture_t ges) {
} }
} }
bool MotionService::update(Peripherals *peripherals) { bool MotionService::update(Peripherals* peripherals) {
handleGestures(peripherals->takeGesture()); handleGestures(peripherals->takeGesture());
if (!state) return false; if (!state) return false;
int64_t now = esp_timer_get_time(); int64_t now = esp_timer_get_time();
+383 -257
View File
@@ -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
@@ -303,121 +306,247 @@ extern "C" {
/* Helper constants for enums */ /* Helper constants for enums */
#define _socket_message_ModesEnum_MIN socket_message_ModesEnum_DEACTIVATED #define _socket_message_ModesEnum_MIN socket_message_ModesEnum_DEACTIVATED
#define _socket_message_ModesEnum_MAX socket_message_ModesEnum_WALK #define _socket_message_ModesEnum_MAX socket_message_ModesEnum_WALK
#define _socket_message_ModesEnum_ARRAYSIZE ((socket_message_ModesEnum)(socket_message_ModesEnum_WALK+1)) #define _socket_message_ModesEnum_ARRAYSIZE ((socket_message_ModesEnum)(socket_message_ModesEnum_WALK + 1))
#define _socket_message_WalkGaits_MIN socket_message_WalkGaits_TROT #define _socket_message_WalkGaits_MIN socket_message_WalkGaits_TROT
#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,295 +677,289 @@ 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
/* Struct field encoding specification for nanopb */ /* Struct field encoding specification for nanopb */
#define socket_message_Vector_FIELDLIST(X, a) \ #define socket_message_Vector_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, FLOAT, x, 1) \ X(a, STATIC, SINGULAR, FLOAT, x, 1) \
X(a, STATIC, SINGULAR, FLOAT, y, 2) X(a, STATIC, SINGULAR, FLOAT, y, 2)
#define socket_message_Vector_CALLBACK NULL #define socket_message_Vector_CALLBACK NULL
#define socket_message_Vector_DEFAULT NULL #define socket_message_Vector_DEFAULT NULL
#define socket_message_I2CDevice_FIELDLIST(X, a) \ #define socket_message_I2CDevice_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, address, 1) \ X(a, STATIC, SINGULAR, INT32, address, 1) \
X(a, STATIC, SINGULAR, STRING, part_number, 2) \ X(a, STATIC, SINGULAR, STRING, part_number, 2) \
X(a, STATIC, SINGULAR, STRING, name, 3) X(a, STATIC, SINGULAR, STRING, name, 3)
#define socket_message_I2CDevice_CALLBACK NULL #define socket_message_I2CDevice_CALLBACK NULL
#define socket_message_I2CDevice_DEFAULT NULL #define socket_message_I2CDevice_DEFAULT NULL
#define socket_message_PinConfig_FIELDLIST(X, a) \ #define socket_message_PinConfig_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, pin, 1) \ X(a, STATIC, SINGULAR, INT32, pin, 1) \
X(a, STATIC, SINGULAR, STRING, mode, 2) \ X(a, STATIC, SINGULAR, STRING, mode, 2) \
X(a, STATIC, SINGULAR, STRING, type, 3) \ X(a, STATIC, SINGULAR, STRING, type, 3) \
X(a, STATIC, SINGULAR, STRING, role, 4) X(a, STATIC, SINGULAR, STRING, role, 4)
#define socket_message_PinConfig_CALLBACK NULL #define socket_message_PinConfig_CALLBACK NULL
#define socket_message_PinConfig_DEFAULT NULL #define socket_message_PinConfig_DEFAULT NULL
#define socket_message_KnownNetworkItem_FIELDLIST(X, a) \ #define socket_message_KnownNetworkItem_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, STRING, ssid, 1) \ X(a, STATIC, SINGULAR, STRING, ssid, 1) \
X(a, STATIC, SINGULAR, STRING, password, 2) \ X(a, STATIC, SINGULAR, STRING, password, 2) \
X(a, STATIC, SINGULAR, BOOL, static_ip, 3) \ X(a, STATIC, SINGULAR, BOOL, static_ip, 3) \
X(a, STATIC, OPTIONAL, STRING, local_ip, 4) \ X(a, STATIC, OPTIONAL, STRING, local_ip, 4) \
X(a, STATIC, OPTIONAL, STRING, subnet_mask, 5) \ X(a, STATIC, OPTIONAL, STRING, subnet_mask, 5) \
X(a, STATIC, OPTIONAL, STRING, gateway_ip, 6) \ X(a, STATIC, OPTIONAL, STRING, gateway_ip, 6) \
X(a, STATIC, OPTIONAL, STRING, dns_ip_1, 7) \ X(a, STATIC, OPTIONAL, STRING, dns_ip_1, 7) \
X(a, STATIC, OPTIONAL, STRING, dns_ip_2, 8) X(a, STATIC, OPTIONAL, STRING, dns_ip_2, 8)
#define socket_message_KnownNetworkItem_CALLBACK NULL #define socket_message_KnownNetworkItem_CALLBACK NULL
#define socket_message_KnownNetworkItem_DEFAULT NULL #define socket_message_KnownNetworkItem_DEFAULT NULL
#define socket_message_IMUData_FIELDLIST(X, a) \ #define socket_message_IMUData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, FLOAT, x, 1) \ X(a, STATIC, SINGULAR, FLOAT, x, 1) \
X(a, STATIC, SINGULAR, FLOAT, y, 2) \ X(a, STATIC, SINGULAR, FLOAT, y, 2) \
X(a, STATIC, SINGULAR, FLOAT, z, 3) \ X(a, STATIC, SINGULAR, FLOAT, z, 3) \
X(a, STATIC, SINGULAR, FLOAT, heading, 4) \ X(a, STATIC, SINGULAR, FLOAT, heading, 4) \
X(a, STATIC, SINGULAR, FLOAT, altitude, 5) \ X(a, STATIC, SINGULAR, FLOAT, altitude, 5) \
X(a, STATIC, SINGULAR, FLOAT, bmp_temp, 6) \ X(a, STATIC, SINGULAR, FLOAT, bmp_temp, 6) \
X(a, STATIC, SINGULAR, FLOAT, pressure, 7) X(a, STATIC, SINGULAR, FLOAT, pressure, 7)
#define socket_message_IMUData_CALLBACK NULL #define socket_message_IMUData_CALLBACK NULL
#define socket_message_IMUData_DEFAULT NULL #define socket_message_IMUData_DEFAULT NULL
#define socket_message_FeaturesDataResponse_FIELDLIST(X, a) \ #define socket_message_FeaturesDataResponse_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, variant, 10) \ X(a, CALLBACK, SINGULAR, STRING, variant, 10) \
X(a, CALLBACK, SINGULAR, STRING, firmware_built_target, 20) \ X(a, CALLBACK, SINGULAR, STRING, firmware_built_target, 20) \
X(a, CALLBACK, SINGULAR, STRING, firmware_name, 30) \ X(a, CALLBACK, SINGULAR, STRING, firmware_name, 30) \
X(a, CALLBACK, SINGULAR, STRING, firmware_version, 40) \ X(a, CALLBACK, SINGULAR, STRING, firmware_version, 40) \
X(a, STATIC, SINGULAR, BOOL, camera, 50) \ X(a, STATIC, SINGULAR, BOOL, camera, 50) \
X(a, STATIC, SINGULAR, BOOL, imu, 60) \ X(a, STATIC, SINGULAR, BOOL, imu, 60) \
X(a, STATIC, SINGULAR, BOOL, mag, 70) \ X(a, STATIC, SINGULAR, BOOL, mag, 70) \
X(a, STATIC, SINGULAR, BOOL, bmp, 80) \ X(a, STATIC, SINGULAR, BOOL, bmp, 80) \
X(a, STATIC, SINGULAR, BOOL, sonar, 90) \ X(a, STATIC, SINGULAR, BOOL, sonar, 90) \
X(a, STATIC, SINGULAR, BOOL, servo, 100) \ X(a, STATIC, SINGULAR, BOOL, servo, 100) \
X(a, STATIC, SINGULAR, BOOL, ws2812, 110) \ X(a, STATIC, SINGULAR, BOOL, ws2812, 110) \
X(a, STATIC, SINGULAR, BOOL, mdns, 120) \ X(a, STATIC, SINGULAR, BOOL, mdns, 120) \
X(a, STATIC, SINGULAR, BOOL, embed_www, 130) 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
#define socket_message_CorrelationRequest_FIELDLIST(X, a) \ #define socket_message_CorrelationRequest_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT32, correlation_id, 1) \ X(a, STATIC, SINGULAR, UINT32, correlation_id, 1) \
X(a, STATIC, ONEOF, MESSAGE, (request,features_data_request,request.features_data_request), 10) X(a, STATIC, ONEOF, MESSAGE, (request, features_data_request, request.features_data_request), 10)
#define socket_message_CorrelationRequest_CALLBACK NULL #define socket_message_CorrelationRequest_CALLBACK NULL
#define socket_message_CorrelationRequest_DEFAULT NULL #define socket_message_CorrelationRequest_DEFAULT NULL
#define socket_message_CorrelationRequest_request_features_data_request_MSGTYPE socket_message_FeaturesDataRequest #define socket_message_CorrelationRequest_request_features_data_request_MSGTYPE socket_message_FeaturesDataRequest
#define socket_message_CorrelationResponse_FIELDLIST(X, a) \ #define socket_message_CorrelationResponse_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT32, correlation_id, 1) \ X(a, STATIC, SINGULAR, UINT32, correlation_id, 1) \
X(a, STATIC, SINGULAR, UINT32, stauts_code, 2) \ X(a, STATIC, SINGULAR, UINT32, stauts_code, 2) \
X(a, STATIC, ONEOF, MESSAGE, (response,features_data_response,response.features_data_response), 10) X(a, STATIC, ONEOF, MESSAGE, (response, features_data_response, response.features_data_response), 10)
#define socket_message_CorrelationResponse_CALLBACK NULL #define socket_message_CorrelationResponse_CALLBACK NULL
#define socket_message_CorrelationResponse_DEFAULT NULL #define socket_message_CorrelationResponse_DEFAULT NULL
#define socket_message_CorrelationResponse_response_features_data_response_MSGTYPE socket_message_FeaturesDataResponse #define socket_message_CorrelationResponse_response_features_data_response_MSGTYPE socket_message_FeaturesDataResponse
#define socket_message_StaticSystemInformation_FIELDLIST(X, a) \ #define socket_message_StaticSystemInformation_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, STRING, esp_platform, 1) \ X(a, STATIC, SINGULAR, STRING, esp_platform, 1) \
X(a, STATIC, SINGULAR, STRING, firmware_version, 2) \ X(a, STATIC, SINGULAR, STRING, firmware_version, 2) \
X(a, STATIC, SINGULAR, UINT32, cpu_freq_mhz, 3) \ X(a, STATIC, SINGULAR, UINT32, cpu_freq_mhz, 3) \
X(a, STATIC, SINGULAR, STRING, cpu_type, 4) \ X(a, STATIC, SINGULAR, STRING, cpu_type, 4) \
X(a, STATIC, SINGULAR, INT32, cpu_rev, 5) \ X(a, STATIC, SINGULAR, INT32, cpu_rev, 5) \
X(a, STATIC, SINGULAR, UINT32, cpu_cores, 6) \ X(a, STATIC, SINGULAR, UINT32, cpu_cores, 6) \
X(a, STATIC, SINGULAR, UINT32, sketch_size, 7) \ X(a, STATIC, SINGULAR, UINT32, sketch_size, 7) \
X(a, STATIC, SINGULAR, UINT32, free_sketch_space, 8) \ X(a, STATIC, SINGULAR, UINT32, free_sketch_space, 8) \
X(a, STATIC, SINGULAR, STRING, sdk_version, 9) \ X(a, STATIC, SINGULAR, STRING, sdk_version, 9) \
X(a, STATIC, SINGULAR, STRING, arduino_version, 10) \ X(a, STATIC, SINGULAR, STRING, arduino_version, 10) \
X(a, STATIC, SINGULAR, UINT32, flash_chip_size, 11) \ X(a, STATIC, SINGULAR, UINT32, flash_chip_size, 11) \
X(a, STATIC, SINGULAR, UINT32, flash_chip_speed, 12) \ X(a, STATIC, SINGULAR, UINT32, flash_chip_speed, 12) \
X(a, STATIC, SINGULAR, STRING, cpu_reset_reason, 13) 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
#define socket_message_ControllerInputData_FIELDLIST(X, a) \ #define socket_message_ControllerInputData_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, left, 1) \ X(a, STATIC, OPTIONAL, MESSAGE, left, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, right, 2) \ X(a, STATIC, OPTIONAL, MESSAGE, right, 2) \
X(a, STATIC, SINGULAR, FLOAT, height, 3) \ X(a, STATIC, SINGULAR, FLOAT, height, 3) \
X(a, STATIC, SINGULAR, FLOAT, speed, 4) \ X(a, STATIC, SINGULAR, FLOAT, speed, 4) \
X(a, STATIC, SINGULAR, FLOAT, s1, 5) X(a, STATIC, SINGULAR, FLOAT, s1, 5)
#define socket_message_ControllerInputData_CALLBACK NULL #define socket_message_ControllerInputData_CALLBACK NULL
#define socket_message_ControllerInputData_DEFAULT NULL #define socket_message_ControllerInputData_DEFAULT NULL
#define socket_message_ControllerInputData_left_MSGTYPE socket_message_Vector #define socket_message_ControllerInputData_left_MSGTYPE socket_message_Vector
#define socket_message_ControllerInputData_right_MSGTYPE socket_message_Vector #define socket_message_ControllerInputData_right_MSGTYPE socket_message_Vector
#define socket_message_AnalyticsData_FIELDLIST(X, a) \ #define socket_message_AnalyticsData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, max_alloc_heap, 1) \ X(a, STATIC, SINGULAR, INT32, max_alloc_heap, 1) \
X(a, STATIC, SINGULAR, INT32, psram_size, 2) \ X(a, STATIC, SINGULAR, INT32, psram_size, 2) \
X(a, STATIC, SINGULAR, INT32, free_psram, 3) \ X(a, STATIC, SINGULAR, INT32, free_psram, 3) \
X(a, STATIC, SINGULAR, INT32, free_heap, 4) \ X(a, STATIC, SINGULAR, INT32, free_heap, 4) \
X(a, STATIC, SINGULAR, INT32, total_heap, 5) \ X(a, STATIC, SINGULAR, INT32, total_heap, 5) \
X(a, STATIC, SINGULAR, INT32, min_free_heap, 6) \ X(a, STATIC, SINGULAR, INT32, min_free_heap, 6) \
X(a, STATIC, SINGULAR, FLOAT, core_temp, 7) \ X(a, STATIC, SINGULAR, FLOAT, core_temp, 7) \
X(a, STATIC, SINGULAR, INT32, fs_total, 8) \ X(a, STATIC, SINGULAR, INT32, fs_total, 8) \
X(a, STATIC, SINGULAR, INT32, fs_used, 9) \ X(a, STATIC, SINGULAR, INT32, fs_used, 9) \
X(a, STATIC, SINGULAR, INT64, uptime, 10) \ X(a, STATIC, SINGULAR, INT64, uptime, 10) \
X(a, STATIC, SINGULAR, INT32, cpu0_usage, 11) \ X(a, STATIC, SINGULAR, INT32, cpu0_usage, 11) \
X(a, STATIC, SINGULAR, INT32, cpu1_usage, 12) \ X(a, STATIC, SINGULAR, INT32, cpu1_usage, 12) \
X(a, STATIC, SINGULAR, INT32, cpu_usage, 13) X(a, STATIC, SINGULAR, INT32, cpu_usage, 13)
#define socket_message_AnalyticsData_CALLBACK NULL #define socket_message_AnalyticsData_CALLBACK NULL
#define socket_message_AnalyticsData_DEFAULT NULL #define socket_message_AnalyticsData_DEFAULT NULL
#define socket_message_ServoPWMData_FIELDLIST(X, a) \ #define socket_message_ServoPWMData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, servo_id, 1) \ X(a, STATIC, SINGULAR, INT32, servo_id, 1) \
X(a, STATIC, SINGULAR, UINT32, servo_pwm, 2) 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
#define socket_message_PeripheralSettingsData_FIELDLIST(X, a) \ #define socket_message_PeripheralSettingsData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, sda, 1) \ X(a, STATIC, SINGULAR, INT32, sda, 1) \
X(a, STATIC, SINGULAR, INT32, scl, 2) \ X(a, STATIC, SINGULAR, INT32, scl, 2) \
X(a, STATIC, SINGULAR, INT32, frequency, 3) \ X(a, STATIC, SINGULAR, INT32, frequency, 3) \
X(a, STATIC, REPEATED, MESSAGE, pins, 4) X(a, STATIC, REPEATED, MESSAGE, pins, 4)
#define socket_message_PeripheralSettingsData_CALLBACK NULL #define socket_message_PeripheralSettingsData_CALLBACK NULL
#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
#define socket_message_WifiSettingsData_FIELDLIST(X, a) \ #define socket_message_WifiSettingsData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, STRING, hostname, 1) \ X(a, STATIC, SINGULAR, STRING, hostname, 1) \
X(a, STATIC, SINGULAR, BOOL, priority_rssi, 2) \ X(a, STATIC, SINGULAR, BOOL, priority_rssi, 2) \
X(a, STATIC, REPEATED, MESSAGE, wifi_networks, 3) X(a, STATIC, REPEATED, MESSAGE, wifi_networks, 3)
#define socket_message_WifiSettingsData_CALLBACK NULL #define socket_message_WifiSettingsData_CALLBACK NULL
#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
#define socket_message_DownloadOTAData_FIELDLIST(X, a) \ #define socket_message_DownloadOTAData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, STRING, status, 1) \ X(a, STATIC, SINGULAR, STRING, status, 1) \
X(a, STATIC, SINGULAR, INT32, progress, 2) \ X(a, STATIC, SINGULAR, INT32, progress, 2) \
X(a, STATIC, SINGULAR, STRING, error, 3) 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
#define socket_message_HumanInputData_FIELDLIST(X, a) \ #define socket_message_HumanInputData_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, left, 10) \ X(a, STATIC, OPTIONAL, MESSAGE, left, 10) \
X(a, STATIC, OPTIONAL, MESSAGE, right, 11) \ X(a, STATIC, OPTIONAL, MESSAGE, right, 11) \
X(a, STATIC, SINGULAR, FLOAT, height, 20) \ X(a, STATIC, SINGULAR, FLOAT, height, 20) \
X(a, STATIC, SINGULAR, FLOAT, speed, 21) \ X(a, STATIC, SINGULAR, FLOAT, speed, 21) \
X(a, STATIC, SINGULAR, FLOAT, s1, 22) X(a, STATIC, SINGULAR, FLOAT, s1, 22)
#define socket_message_HumanInputData_CALLBACK NULL #define socket_message_HumanInputData_CALLBACK NULL
#define socket_message_HumanInputData_DEFAULT NULL #define socket_message_HumanInputData_DEFAULT NULL
#define socket_message_HumanInputData_left_MSGTYPE socket_message_Vector #define socket_message_HumanInputData_left_MSGTYPE socket_message_Vector
#define socket_message_HumanInputData_right_MSGTYPE socket_message_Vector #define socket_message_HumanInputData_right_MSGTYPE socket_message_Vector
#define socket_message_SystemInformation_FIELDLIST(X, a) \ #define socket_message_SystemInformation_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, analytics_data, 1) \ X(a, STATIC, OPTIONAL, MESSAGE, analytics_data, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, static_system_information, 2) X(a, STATIC, OPTIONAL, MESSAGE, static_system_information, 2)
#define socket_message_SystemInformation_CALLBACK NULL #define socket_message_SystemInformation_CALLBACK NULL
#define socket_message_SystemInformation_DEFAULT NULL #define socket_message_SystemInformation_DEFAULT NULL
#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
#define socket_message_KinematicData_FIELDLIST(X, a) \ #define socket_message_KinematicData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, FLOAT, omega, 1) \ X(a, STATIC, SINGULAR, FLOAT, omega, 1) \
X(a, STATIC, SINGULAR, FLOAT, phi, 2) \ X(a, STATIC, SINGULAR, FLOAT, phi, 2) \
X(a, STATIC, SINGULAR, FLOAT, psi, 3) \ X(a, STATIC, SINGULAR, FLOAT, psi, 3) \
X(a, STATIC, SINGULAR, FLOAT, xm, 4) \ X(a, STATIC, SINGULAR, FLOAT, xm, 4) \
X(a, STATIC, SINGULAR, FLOAT, ym, 5) \ X(a, STATIC, SINGULAR, FLOAT, ym, 5) \
X(a, STATIC, SINGULAR, FLOAT, zm, 6) 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
#define socket_message_WebsocketMessage_FIELDLIST(X, a) \ #define socket_message_WebsocketMessage_FIELDLIST(X, a) \
X(a, STATIC, ONEOF, MESSAGE, (message,correlation_request,message.correlation_request), 10) \ X(a, STATIC, ONEOF, MESSAGE, (message, correlation_request, message.correlation_request), 10) \
X(a, STATIC, ONEOF, MESSAGE, (message,correlation_response,message.correlation_response), 11) \ X(a, STATIC, ONEOF, MESSAGE, (message, correlation_response, message.correlation_response), 11) \
X(a, STATIC, ONEOF, MESSAGE, (message,sub_notif,message.sub_notif), 20) \ X(a, STATIC, ONEOF, MESSAGE, (message, sub_notif, message.sub_notif), 20) \
X(a, STATIC, ONEOF, MESSAGE, (message,unsub_notif,message.unsub_notif), 21) \ X(a, STATIC, ONEOF, MESSAGE, (message, unsub_notif, message.unsub_notif), 21) \
X(a, STATIC, ONEOF, MESSAGE, (message,pingmsg,message.pingmsg), 30) \ X(a, STATIC, ONEOF, MESSAGE, (message, pingmsg, message.pingmsg), 30) \
X(a, STATIC, ONEOF, MESSAGE, (message,pongmsg,message.pongmsg), 31) \ X(a, STATIC, ONEOF, MESSAGE, (message, pongmsg, message.pongmsg), 31) \
X(a, STATIC, ONEOF, MESSAGE, (message,imu,message.imu), 110) \ X(a, STATIC, ONEOF, MESSAGE, (message, imu, message.imu), 110) \
X(a, STATIC, ONEOF, MESSAGE, (message,imu_calibrate,message.imu_calibrate), 120) \ X(a, STATIC, ONEOF, MESSAGE, (message, imu_calibrate, message.imu_calibrate), 120) \
X(a, STATIC, ONEOF, MESSAGE, (message,imu_calibrate_execute,message.imu_calibrate_execute), 121) \ X(a, STATIC, ONEOF, MESSAGE, (message, imu_calibrate_execute, message.imu_calibrate_execute), 121) \
X(a, STATIC, ONEOF, MESSAGE, (message,mode,message.mode), 130) \ X(a, STATIC, ONEOF, MESSAGE, (message, mode, message.mode), 130) \
X(a, STATIC, ONEOF, MESSAGE, (message,input,message.input), 140) \ X(a, STATIC, ONEOF, MESSAGE, (message, input, message.input), 140) \
X(a, STATIC, ONEOF, MESSAGE, (message,analytics,message.analytics), 150) \ X(a, STATIC, ONEOF, MESSAGE, (message, analytics, message.analytics), 150) \
X(a, STATIC, ONEOF, MESSAGE, (message,walk_gait,message.walk_gait), 160) \ X(a, STATIC, ONEOF, MESSAGE, (message, walk_gait, message.walk_gait), 160) \
X(a, STATIC, ONEOF, MESSAGE, (message,angles,message.angles), 170) \ 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, \
X(a, STATIC, ONEOF, MESSAGE, (message,kinematic_data,message.kinematic_data), 200) \ (message, peripheral_settings_data_request, message.peripheral_settings_data_request), 191) \
X(a, STATIC, ONEOF, MESSAGE, (message,wifi_settings,message.wifi_settings), 240) \ X(a, STATIC, ONEOF, MESSAGE, (message, kinematic_data, message.kinematic_data), 200) \
X(a, STATIC, ONEOF, MESSAGE, (message,human_input_data,message.human_input_data), 250) \ X(a, STATIC, ONEOF, MESSAGE, (message, servo_pwm, message.servo_pwm), 210) \
X(a, STATIC, ONEOF, MESSAGE, (message,rssi,message.rssi), 260) 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, human_input_data, message.human_input_data), 250) \
X(a, STATIC, ONEOF, MESSAGE, (message, rssi, message.rssi), 260)
#define socket_message_WebsocketMessage_CALLBACK NULL #define socket_message_WebsocketMessage_CALLBACK NULL
#define socket_message_WebsocketMessage_DEFAULT NULL #define socket_message_WebsocketMessage_DEFAULT NULL
#define socket_message_WebsocketMessage_message_correlation_request_MSGTYPE socket_message_CorrelationRequest #define socket_message_WebsocketMessage_message_correlation_request_MSGTYPE socket_message_CorrelationRequest
@@ -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
+2
View File
@@ -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;