54 lines
1.5 KiB
C
54 lines
1.5 KiB
C
/******************************************************************************
|
||
* @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 <stdint.h>
|
||
|
||
/**
|
||
* @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__ */
|