增加温湿度数据滤波,防止数据频繁上报
This commit is contained in:
+12
-11
@@ -2,13 +2,14 @@
|
||||
* @file app_th.h
|
||||
* @brief CBR3 温湿度采集:2s 周期、失败计数、最近有效值
|
||||
* @author cyWu <1917507415@qq.com>
|
||||
* @date 2026.08.31
|
||||
* @version V1.1.0,发令阶段 nack 也计入连续失败
|
||||
* @date 2026.09.03
|
||||
* @version V1.3.0,对外温湿度与显示/上报绑死(T>=0.5℃ / H>=2%)
|
||||
*
|
||||
* @note 规格书 8.4:联动只在本次采样成功时用新值比较;采样失败保持
|
||||
* 上一有效值继续判(与显示一致),直到连续 3 次失败显示 "--"
|
||||
* (DP24 fault_code=1)。fault_code=2 预留,本模块只给出
|
||||
* is_fault,由 app_function 映射。
|
||||
* @note 规格书 8.4:联动、数码管、DP3/DP4 都用对外温湿度;采样失败保持
|
||||
* 上一对外值继续判,直到连续 3 次失败显示 "--"(DP24
|
||||
* fault_code=1)。对外值首次跟上,之后
|
||||
* |ΔT|>=BOARD_TH_TEMP_PUB_DELTA_X10、|ΔH|>=BOARD_TH_HUMI_PUB_DELTA
|
||||
* 才改,避免小数抖动导致显示、APP、联动各跳。
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __APP_TH_H__
|
||||
@@ -36,13 +37,13 @@ void app_th_poll(uint16_t dt);
|
||||
uint8_t app_th_get_valid(void);
|
||||
|
||||
/**
|
||||
* @brief 最近一次有效温度
|
||||
* @brief 对外温度(数码管 + DP3 + 联动)
|
||||
* @return 温度 ×10(如 25.3℃ → 253)
|
||||
*/
|
||||
int16_t app_th_get_temp_x10(void);
|
||||
|
||||
/**
|
||||
* @brief 最近一次有效湿度
|
||||
* @brief 对外湿度(数码管 + DP4 + 联动)
|
||||
* @return 湿度 0~100 整数 %
|
||||
*/
|
||||
uint8_t app_th_get_humi(void);
|
||||
@@ -72,9 +73,9 @@ uint8_t app_th_last_sample_ok(void);
|
||||
* 消费者(usr_ble_adv_updata,BLE 线程任务上下文)调本函数取走,
|
||||
* 内部 local_irq_disable 保护,取到即清。
|
||||
* 只在真正采样成功(last_ok 那次)时产生,失败/fault 不产生,
|
||||
* 取到的就是本次新值而不是历史有效值。
|
||||
* @param t_x10 出参:温度 ×10(可为 NULL)
|
||||
* @param h 出参:湿度 %(可为 NULL)
|
||||
* 温度、湿度都是对外值(与数码管/DP3/DP4 一致)。
|
||||
* @param t_x10 出参:对外温度 ×10(可为 NULL)
|
||||
* @param h 出参:对外湿度 %(可为 NULL)
|
||||
* @return 1=取到一次新采样,0=无新采样
|
||||
*/
|
||||
uint8_t app_th_take_sample(int16_t *t_x10, uint8_t *h);
|
||||
|
||||
Reference in New Issue
Block a user