Files
mimiclaw/main/tools/tool_gpio.h
titor 6983a1f1ba feat: 添加编译时模块开关配置
通过 sdkconfig.defaults 选择性启用/禁用模块,减少固件体积:

新增模块开关:
- CONFIG_MIMI_CHAN_TELEGRAM (默认 n)
- CONFIG_MIMI_CHAN_FEISHU (默认 y)
- CONFIG_MIMI_TOOL_WEB_SEARCH (默认 y)
- CONFIG_MIMI_TOOL_GPIO (默认 n)
- CONFIG_MIMI_WS_SERVER (默认 y)
- CONFIG_MIMI_WIFI_ONBOARD (默认 y)
- CONFIG_MIMI_OTA (默认 n)

技术实现:
- CMakeLists.txt 条件编译源文件
- 头文件使用 static inline stub
- CLI 命令和工具注册也支持条件编译

消除 Telegram 未配置时的 5 秒轮询警告日志
2026-04-03 20:15:26 +08:00

36 lines
1.4 KiB
C

#pragma once
#include "esp_err.h"
#include <stddef.h>
#include <stdio.h>
#ifdef CONFIG_MIMI_TOOL_GPIO
esp_err_t tool_gpio_init(void);
esp_err_t tool_gpio_write_execute(const char *input_json, char *output, size_t output_size);
esp_err_t tool_gpio_read_execute(const char *input_json, char *output, size_t output_size);
esp_err_t tool_gpio_read_all_execute(const char *input_json, char *output, size_t output_size);
#else
static inline esp_err_t tool_gpio_init(void) { return ESP_OK; }
static inline esp_err_t tool_gpio_write_execute(const char *input_json, char *output, size_t output_size) {
(void)input_json; (void)output; (void)output_size;
if (output && output_size > 0) {
snprintf(output, output_size, "Error: GPIO tool is disabled in this build.");
}
return ESP_OK;
}
static inline esp_err_t tool_gpio_read_execute(const char *input_json, char *output, size_t output_size) {
(void)input_json; (void)output; (void)output_size;
if (output && output_size > 0) {
snprintf(output, output_size, "Error: GPIO tool is disabled in this build.");
}
return ESP_OK;
}
static inline esp_err_t tool_gpio_read_all_execute(const char *input_json, char *output, size_t output_size) {
(void)input_json; (void)output; (void)output_size;
if (output && output_size > 0) {
snprintf(output, output_size, "Error: GPIO tool is disabled in this build.");
}
return ESP_OK;
}
#endif