功能:集成SU-03T语音模块,完善UI代码文档
- 在CMakeLists.txt中添加SU-03T语音模块依赖。 - 在main.cpp中实现SU-03T接收回调函数,处理接收消息。 - 完善各UI源文件文档,包括动作、屏幕和字体,明确模块作用与数据流向。 - 更新主应用逻辑,初始化并启动SU-03T接收器。 - 修改过程中确保兼容性,保留原有接口。
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* 文件: components/relay_ctrl/include/relay_ctrl.h
|
||||
* 角色: 四路继电器状态控制
|
||||
* 说明:
|
||||
* - 本文件用于实现当前模块的核心功能或接口定义。
|
||||
* - 修改前请先确认该模块与其它任务/外设之间的数据流关系。
|
||||
* - 涉及协议与硬件时,优先保持现有接口兼容,避免联调回归。
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "esp_err.h"
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/*
|
||||
* 文件: components/relay_ctrl/relay_ctrl.c
|
||||
* 角色: 四路继电器状态控制
|
||||
* 说明:
|
||||
* - 本文件用于实现当前模块的核心功能或接口定义。
|
||||
* - 修改前请先确认该模块与其它任务/外设之间的数据流关系。
|
||||
* - 涉及协议与硬件时,优先保持现有接口兼容,避免联调回归。
|
||||
*/
|
||||
|
||||
#include "relay_ctrl.h"
|
||||
#include <stdint.h>
|
||||
#include "esp_check.h"
|
||||
@@ -13,11 +22,19 @@ typedef struct {
|
||||
|
||||
static relay_ctx_t s_ctx;
|
||||
|
||||
/* 函数: relay_level_from_state
|
||||
* 作用: 执行模块内与函数名对应的业务逻辑。
|
||||
* 重点: 关注输入合法性、返回码与并发安全。
|
||||
*/
|
||||
static inline int relay_level_from_state(int id, bool on)
|
||||
{
|
||||
return (on == s_ctx.config[id].active_high) ? 1 : 0;
|
||||
}
|
||||
|
||||
/* 函数: relay_validate_id
|
||||
* 作用: 执行模块内与函数名对应的业务逻辑。
|
||||
* 重点: 关注输入合法性、返回码与并发安全。
|
||||
*/
|
||||
static esp_err_t relay_validate_id(relay_ctrl_id_t relay_id)
|
||||
{
|
||||
ESP_RETURN_ON_FALSE(relay_id >= RELAY_CTRL_ID_1 && relay_id < RELAY_CTRL_ID_MAX,
|
||||
@@ -25,6 +42,10 @@ static esp_err_t relay_validate_id(relay_ctrl_id_t relay_id)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
/* 函数: relay_ctrl_init
|
||||
* 作用: 执行模块内与函数名对应的业务逻辑。
|
||||
* 重点: 关注输入合法性、返回码与并发安全。
|
||||
*/
|
||||
esp_err_t relay_ctrl_init(const relay_config_t config[RELAY_CTRL_ID_MAX])
|
||||
{
|
||||
uint64_t pin_bit_mask = 0;
|
||||
@@ -58,6 +79,10 @@ esp_err_t relay_ctrl_init(const relay_config_t config[RELAY_CTRL_ID_MAX])
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
/* 函数: relay_ctrl_set
|
||||
* 作用: 执行模块内与函数名对应的业务逻辑。
|
||||
* 重点: 关注输入合法性、返回码与并发安全。
|
||||
*/
|
||||
esp_err_t relay_ctrl_set(relay_ctrl_id_t relay_id, bool on)
|
||||
{
|
||||
ESP_RETURN_ON_FALSE(s_ctx.inited, ESP_ERR_INVALID_STATE, TAG, "relay not initialized");
|
||||
@@ -74,6 +99,10 @@ esp_err_t relay_ctrl_set(relay_ctrl_id_t relay_id, bool on)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
/* 函数: relay_ctrl_toggle
|
||||
* 作用: 执行模块内与函数名对应的业务逻辑。
|
||||
* 重点: 关注输入合法性、返回码与并发安全。
|
||||
*/
|
||||
esp_err_t relay_ctrl_toggle(relay_ctrl_id_t relay_id)
|
||||
{
|
||||
ESP_RETURN_ON_FALSE(s_ctx.inited, ESP_ERR_INVALID_STATE, TAG, "relay not initialized");
|
||||
@@ -81,6 +110,10 @@ esp_err_t relay_ctrl_toggle(relay_ctrl_id_t relay_id)
|
||||
return relay_ctrl_set(relay_id, !s_ctx.states[relay_id]);
|
||||
}
|
||||
|
||||
/* 函数: relay_ctrl_get
|
||||
* 作用: 执行模块内与函数名对应的业务逻辑。
|
||||
* 重点: 关注输入合法性、返回码与并发安全。
|
||||
*/
|
||||
esp_err_t relay_ctrl_get(relay_ctrl_id_t relay_id, bool *on_out)
|
||||
{
|
||||
ESP_RETURN_ON_FALSE(s_ctx.inited, ESP_ERR_INVALID_STATE, TAG, "relay not initialized");
|
||||
@@ -90,6 +123,10 @@ esp_err_t relay_ctrl_get(relay_ctrl_id_t relay_id, bool *on_out)
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
/* 函数: relay_ctrl_set_all
|
||||
* 作用: 执行模块内与函数名对应的业务逻辑。
|
||||
* 重点: 关注输入合法性、返回码与并发安全。
|
||||
*/
|
||||
esp_err_t relay_ctrl_set_all(bool relay1_on, bool relay2_on, bool relay3_on, bool relay4_on)
|
||||
{
|
||||
ESP_RETURN_ON_ERROR(relay_ctrl_set(RELAY_CTRL_ID_1, relay1_on), TAG, "set relay1 failed");
|
||||
|
||||
Reference in New Issue
Block a user