feat: 拆分发送和接收功能声明,优化config配置方式

This commit is contained in:
2026-07-26 10:01:30 +08:00
parent c3af3ae4e2
commit 51e081118a
12 changed files with 815 additions and 871 deletions
+27 -21
View File
@@ -1,34 +1,40 @@
/**
* @file datarouter_config.h
* @brief 数据报文类型配置
* @brief 数据路由默认配置
*
* 用户在此文件中定义所有报文类型(通道)。
* 每个报文类型通过 DATAROUTER_CHANNEL(id, desc) 宏声明,
* 库在编译期据此自动生成:
* - 通道枚举值 DATAROUTER_CHANNEL_<id>
* - 发送触发函数 datarouter_send_<id>(port, data, len)
* - 接收回调声明 datarouter_on_recv_<id>(port, data, len)
* 这是库内置的默认配置,提供示例能力声明。
* 用户可自定义此文件以实现自己的报文类型:
*
* 1. 复制当前文件到你的项目目录
* 2. 按需修改 DATAROUTER_SEND_CAPABILITIES / DATAROUTER_RECV_CAPABILITIES
* 3. 编译时添加 -I /path/to/your/config 覆盖库的默认配置
*
* 覆盖后库将使用你的版本,无需修改库源代码。
*/
#ifndef DATAROUTER_CONFIG_H
#define DATAROUTER_CONFIG_H
/**
* @def DATAROUTER_CHANNELS
* @brief 报文类型列表宏
* @def DATAROUTER_SEND_CAPABILITIES
* @brief 发送能力列表
*
* 每行格式:DATAROUTER_CHANNEL(标识符, "描述文字")
* 用户按需增删改。每个标识符对应一种报文类型。
*
* @code
* #define DATAROUTER_CHANNELS \
* DATAROUTER_CHANNEL(sensor, "Sensor data") \
* DATAROUTER_CHANNEL(control, "Control command")
* @endcode
* 每行格式:DATAROUTER_SEND(标识符, "描述")
* 每项生成:发送触发函数 datarouter_send_<id>(port, data, len)
*/
#define DATAROUTER_CHANNELS \
DATAROUTER_CHANNEL(sensor, "Sensor data") \
DATAROUTER_CHANNEL(status, "Status report") \
DATAROUTER_CHANNEL(control, "Control command")
#define DATAROUTER_SEND_CAPABILITIES \
DATAROUTER_SEND(sensor, "Sensor data report") \
DATAROUTER_SEND(status, "Device status report")
/**
* @def DATAROUTER_RECV_CAPABILITIES
* @brief 接收能力列表
*
* 每行格式:DATAROUTER_RECV(标识符, "描述")
* 每项生成:接收回调声明 datarouter_on_recv_<id>(port, data, len)
*/
#define DATAROUTER_RECV_CAPABILITIES \
DATAROUTER_RECV(rtcm, "RTCM correction data") \
DATAROUTER_RECV(command, "Remote control command")
#endif /* DATAROUTER_CONFIG_H */