58 lines
1.6 KiB
C
58 lines
1.6 KiB
C
/******************************************************************************
|
|
* @file app_spray.h
|
|
* @brief 喷淋作业引擎:一轮 = 单次时长 × 次数 + 间隔(规格书第 10 章)
|
|
* @author cyWu <1917507415@qq.com>
|
|
* @date 2026.09.09
|
|
* @version V1.0.0
|
|
******************************************************************************/
|
|
|
|
#ifndef __APP_SPRAY_H__
|
|
#define __APP_SPRAY_H__
|
|
|
|
#include <stdint.h>
|
|
|
|
typedef enum {
|
|
APP_SPRAY_OK = 0,
|
|
APP_SPRAY_ERR_NOT_INIT
|
|
} AppSpray_Ret_t;
|
|
|
|
/**
|
|
* @brief 初始化作业引擎(读 DP7 有效配置,泵保持关)
|
|
* @return APP_SPRAY_OK=成功
|
|
*/
|
|
AppSpray_Ret_t app_spray_init(void);
|
|
|
|
/**
|
|
* @brief 开一轮:用 RAM 里最近有效 DP7 配置(非法回退 10s×3 次+3s)
|
|
* @note 幂等:已在作业中则保持当前轮不重开(规格书 10.5,PB1/DP1 语义)。
|
|
* @return 无
|
|
*/
|
|
void app_spray_start(void);
|
|
|
|
/**
|
|
* @brief 停:立刻两脚拉低、结束作业(间隔等待中也立即停)
|
|
* @return 无
|
|
*/
|
|
void app_spray_stop(void);
|
|
|
|
/**
|
|
* @brief 作业节拍:时长/间隔倒数,到点切泵(每 20ms 调用,可中断上下文)
|
|
* @param dt 距上次调用的毫秒数
|
|
* @return 无
|
|
*/
|
|
void app_spray_poll(uint16_t dt);
|
|
|
|
/**
|
|
* @brief 查询是否处于作业态(含间隔等待,整轮期间为 1)
|
|
* @return 1=作业中,0=空闲
|
|
*/
|
|
uint8_t app_spray_is_running(void);
|
|
|
|
/**
|
|
* @brief 查询模块是否已初始化
|
|
* @return APP_SPRAY_OK=已初始化,APP_SPRAY_ERR_NOT_INIT=未初始化
|
|
*/
|
|
AppSpray_Ret_t app_spray_get_status(void);
|
|
|
|
#endif /* __APP_SPRAY_H__ */
|