Files
wuchuyuan 0dd65e1552 1、喷淋器 P1/P2功能实现
2、红灯按连接态慢闪
2026-09-09 19:57:00 +08:00

98 lines
2.8 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/******************************************************************************
* @file app_linkage.h
* @brief CBR2 联动引擎(规格书第 11 章:1 条 20B DP9 配置,湿度回差开/关)
* @author cyWu <1917507415@qq.com>
* @date 2026.09.09
* @version V1.0.0,首次发布
*
* @note 开停只看湿度(11.3uint8 %):
* H < Hmin → 循环喷(一轮正常结束后立刻再开,DP7 参数)
* H > Hmax → 立刻停泵、结束作业
* [Hmin,Hmax] → 保持上一态(含等于不算越界)
* 湿度源(8 章):已连接=DP6set_connected_humi);断连=扫描
* JBao-{tank}set_scan_humi)。丢广播/无效包 → 当没收到,保持
* 上一态(禁止丢包停喷)。
******************************************************************************/
#ifndef __APP_LINKAGE_H__
#define __APP_LINKAGE_H__
#include <stdint.h>
/**
* @brief 初始化联动(配置有效性由 is_valid 判;作废标志清 0
* @return 无
*/
void app_linkage_init(void);
/**
* @brief 500ms 任务上下文跑联动:有效配置 + 未被手动作废 + 有有效湿度才判
* @param dt 距上次调用的毫秒数(=500)
* @return 无
*/
void app_linkage_run(uint16_t dt);
/**
* @brief 立刻按当前湿度重判一次(DP9 重写 / 计划轮收口 / 联动轮结束后调用)
* @return 无
*/
void app_linkage_reeval(void);
/**
* @brief DP8 联动删除(脉冲):清 RAM+VM 20B;联动占着则停;delete 清 0
* @return 无
*/
void app_linkage_delete(void);
/**
* @brief APP 重写 DP9memcpy 已完成):存 VM、清手动作废、立刻重判
* @return 无
*/
void app_linkage_set_config(void);
/**
* @brief 手动作废联动轮(PB1 开/停、DP1、DP7 抢权触发,RAM 不写 VM
* @return 无
*/
void app_linkage_void(void);
/**
* @brief 配置是否有效(缸体号≠0 且 Hmin≤Hmax)
* @return 1=有效
*/
uint8_t app_linkage_is_valid(void);
/**
* @brief 缸体编号(DP9 Byte0-1uint16 大端)
* @return tank_id
*/
uint16_t app_linkage_get_tank_id(void);
/**
* @brief 配置版本(DP9 Byte6,扫描匹配用)
* @return 版本号
*/
uint8_t app_linkage_get_cfg_ver(void);
/**
* @brief BLE 已连接:服务器下发 DP6 湿度(uint8 %)→ 联动湿度
* @param humi 服务器下发湿度 %
* @return 无
*/
void app_linkage_set_connected_humi(uint8_t humi);
/**
* @brief 断连扫描:匹配到 JBao-{tank} 广播 → 联动湿度(uint8 %)
* @param humi 风扇广播湿度 %
* @return 无
*/
void app_linkage_set_scan_humi(uint8_t humi);
/**
* @brief 是否已有任何有效湿度(连接 DP6 或扫描匹配到过)
* @return 1=有;0=尚无湿度(联动不动作)
*/
uint8_t app_linkage_has_humi(void);
#endif /* __APP_LINKAGE_H__ */