98 lines
2.8 KiB
C
98 lines
2.8 KiB
C
/******************************************************************************
|
||
* @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.3,uint8 %):
|
||
* H < Hmin → 循环喷(一轮正常结束后立刻再开,DP7 参数)
|
||
* H > Hmax → 立刻停泵、结束作业
|
||
* [Hmin,Hmax] → 保持上一态(含等于不算越界)
|
||
* 湿度源(8 章):已连接=DP6(set_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 重写 DP9(memcpy 已完成):存 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-1,uint16 大端)
|
||
* @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__ */
|