Type-C 长供电、上电即工作、无软关机,删除 app_boot/app_power 及 DP0 开关相关逻辑, 去掉空占位 app_fan_run 和无效的 usr_timer_pick_mode/rearm(数码管 4ms 扫描已 priority=1, 系统本来就不会进低功耗)。按键 5s 配对 / 12s OTA 改走 key.c 长按分级,去掉自计时与 1~5s 死区。 新增 app_defer,NVM/配对/OTA 只在 ISR 置位、在 500ms 任务上下文落地,避免再在 usr_timer 里写 flash。 规格书与注释同步精简。
53 lines
1.6 KiB
C
53 lines
1.6 KiB
C
/******************************************************************************
|
|
* @file app_mode.h
|
|
* @brief CBR3 工作模式:通风(25/5 循环)/ 强力(15min 一轮)
|
|
* @author cyWu <1917507415@qq.com>
|
|
* @date 2026.08.29
|
|
* @version V1.0.0,首次发布(P0 仅接口与 stub,P1 实现状态机)
|
|
*
|
|
* @note P1 语义(规格书第 9 章):mode=1 强制 1 档开 25min 停 5min 循环;
|
|
* mode=2 强制 3 档跑 15min 后风扇 0、mode 回 0。短按切档走
|
|
* app_mode_stop(档位由短按逻辑续切);APP 写档 / 写 mode 走
|
|
* app_mode_set_manual 手动抢权(mode=0 恢复进入前的手动档快照)。
|
|
* 开机恢复不存相位,从头计。BOARD_MODE_ENABLE=0 时全部空操作。
|
|
******************************************************************************/
|
|
|
|
#ifndef __APP_MODE_H__
|
|
#define __APP_MODE_H__
|
|
|
|
#include <stdint.h>
|
|
|
|
/**
|
|
* @brief 初始化模式状态机
|
|
* @return 无
|
|
*/
|
|
void app_mode_init(void);
|
|
|
|
/**
|
|
* @brief 推进模式状态机,每个业务 tick 调用一次
|
|
* @param dt 距上次调用的毫秒数
|
|
* @return 无
|
|
*/
|
|
void app_mode_run(uint16_t dt);
|
|
|
|
/**
|
|
* @brief APP 写 DP1 / 手动抢权:切到指定模式或退出(P0 关闭时忽略)
|
|
* @param mode 0=关闭模式,1=通风,2=强力
|
|
* @return 无
|
|
*/
|
|
void app_mode_set_manual(uint8_t mode);
|
|
|
|
/**
|
|
* @brief 查询当前逻辑模式
|
|
* @return 0/1/2
|
|
*/
|
|
uint8_t app_mode_get_active(void);
|
|
|
|
/**
|
|
* @brief 停止当前模式(风扇由 app_fan 接管,这里只清模式状态)
|
|
* @return 无
|
|
*/
|
|
void app_mode_stop(void);
|
|
|
|
#endif /* __APP_MODE_H__ */
|