Adds promise based request reponse system

This commit is contained in:
Rune Harlyk
2026-01-03 15:21:14 +01:00
committed by nikguin04
parent 585adaf28f
commit dc04204e8e
9 changed files with 3208 additions and 887 deletions
+1 -1
View File
@@ -15,7 +15,7 @@
"format": "prettier --write .", "format": "prettier --write .",
"test:integration": "playwright test", "test:integration": "playwright test",
"test:unit": "vitest", "test:unit": "vitest",
"proto": "protoc --plugin=protoc-gen-ts_proto=.\\node_modules\\.bin\\protoc-gen-ts_proto.cmd --ts_proto_out=./src/lib/platform_shared --ts_proto_opt=outputTypeAnnotations=true,useExactTypes=false,outputExtensions=true,outputTypeRegistry=true -I ../platform_shared ../platform_shared/websocket_message.proto ../platform_shared/rest_message.proto" "proto": "protoc --plugin=protoc-gen-ts_proto=.\\node_modules\\.bin\\protoc-gen-ts_proto.cmd --ts_proto_out=./src/lib/platform_shared --ts_proto_opt=outputTypeAnnotations=true,useExactTypes=false,outputExtensions=true,outputTypeRegistry=true,outputSchema=true -I ../platform_shared ../platform_shared/websocket_message.proto ../platform_shared/rest_message.proto"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "^9.39.2", "@eslint/js": "^9.39.2",
+261 -28
View File
@@ -6,13 +6,12 @@
/* eslint-disable */ /* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { messageTypeRegistry } from "./typeRegistry"; import type { FileDescriptorProto } from "ts-proto-descriptors";
import { KnownNetworkItem } from "./websocket_message"; import { KnownNetworkItem, protoMetadata as protoMetadata1 } from "./websocket_message";
export const protobufPackage = "rest_message"; export const protobufPackage = "rest_message";
export interface WifiStatus { export interface WifiStatus {
$type: "rest_message.WifiStatus";
status: number; status: number;
localIp: string; localIp: string;
macAddress: string; macAddress: string;
@@ -27,7 +26,6 @@ export interface WifiStatus {
} }
export interface WifiSettings { export interface WifiSettings {
$type: "rest_message.WifiSettings";
hostname: string; hostname: string;
priorityRssi: boolean; priorityRssi: boolean;
wifiNetworks: KnownNetworkItem[]; wifiNetworks: KnownNetworkItem[];
@@ -35,7 +33,6 @@ export interface WifiSettings {
function createBaseWifiStatus(): WifiStatus { function createBaseWifiStatus(): WifiStatus {
return { return {
$type: "rest_message.WifiStatus",
status: 0, status: 0,
localIp: "", localIp: "",
macAddress: "", macAddress: "",
@@ -50,9 +47,7 @@ function createBaseWifiStatus(): WifiStatus {
}; };
} }
export const WifiStatus: MessageFns<WifiStatus, "rest_message.WifiStatus"> = { export const WifiStatus: MessageFns<WifiStatus> = {
$type: "rest_message.WifiStatus" as const,
encode(message: WifiStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { encode(message: WifiStatus, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.status !== 0) { if (message.status !== 0) {
writer.uint32(8).int32(message.status); writer.uint32(8).int32(message.status);
@@ -196,7 +191,6 @@ export const WifiStatus: MessageFns<WifiStatus, "rest_message.WifiStatus"> = {
fromJSON(object: any): WifiStatus { fromJSON(object: any): WifiStatus {
return { return {
$type: WifiStatus.$type,
status: isSet(object.status) ? globalThis.Number(object.status) : 0, status: isSet(object.status) ? globalThis.Number(object.status) : 0,
localIp: isSet(object.localIp) ? globalThis.String(object.localIp) : "", localIp: isSet(object.localIp) ? globalThis.String(object.localIp) : "",
macAddress: isSet(object.macAddress) ? globalThis.String(object.macAddress) : "", macAddress: isSet(object.macAddress) ? globalThis.String(object.macAddress) : "",
@@ -249,10 +243,10 @@ export const WifiStatus: MessageFns<WifiStatus, "rest_message.WifiStatus"> = {
return obj; return obj;
}, },
create(base?: DeepPartial<WifiStatus>): WifiStatus { create<I extends Exact<DeepPartial<WifiStatus>, I>>(base?: I): WifiStatus {
return WifiStatus.fromPartial(base ?? {}); return WifiStatus.fromPartial(base ?? ({} as any));
}, },
fromPartial(object: DeepPartial<WifiStatus>): WifiStatus { fromPartial<I extends Exact<DeepPartial<WifiStatus>, I>>(object: I): WifiStatus {
const message = createBaseWifiStatus(); const message = createBaseWifiStatus();
message.status = object.status ?? 0; message.status = object.status ?? 0;
message.localIp = object.localIp ?? ""; message.localIp = object.localIp ?? "";
@@ -269,15 +263,11 @@ export const WifiStatus: MessageFns<WifiStatus, "rest_message.WifiStatus"> = {
}, },
}; };
messageTypeRegistry.set(WifiStatus.$type, WifiStatus);
function createBaseWifiSettings(): WifiSettings { function createBaseWifiSettings(): WifiSettings {
return { $type: "rest_message.WifiSettings", hostname: "", priorityRssi: false, wifiNetworks: [] }; return { hostname: "", priorityRssi: false, wifiNetworks: [] };
} }
export const WifiSettings: MessageFns<WifiSettings, "rest_message.WifiSettings"> = { export const WifiSettings: MessageFns<WifiSettings> = {
$type: "rest_message.WifiSettings" as const,
encode(message: WifiSettings, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { encode(message: WifiSettings, writer: BinaryWriter = new BinaryWriter()): BinaryWriter {
if (message.hostname !== "") { if (message.hostname !== "") {
writer.uint32(10).string(message.hostname); writer.uint32(10).string(message.hostname);
@@ -333,7 +323,6 @@ export const WifiSettings: MessageFns<WifiSettings, "rest_message.WifiSettings">
fromJSON(object: any): WifiSettings { fromJSON(object: any): WifiSettings {
return { return {
$type: WifiSettings.$type,
hostname: isSet(object.hostname) ? globalThis.String(object.hostname) : "", hostname: isSet(object.hostname) ? globalThis.String(object.hostname) : "",
priorityRssi: isSet(object.priorityRssi) ? globalThis.Boolean(object.priorityRssi) : false, priorityRssi: isSet(object.priorityRssi) ? globalThis.Boolean(object.priorityRssi) : false,
wifiNetworks: globalThis.Array.isArray(object?.wifiNetworks) wifiNetworks: globalThis.Array.isArray(object?.wifiNetworks)
@@ -356,10 +345,10 @@ export const WifiSettings: MessageFns<WifiSettings, "rest_message.WifiSettings">
return obj; return obj;
}, },
create(base?: DeepPartial<WifiSettings>): WifiSettings { create<I extends Exact<DeepPartial<WifiSettings>, I>>(base?: I): WifiSettings {
return WifiSettings.fromPartial(base ?? {}); return WifiSettings.fromPartial(base ?? ({} as any));
}, },
fromPartial(object: DeepPartial<WifiSettings>): WifiSettings { fromPartial<I extends Exact<DeepPartial<WifiSettings>, I>>(object: I): WifiSettings {
const message = createBaseWifiSettings(); const message = createBaseWifiSettings();
message.hostname = object.hostname ?? ""; message.hostname = object.hostname ?? "";
message.priorityRssi = object.priorityRssi ?? false; message.priorityRssi = object.priorityRssi ?? false;
@@ -368,26 +357,270 @@ export const WifiSettings: MessageFns<WifiSettings, "rest_message.WifiSettings">
}, },
}; };
messageTypeRegistry.set(WifiSettings.$type, WifiSettings); type ProtoMetaMessageOptions = {
options?: { [key: string]: any };
fields?: { [key: string]: { [key: string]: any } };
oneof?: { [key: string]: { [key: string]: any } };
nested?: { [key: string]: ProtoMetaMessageOptions };
};
export interface ProtoMetadata {
fileDescriptor: FileDescriptorProto;
references: { [key: string]: any };
dependencies?: ProtoMetadata[];
options?: {
options?: { [key: string]: any };
services?: {
[key: string]: { options?: { [key: string]: any }; methods?: { [key: string]: { [key: string]: any } } };
};
messages?: { [key: string]: ProtoMetaMessageOptions };
enums?: { [key: string]: { options?: { [key: string]: any }; values?: { [key: string]: { [key: string]: any } } } };
};
}
export const protoMetadata: ProtoMetadata = {
fileDescriptor: {
"name": "rest_message.proto",
"package": "rest_message",
"dependency": ["websocket_message.proto"],
"publicDependency": [],
"weakDependency": [],
"optionDependency": [],
"messageType": [{
"name": "WifiStatus",
"field": [{
"name": "status",
"number": 1,
"label": 1,
"type": 5,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "status",
"options": undefined,
"proto3Optional": false,
}, {
"name": "local_ip",
"number": 2,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "localIp",
"options": undefined,
"proto3Optional": false,
}, {
"name": "mac_address",
"number": 3,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "macAddress",
"options": undefined,
"proto3Optional": false,
}, {
"name": "rssi",
"number": 4,
"label": 1,
"type": 2,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "rssi",
"options": undefined,
"proto3Optional": false,
}, {
"name": "ssid",
"number": 5,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "ssid",
"options": undefined,
"proto3Optional": false,
}, {
"name": "bssid",
"number": 6,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "bssid",
"options": undefined,
"proto3Optional": false,
}, {
"name": "channel",
"number": 7,
"label": 1,
"type": 13,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "channel",
"options": undefined,
"proto3Optional": false,
}, {
"name": "subnet_mask",
"number": 8,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "subnetMask",
"options": undefined,
"proto3Optional": false,
}, {
"name": "gateway_ip",
"number": 9,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "gatewayIp",
"options": undefined,
"proto3Optional": false,
}, {
"name": "dns_ip_1",
"number": 10,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "dnsIp1",
"options": undefined,
"proto3Optional": false,
}, {
"name": "dns_ip_2",
"number": 11,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "dnsIp2",
"options": undefined,
"proto3Optional": true,
}],
"extension": [],
"nestedType": [],
"enumType": [],
"extensionRange": [],
"oneofDecl": [{ "name": "_dns_ip_2", "options": undefined }],
"options": undefined,
"reservedRange": [],
"reservedName": [],
"visibility": 0,
}, {
"name": "WifiSettings",
"field": [{
"name": "hostname",
"number": 1,
"label": 1,
"type": 9,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "hostname",
"options": undefined,
"proto3Optional": false,
}, {
"name": "priority_rssi",
"number": 2,
"label": 1,
"type": 8,
"typeName": "",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "priorityRssi",
"options": undefined,
"proto3Optional": false,
}, {
"name": "wifi_networks",
"number": 3,
"label": 3,
"type": 11,
"typeName": ".socket_message.KnownNetworkItem",
"extendee": "",
"defaultValue": "",
"oneofIndex": 0,
"jsonName": "wifiNetworks",
"options": undefined,
"proto3Optional": false,
}],
"extension": [],
"nestedType": [],
"enumType": [],
"extensionRange": [],
"oneofDecl": [],
"options": undefined,
"reservedRange": [],
"reservedName": [],
"visibility": 0,
}],
"enumType": [],
"service": [],
"extension": [],
"options": undefined,
"sourceCodeInfo": {
"location": [{
"path": [2],
"span": [5, 0, 21],
"leadingComments":
' Note: This is most likely a "temporary" proto that will be redone, as these endpoints are static for the esp32, which means we are forced to use WiFi for communication\n',
"trailingComments": "",
"leadingDetachedComments": [],
}],
},
"syntax": "proto3",
"edition": 0,
},
references: { ".rest_message.WifiStatus": WifiStatus, ".rest_message.WifiSettings": WifiSettings },
dependencies: [protoMetadata1],
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T export type DeepPartial<T> = T extends Builtin ? T
: T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>>
: T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>>
: T extends {} ? { [K in Exclude<keyof T, "$type">]?: DeepPartial<T[K]> } : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>; : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P
: P & { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never };
function isSet(value: any): boolean { function isSet(value: any): boolean {
return value !== null && value !== undefined; return value !== null && value !== undefined;
} }
export interface MessageFns<T, V extends string> { export interface MessageFns<T> {
readonly $type: V;
encode(message: T, writer?: BinaryWriter): BinaryWriter; encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T; decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T; fromJSON(object: any): T;
toJSON(message: T): unknown; toJSON(message: T): unknown;
create(base?: DeepPartial<T>): T; create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial(object: DeepPartial<T>): T; fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
} }
File diff suppressed because it is too large Load Diff
+45 -3
View File
@@ -1,8 +1,10 @@
import { writable } from 'svelte/store' import { writable } from 'svelte/store'
import { import {
WebsocketMessage, WebsocketMessage,
type MessageFns, CorrelationRequest,
protoMetadata as websocket_md CorrelationResponse,
protoMetadata as websocket_md,
type MessageFns
} from '$lib/platform_shared/websocket_message' } from '$lib/platform_shared/websocket_message'
import * as WebsocketMessages from '$lib/platform_shared/websocket_message' import * as WebsocketMessages from '$lib/platform_shared/websocket_message'
@@ -11,6 +13,13 @@ export const MESSAGE_TYPE_TO_TAG = new Map<MessageFns<unknown>, number>()
export const MESSAGE_KEY_TO_TAG = new Map<string, number>() export const MESSAGE_KEY_TO_TAG = new Map<string, number>()
export const MESSAGE_TAG_TO_KEY = new Map<number, string>() export const MESSAGE_TAG_TO_KEY = new Map<number, string>()
type CorrelationRequestData = Omit<CorrelationRequest, 'correlationId'>
type PendingRequest = {
resolve: (response: CorrelationResponse) => void
reject: (error: Error) => void
timeoutId: ReturnType<typeof setTimeout>
}
const websocketMessageType = websocket_md.fileDescriptor.messageType?.find( const websocketMessageType = websocket_md.fileDescriptor.messageType?.find(
(msg: { name: string }) => msg.name === 'WebsocketMessage' (msg: { name: string }) => msg.name === 'WebsocketMessage'
) )
@@ -75,8 +84,11 @@ export const encodeMessage = (data: WebsocketMessage): Uint8Array<ArrayBuffer> =
function createWebSocket() { function createWebSocket() {
const message_listeners = new Map<number, Set<(data?: unknown) => void>>() const message_listeners = new Map<number, Set<(data?: unknown) => void>>()
const event_listeners = new Map<string, Set<(data?: unknown) => void>>() const event_listeners = new Map<string, Set<(data?: unknown) => void>>()
const pending_requests = new Map<number, PendingRequest>()
const { subscribe, set } = writable(false) const { subscribe, set } = writable(false)
const reconnectTimeoutTime = 500000 const reconnectTimeoutTime = 500000
const requestTimeoutTime = 10000
let correlationIdCounter = 0
let unresponsiveTimeoutId: ReturnType<typeof setTimeout> let unresponsiveTimeoutId: ReturnType<typeof setTimeout>
let reconnectTimeoutId: ReturnType<typeof setTimeout> let reconnectTimeoutId: ReturnType<typeof setTimeout>
let ws: WebSocket let ws: WebSocket
@@ -109,9 +121,20 @@ function createWebSocket() {
ws.onmessage = frame => { ws.onmessage = frame => {
resetUnresponsiveCheck() resetUnresponsiveCheck()
const { tag, msg } = decodeMessage(frame.data) const { tag, msg } = decodeMessage(frame.data)
if (msg.correlationResponse) {
const pending = pending_requests.get(msg.correlationResponse.correlationId)
if (pending) {
clearTimeout(pending.timeoutId)
pending_requests.delete(msg.correlationResponse.correlationId)
pending.resolve(msg.correlationResponse)
}
return
}
if (tag) { if (tag) {
const key = MESSAGE_TAG_TO_KEY.get(tag)! const key = MESSAGE_TAG_TO_KEY.get(tag)!
message_listeners.get(tag)?.forEach(listener => listener(msg[key as keyof typeof msg])) message_listeners
.get(tag)
?.forEach(listener => listener(msg[key as keyof typeof msg]))
} }
} }
ws.onerror = ev => disconnect('error', ev) ws.onerror = ev => disconnect('error', ev)
@@ -211,6 +234,25 @@ function createWebSocket() {
return () => { return () => {
unsubscribe_event(event_type, listener) unsubscribe_event(event_type, listener)
} }
},
request: (data: CorrelationRequestData): Promise<CorrelationResponse> => {
return new Promise((resolve, reject) => {
if (!ws || ws.readyState !== WebSocket.OPEN) {
reject(new Error('WebSocket not connected'))
return
}
const correlationId = ++correlationIdCounter
const timeoutId = setTimeout(() => {
pending_requests.delete(correlationId)
reject(new Error(`Request timeout (id: ${correlationId})`))
}, requestTimeoutTime)
pending_requests.set(correlationId, { resolve, reject, timeoutId })
const request = CorrelationRequest.create({ correlationId, ...data })
send(WebsocketMessage.create({ correlationRequest: request }))
})
} }
} }
} }
+7 -29
View File
@@ -4,45 +4,23 @@
import { socket } from '$lib/stores' import { socket } from '$lib/stores'
import { Connection } from '$lib/components/icons' import { Connection } from '$lib/components/icons'
import I2CSetting from './i2cSetting.svelte' import I2CSetting from './i2cSetting.svelte'
import { import type { I2CDevice } from '$lib/platform_shared/websocket_message'
I2CDevice,
I2CScanData,
I2CScanDataRequest
} from '$lib/platform_shared/websocket_message'
// TODO: Delete this completely, this should be done on esp side, as it decides what addresses are actually valid, as for example ICM20948 and MPU6050 can have same address
// const i2cDevices = [
// { address: 30, part_number: 'HMC5883', name: '3-Axis Digital Compass/Magnetometer IC' },
// { address: 41, part_number: 'BNO055', name: '9-Axis Absolute Orientation Sensor' },
// { address: 64, part_number: 'PCA9685', name: '16-channel PWM driver default address' },
// { address: 72, part_number: 'ADS1115', name: '4-channel 16-bit ADC' },
// {
// address: 104,
// part_number: 'MPU6050',
// name: 'Six-Axis (Gyro + Accelerometer) MEMS MotionTracking™ Devices'
// },
// { address: 115, part_number: 'PAJ7620U2', name: 'Gesture sensor' },
// { address: 119, part_number: 'BMP085', name: 'Temp/Barometric' }
// ]
let active_devices: I2CDevice[] = $state([]) let active_devices: I2CDevice[] = $state([])
let isLoading = $state(false) let isLoading = $state(false)
onMount(() => { onMount(() => {
const unsub = socket.on(I2CScanData, handleScan)
triggerScan() triggerScan()
return () => unsub
}) })
const handleScan = (data: I2CScanData) => { const triggerScan = async () => {
active_devices = data.devices isLoading = true
try {
const response = await socket.request({ i2cScanDataRequest: {} })
active_devices = response.i2cScanData?.devices ?? []
} finally {
isLoading = false isLoading = false
} }
const triggerScan = () => {
isLoading = true
socket.sendEvent(I2CScanDataRequest, {})
} }
</script> </script>
+28 -30
View File
@@ -3,6 +3,7 @@
#include <ESPmDNS.h> #include <ESPmDNS.h>
#include <WiFi.h> #include <WiFi.h>
#include <Wire.h> #include <Wire.h>
#include <map>
#include <filesystem.h> #include <filesystem.h>
#include <peripherals/peripherals.h> #include <peripherals/peripherals.h>
@@ -150,18 +151,6 @@ void setupEventSocket() {
socket.on<socket_message_AnglesData>( socket.on<socket_message_AnglesData>(
[&](const socket_message_AnglesData &data, int clientId) { motionService.handleAngles(data); }); [&](const socket_message_AnglesData &data, int clientId) { motionService.handleAngles(data); });
socket.on<socket_message_I2CScanDataRequest>([&](const socket_message_I2CScanDataRequest &data, int clientId) {
peripherals.scanI2C();
socket_message_I2CScanData result = socket_message_I2CScanData_init_zero;
peripherals.getI2CScanProto(result);
socket.emit(result, clientId);
});
socket.on<socket_message_IMUCalibrateExecute>([&](const socket_message_IMUCalibrateExecute &data, int clientId) {
socket_message_IMUCalibrateData result = {.success = peripherals.calibrateIMU()};
socket.emit(result, clientId);
});
socket.on<socket_message_ServoPWMData>([&](const socket_message_ServoPWMData &data, int clientId) { socket.on<socket_message_ServoPWMData>([&](const socket_message_ServoPWMData &data, int clientId) {
servoController.setServoPWM(data.servo_id, data.servo_pwm); servoController.setServoPWM(data.servo_id, data.servo_pwm);
}); });
@@ -170,29 +159,38 @@ void setupEventSocket() {
data.active ? servoController.activate() : servoController.deactivate(); data.active ? servoController.activate() : servoController.deactivate();
}); });
using CorrelationHandler =
std::function<void(const socket_message_CorrelationRequest &, socket_message_CorrelationResponse &)>;
static std::map<pb_size_t, CorrelationHandler> correlationHandlers = {
{socket_message_CorrelationRequest_features_data_request_tag,
[](const auto &req, auto &res) {
res.which_response = socket_message_CorrelationResponse_features_data_response_tag;
feature_service::features_request(req.request.features_data_request, res.response.features_data_response);
}},
{socket_message_CorrelationRequest_i2c_scan_data_request_tag,
[](const auto &req, auto &res) {
res.which_response = socket_message_CorrelationResponse_i2c_scan_data_tag;
peripherals.scanI2C();
peripherals.getI2CScanProto(res.response.i2c_scan_data);
}},
{socket_message_CorrelationRequest_imu_calibrate_execute_tag,
[](const auto &req, auto &res) {
res.which_response = socket_message_CorrelationResponse_imu_calibrate_data_tag;
res.response.imu_calibrate_data.success = peripherals.calibrateIMU();
}},
};
socket.on<socket_message_CorrelationRequest>([&](const socket_message_CorrelationRequest &data, int clientId) { socket.on<socket_message_CorrelationRequest>([&](const socket_message_CorrelationRequest &data, int clientId) {
printf("Received correlation request: %d\n", data.correlation_id);
// Temporarily hardcoded
switch (data.which_request) {
case socket_message_CorrelationRequest_features_data_request_tag: {
socket_message_CorrelationResponse res = socket_message_CorrelationResponse_init_default; socket_message_CorrelationResponse res = socket_message_CorrelationResponse_init_default;
res.correlation_id = data.correlation_id; res.correlation_id = data.correlation_id;
res.stauts_code = 200; res.status_code = 200;
res.which_response = socket_message_CorrelationResponse_features_data_response_tag;
feature_service::features_request(
data.request.features_data_request,
res.response.features_data_response
);
auto it = correlationHandlers.find(data.which_request);
if (it != correlationHandlers.end()) {
it->second(data, res);
socket.emit(res, clientId); socket.emit(res, clientId);
} else {
break; printf("WARNING: no handler for correlation request: %d\n", data.which_request);
}
default: {
printf("WARNING: no tag found for correlation request: %d", data.which_request);
break;
}
} }
}); });
} }
@@ -8,111 +8,70 @@
PB_BIND(socket_message_Vector, socket_message_Vector, AUTO) PB_BIND(socket_message_Vector, socket_message_Vector, AUTO)
PB_BIND(socket_message_I2CDevice, socket_message_I2CDevice, AUTO) PB_BIND(socket_message_I2CDevice, socket_message_I2CDevice, AUTO)
PB_BIND(socket_message_PinConfig, socket_message_PinConfig, AUTO) PB_BIND(socket_message_PinConfig, socket_message_PinConfig, AUTO)
PB_BIND(socket_message_KnownNetworkItem, socket_message_KnownNetworkItem, AUTO) PB_BIND(socket_message_KnownNetworkItem, socket_message_KnownNetworkItem, AUTO)
PB_BIND(socket_message_IMUData, socket_message_IMUData, AUTO) PB_BIND(socket_message_IMUData, socket_message_IMUData, AUTO)
PB_BIND(socket_message_FeaturesDataResponse, socket_message_FeaturesDataResponse, 2) PB_BIND(socket_message_FeaturesDataResponse, socket_message_FeaturesDataResponse, 2)
PB_BIND(socket_message_FeaturesDataRequest, socket_message_FeaturesDataRequest, AUTO) PB_BIND(socket_message_FeaturesDataRequest, socket_message_FeaturesDataRequest, AUTO)
PB_BIND(socket_message_CorrelationRequest, socket_message_CorrelationRequest, AUTO) PB_BIND(socket_message_CorrelationRequest, socket_message_CorrelationRequest, AUTO)
PB_BIND(socket_message_CorrelationResponse, socket_message_CorrelationResponse, 2)
PB_BIND(socket_message_CorrelationResponse, socket_message_CorrelationResponse, AUTO)
PB_BIND(socket_message_StaticSystemInformation, socket_message_StaticSystemInformation, AUTO) PB_BIND(socket_message_StaticSystemInformation, socket_message_StaticSystemInformation, AUTO)
PB_BIND(socket_message_IMUCalibrateData, socket_message_IMUCalibrateData, AUTO) PB_BIND(socket_message_IMUCalibrateData, socket_message_IMUCalibrateData, AUTO)
PB_BIND(socket_message_IMUCalibrateExecute, socket_message_IMUCalibrateExecute, AUTO) PB_BIND(socket_message_IMUCalibrateExecute, socket_message_IMUCalibrateExecute, AUTO)
PB_BIND(socket_message_ModeData, socket_message_ModeData, AUTO) PB_BIND(socket_message_ModeData, socket_message_ModeData, AUTO)
PB_BIND(socket_message_ControllerInputData, socket_message_ControllerInputData, AUTO) PB_BIND(socket_message_ControllerInputData, socket_message_ControllerInputData, AUTO)
PB_BIND(socket_message_AnalyticsData, socket_message_AnalyticsData, AUTO) PB_BIND(socket_message_AnalyticsData, socket_message_AnalyticsData, AUTO)
PB_BIND(socket_message_ServoPWMData, socket_message_ServoPWMData, AUTO) PB_BIND(socket_message_ServoPWMData, socket_message_ServoPWMData, AUTO)
PB_BIND(socket_message_ServoStateData, socket_message_ServoStateData, AUTO) PB_BIND(socket_message_ServoStateData, socket_message_ServoStateData, AUTO)
PB_BIND(socket_message_AnglesData, socket_message_AnglesData, AUTO) PB_BIND(socket_message_AnglesData, socket_message_AnglesData, AUTO)
PB_BIND(socket_message_I2CScanData, socket_message_I2CScanData, 2) PB_BIND(socket_message_I2CScanData, socket_message_I2CScanData, 2)
PB_BIND(socket_message_I2CScanDataRequest, socket_message_I2CScanDataRequest, AUTO) PB_BIND(socket_message_I2CScanDataRequest, socket_message_I2CScanDataRequest, AUTO)
PB_BIND(socket_message_PeripheralSettingsData, socket_message_PeripheralSettingsData, 2) PB_BIND(socket_message_PeripheralSettingsData, socket_message_PeripheralSettingsData, 2)
PB_BIND(socket_message_PeripheralSettingsDataRequest, socket_message_PeripheralSettingsDataRequest, AUTO) PB_BIND(socket_message_PeripheralSettingsDataRequest, socket_message_PeripheralSettingsDataRequest, AUTO)
PB_BIND(socket_message_WifiSettingsData, socket_message_WifiSettingsData, 2) PB_BIND(socket_message_WifiSettingsData, socket_message_WifiSettingsData, 2)
PB_BIND(socket_message_RSSIData, socket_message_RSSIData, AUTO) PB_BIND(socket_message_RSSIData, socket_message_RSSIData, AUTO)
PB_BIND(socket_message_DownloadOTAData, socket_message_DownloadOTAData, AUTO) PB_BIND(socket_message_DownloadOTAData, socket_message_DownloadOTAData, AUTO)
PB_BIND(socket_message_SonarData, socket_message_SonarData, AUTO) PB_BIND(socket_message_SonarData, socket_message_SonarData, AUTO)
PB_BIND(socket_message_HumanInputData, socket_message_HumanInputData, AUTO) PB_BIND(socket_message_HumanInputData, socket_message_HumanInputData, AUTO)
PB_BIND(socket_message_SystemInformation, socket_message_SystemInformation, 2) PB_BIND(socket_message_SystemInformation, socket_message_SystemInformation, 2)
PB_BIND(socket_message_WalkGaitData, socket_message_WalkGaitData, AUTO) PB_BIND(socket_message_WalkGaitData, socket_message_WalkGaitData, AUTO)
PB_BIND(socket_message_KinematicData, socket_message_KinematicData, AUTO) PB_BIND(socket_message_KinematicData, socket_message_KinematicData, AUTO)
PB_BIND(socket_message_SubscribeNotification, socket_message_SubscribeNotification, AUTO) PB_BIND(socket_message_SubscribeNotification, socket_message_SubscribeNotification, AUTO)
PB_BIND(socket_message_UnsubscribeNotification, socket_message_UnsubscribeNotification, AUTO) PB_BIND(socket_message_UnsubscribeNotification, socket_message_UnsubscribeNotification, AUTO)
PB_BIND(socket_message_PingMsg, socket_message_PingMsg, AUTO) PB_BIND(socket_message_PingMsg, socket_message_PingMsg, AUTO)
PB_BIND(socket_message_PongMsg, socket_message_PongMsg, AUTO) PB_BIND(socket_message_PongMsg, socket_message_PongMsg, AUTO)
PB_BIND(socket_message_WebsocketMessage, socket_message_WebsocketMessage, 2) PB_BIND(socket_message_WebsocketMessage, socket_message_WebsocketMessage, 2)
+411 -281
View File
@@ -90,25 +90,6 @@ typedef struct _socket_message_FeaturesDataRequest {
bool sonar_test; bool sonar_test;
} socket_message_FeaturesDataRequest; } socket_message_FeaturesDataRequest;
typedef struct _socket_message_CorrelationRequest {
uint32_t correlation_id; /* Used for request-response correlation */
pb_size_t which_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) */
socket_message_FeaturesDataRequest features_data_request;
} request;
} socket_message_CorrelationRequest;
typedef struct _socket_message_CorrelationResponse {
uint32_t correlation_id; /* Used for request-response correlation' */
uint32_t stauts_code;
pb_size_t which_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) */
socket_message_FeaturesDataResponse features_data_response;
} response;
} socket_message_CorrelationResponse;
typedef struct _socket_message_StaticSystemInformation { typedef struct _socket_message_StaticSystemInformation {
char esp_platform[32]; char esp_platform[32];
char firmware_version[16]; char firmware_version[16];
@@ -182,10 +163,31 @@ typedef struct _socket_message_I2CScanData {
socket_message_I2CDevice devices[16]; socket_message_I2CDevice devices[16];
} socket_message_I2CScanData; } socket_message_I2CScanData;
typedef struct _socket_message_CorrelationResponse {
uint32_t correlation_id;
uint32_t status_code;
pb_size_t which_response;
union _socket_message_CorrelationResponse_response {
socket_message_FeaturesDataResponse features_data_response;
socket_message_I2CScanData i2c_scan_data;
socket_message_IMUCalibrateData imu_calibrate_data;
} response;
} socket_message_CorrelationResponse;
typedef struct _socket_message_I2CScanDataRequest { typedef struct _socket_message_I2CScanDataRequest {
char dummy_field; char dummy_field;
} socket_message_I2CScanDataRequest; } socket_message_I2CScanDataRequest;
typedef struct _socket_message_CorrelationRequest {
uint32_t correlation_id;
pb_size_t which_request;
union _socket_message_CorrelationRequest_request {
socket_message_FeaturesDataRequest features_data_request;
socket_message_I2CScanDataRequest i2c_scan_data_request;
socket_message_IMUCalibrateExecute imu_calibrate_execute;
} request;
} socket_message_CorrelationRequest;
typedef struct _socket_message_PeripheralSettingsData { typedef struct _socket_message_PeripheralSettingsData {
int32_t sda; int32_t sda;
int32_t scl; int32_t scl;
@@ -297,7 +299,6 @@ typedef struct _socket_message_WebsocketMessage {
} message; } message;
} socket_message_WebsocketMessage; } socket_message_WebsocketMessage;
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@@ -305,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, 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, 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, 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, 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
@@ -460,11 +587,6 @@ extern "C" {
#define socket_message_FeaturesDataResponse_mdns_tag 120 #define socket_message_FeaturesDataResponse_mdns_tag 120
#define socket_message_FeaturesDataResponse_embed_www_tag 130 #define socket_message_FeaturesDataResponse_embed_www_tag 130
#define socket_message_FeaturesDataRequest_sonar_test_tag 1 #define socket_message_FeaturesDataRequest_sonar_test_tag 1
#define socket_message_CorrelationRequest_correlation_id_tag 1
#define socket_message_CorrelationRequest_features_data_request_tag 10
#define socket_message_CorrelationResponse_correlation_id_tag 1
#define socket_message_CorrelationResponse_stauts_code_tag 2
#define socket_message_CorrelationResponse_features_data_response_tag 10
#define socket_message_StaticSystemInformation_esp_platform_tag 1 #define socket_message_StaticSystemInformation_esp_platform_tag 1
#define socket_message_StaticSystemInformation_firmware_version_tag 2 #define socket_message_StaticSystemInformation_firmware_version_tag 2
#define socket_message_StaticSystemInformation_cpu_freq_mhz_tag 3 #define socket_message_StaticSystemInformation_cpu_freq_mhz_tag 3
@@ -503,6 +625,15 @@ extern "C" {
#define socket_message_ServoStateData_active_tag 1 #define socket_message_ServoStateData_active_tag 1
#define socket_message_AnglesData_angles_tag 1 #define socket_message_AnglesData_angles_tag 1
#define socket_message_I2CScanData_devices_tag 1 #define socket_message_I2CScanData_devices_tag 1
#define socket_message_CorrelationResponse_correlation_id_tag 1
#define socket_message_CorrelationResponse_status_code_tag 2
#define socket_message_CorrelationResponse_features_data_response_tag 10
#define socket_message_CorrelationResponse_i2c_scan_data_tag 20
#define socket_message_CorrelationResponse_imu_calibrate_data_tag 30
#define socket_message_CorrelationRequest_correlation_id_tag 1
#define socket_message_CorrelationRequest_features_data_request_tag 10
#define socket_message_CorrelationRequest_i2c_scan_data_request_tag 20
#define socket_message_CorrelationRequest_imu_calibrate_execute_tag 30
#define socket_message_PeripheralSettingsData_sda_tag 1 #define socket_message_PeripheralSettingsData_sda_tag 1
#define socket_message_PeripheralSettingsData_scl_tag 2 #define socket_message_PeripheralSettingsData_scl_tag 2
#define socket_message_PeripheralSettingsData_frequency_tag 3 #define socket_message_PeripheralSettingsData_frequency_tag 3
@@ -558,291 +689,289 @@ extern "C" {
/* 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, POINTER, SINGULAR, STRING, variant, 10) \ X(a, POINTER, SINGULAR, STRING, variant, 10) \
X(a, POINTER, SINGULAR, STRING, firmware_built_target, 20) \ X(a, POINTER, SINGULAR, STRING, firmware_built_target, 20) \
X(a, POINTER, SINGULAR, STRING, firmware_name, 30) \ X(a, POINTER, SINGULAR, STRING, firmware_name, 30) \
X(a, POINTER, SINGULAR, STRING, firmware_version, 40) \ X(a, POINTER, 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 NULL #define socket_message_FeaturesDataResponse_CALLBACK NULL
#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) \
X(a, STATIC, ONEOF, MESSAGE, (request, i2c_scan_data_request, request.i2c_scan_data_request), 20) \
X(a, STATIC, ONEOF, MESSAGE, (request, imu_calibrate_execute, request.imu_calibrate_execute), 30)
#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_CorrelationRequest_request_i2c_scan_data_request_MSGTYPE socket_message_I2CScanDataRequest
#define socket_message_CorrelationRequest_request_imu_calibrate_execute_MSGTYPE socket_message_IMUCalibrateExecute
#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, status_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) \
X(a, STATIC, ONEOF, MESSAGE, (response, i2c_scan_data, response.i2c_scan_data), 20) \
X(a, STATIC, ONEOF, MESSAGE, (response, imu_calibrate_data, response.imu_calibrate_data), 30)
#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_CorrelationResponse_response_i2c_scan_data_MSGTYPE socket_message_I2CScanData
#define socket_message_CorrelationResponse_response_imu_calibrate_data_MSGTYPE socket_message_IMUCalibrateData
#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,servo_pwm,message.servo_pwm), 210) \ X(a, STATIC, ONEOF, MESSAGE, (message, kinematic_data, message.kinematic_data), 200) \
X(a, STATIC, ONEOF, MESSAGE, (message,servo_state,message.servo_state), 211) \ X(a, STATIC, ONEOF, MESSAGE, (message, servo_pwm, message.servo_pwm), 210) \
X(a, STATIC, ONEOF, MESSAGE, (message,wifi_settings,message.wifi_settings), 240) \ X(a, STATIC, ONEOF, MESSAGE, (message, servo_state, message.servo_state), 211) \
X(a, STATIC, ONEOF, MESSAGE, (message,human_input_data,message.human_input_data), 250) \ X(a, STATIC, ONEOF, MESSAGE, (message, wifi_settings, message.wifi_settings), 240) \
X(a, STATIC, ONEOF, MESSAGE, (message,rssi,message.rssi), 260) 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
@@ -862,7 +991,8 @@ 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_pwm_MSGTYPE socket_message_ServoPWMData
#define socket_message_WebsocketMessage_message_servo_state_MSGTYPE socket_message_ServoStateData #define socket_message_WebsocketMessage_message_servo_state_MSGTYPE socket_message_ServoStateData
+7 -6
View File
@@ -42,19 +42,20 @@ message FeaturesDataRequest { bool sonar_test = 1; }
message CorrelationRequest { message CorrelationRequest {
uint32 correlation_id = 1; // Used for request-response correlation uint32 correlation_id = 1;
oneof request { oneof 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)
FeaturesDataRequest features_data_request = 10; FeaturesDataRequest features_data_request = 10;
I2CScanDataRequest i2c_scan_data_request = 20;
IMUCalibrateExecute imu_calibrate_execute = 30;
} }
} }
message CorrelationResponse { message CorrelationResponse {
uint32 correlation_id = 1; // Used for request-response correlation' uint32 correlation_id = 1;
uint32 stauts_code = 2; uint32 status_code = 2;
oneof response { oneof 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)
FeaturesDataResponse features_data_response = 10; FeaturesDataResponse features_data_response = 10;
I2CScanData i2c_scan_data = 20;
IMUCalibrateData imu_calibrate_data = 30;
} }
} }