# T-CMD-BUS **Repository Path**: eson_1617/t-cmd-bus ## Basic Information - **Project Name**: T-CMD-BUS - **Description**: 设计的交互逻辑适合嵌入式平台命令交互逻辑 。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-07 - **Last Updated**: 2025-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # T-CMD-BUS T-CMD-BUS 是一个轻量级、跨平台的命令回调注册与调度库,适用于嵌入式开发(支持 Keil、IAR、GCC、Clang 编译器)。它可以帮助你快速构建一套命令处理机制,支持动态注册、查找和回调处理。 ## ✨ 特点 - 支持跨平台:Keil、IAR、GCC、Clang - 命令回调自动注册(可选手动注册) - 使用链表结构管理命令 - 可灵活扩展新命令 - 零依赖,仅使用标准 C ## 📁 文件结构 ``` ├── demo // 示例 ├── inc // inc文件 ├── t_cmd_bus.c // 命令注册与回调实现 ``` ## 🚀 使用说明 ### 1. 定义命令回调函数 ```c bool help_callback(void *param, const char *cmd, char *response, size_t buffer_size) { snprintf(response, buffer_size, "Available commands: help"); return true; } ``` ### 2. 注册命令(自动 + 手动) ```c BUS_CMD_ADD(NULL, help, help_callback); // 自动注册 + 静态定义 ``` ### 3. 在 `main` 中调用注册与处理 ```c register_all_commands(); // 手动注册调用(main 中) cmd_bus_cb("help", resp, sizeof(resp)); ``` ## 🧠 接口说明 - `BUS_CMD_ADD(user, name, callback)`:注册命令 - `cmd_bus_cb(cmd, response, size)`:调用指定命令 - `register_all_commands()`:手动注册命令函数调用 - `get_command_bus_list_length()`:查看已注册命令个数 ## 📌 注意事项 - GCC 编译器支持构造函数节注入(自动注册),其他平台推荐调用 `register_all_commands()` 确保链接器不优化掉 - 所有命令通过 `Object_Command_Bus` 链表管理,可在运行时查询 ## ✅ 示例输出 ``` Response: Available commands: help ``` ## 🔧 兼容平台 - STM32 (Keil MDK) - NXP / Renesas (IAR Embedded Workbench) - Linux / POSIX (GCC / Clang) ---