42 lines
1.7 KiB
C++
42 lines
1.7 KiB
C++
#pragma once
|
|
#include <event_bus/event_types.h>
|
|
#include <platform_shared/api.pb.h>
|
|
#include <platform_shared/message.pb.h>
|
|
|
|
template <typename T>
|
|
struct EventTypeTraits;
|
|
|
|
template <typename T>
|
|
struct EventBusConfig {
|
|
static constexpr size_t QueueDepth = 64;
|
|
static constexpr size_t MaxSubs = 8;
|
|
static constexpr size_t BatchSize = 16;
|
|
};
|
|
|
|
#define REGISTER_EVENT_TYPE(MsgType, EventTypeValue) \
|
|
template <> \
|
|
struct EventTypeTraits<MsgType> { \
|
|
static constexpr EventType type = EventTypeValue; \
|
|
static constexpr const char* name = #MsgType; \
|
|
};
|
|
|
|
#define REGISTER_SETTINGS_TYPE(MsgType, EventTypeValue) \
|
|
REGISTER_EVENT_TYPE(MsgType, EventTypeValue) \
|
|
template <> \
|
|
struct EventBusConfig<MsgType> { \
|
|
static constexpr size_t QueueDepth = 1; \
|
|
static constexpr size_t MaxSubs = 6; \
|
|
static constexpr size_t BatchSize = 1; \
|
|
};
|
|
|
|
REGISTER_SETTINGS_TYPE(api_WifiSettings, EventType::WIFI_SETTINGS)
|
|
REGISTER_SETTINGS_TYPE(api_APSettings, EventType::AP_SETTINGS)
|
|
REGISTER_SETTINGS_TYPE(api_MDNSSettings, EventType::MDNS_SETTINGS)
|
|
REGISTER_SETTINGS_TYPE(api_PeripheralSettings, EventType::PERIPHERAL_SETTINGS)
|
|
REGISTER_SETTINGS_TYPE(api_ServoSettings, EventType::SERVO_SETTINGS)
|
|
REGISTER_SETTINGS_TYPE(api_CameraSettings, EventType::CAMERA_SETTINGS)
|
|
|
|
REGISTER_EVENT_TYPE(socket_message_IMUData, EventType::IMU_DATA)
|
|
REGISTER_EVENT_TYPE(socket_message_ControllerData, EventType::MOTION_COMMAND)
|
|
REGISTER_EVENT_TYPE(socket_message_ModeData, EventType::MOTION_MODE)
|