/****************************************************************************** * @file app_timer_task.h * @brief CBR2 喷淋计划引擎(规格书第 12 章:到点触发一轮 + 排队 + RTC 门闩) * @author cyWu <1917507415@qq.com> * @date 2026.09.09 * @version V1.0.0,首次发布 ******************************************************************************/ #ifndef __APP_TIMER_TASK_H__ #define __APP_TIMER_TASK_H__ #include /** * @brief 初始化计划引擎(RTC 门闩:usr_rtc_get_time 失败等同 plan_en=0) * @return 无 */ void app_timer_init(void); /** * @brief 500ms 任务上下文跑计划引擎:门闩判定 + 到点入队 + 空闲起轮 * @param dt 距上次调用的毫秒数(=500) * @return 无 */ void app_timer_run(uint16_t dt); /** * @brief APP 写 DP10 计划总开关(mark_dirty 由调用方完成) * @param en 0=关(不再新触发、清队列;不拆当前轮),1=开 * @return 无 */ void app_timer_set_en(uint8_t en); /** * @brief 队列是否还有待跑计划(联动让位判断用) * @return 1=非空 */ uint8_t app_timer_has_pending(void); /** * @brief 空闲时立刻出队起轮(轮结束边沿收口调用;不空闲则下拍再试) * @return 无 */ void app_timer_kick(void); /** * @brief 计划轮结束收口:单次计划清该条使能并落盘(12.3-4 / 10.4) * @param slot 槽位 0~6 * @return 无 */ void app_timer_on_plan_done(uint8_t slot); #endif /* __APP_TIMER_TASK_H__ */