1、喷淋器 P1/P2功能实现

2、红灯按连接态慢闪
This commit is contained in:
2026-09-09 19:57:00 +08:00
parent 074960eb02
commit 0dd65e1552
31 changed files with 2805 additions and 258 deletions
+97
View File
@@ -0,0 +1,97 @@
/******************************************************************************
* @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__ */