Files
JBao_Temp_Humi_Fan_FW/apps/usr_app/app_th.h
T
wuchuyuan 6e2ce733a6 修复传感器脱落无法上报故障: 发送指令 nack 计入连续失败,DP22 故障码改为 1
拔掉 AHT20 时 measure_start 返回 addr nack,原先直接跳过本次采样、fail_cnt 不增加,
导致永远判不出故障。发送指令失败与读数失败统一记失败,连续 3 次后显示 --。
fault_code:传感器故障报 1,2 预留;温湿度比较异常只闪显示、不上报。
2026-08-31 18:35:01 +08:00

68 lines
1.8 KiB
C
Raw 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_th.h
* @brief CBR3 温湿度采集:2s 周期、失败计数、最近有效值
* @author cyWu <1917507415@qq.com>
* @date 2026.08.31
* @version V1.1.0,发令阶段 nack 也计入连续失败
*
* @note 规格书 8.4:条件"持续时长"只在本次采样成功且比较成立时累加;
* 采样失败不累加、不清零;连续 3 次失败显示 "--"DP22 fault_code=1。
* fault_code=2 预留,本模块只给出 is_fault,由 app_function 映射。
******************************************************************************/
#ifndef __APP_TH_H__
#define __APP_TH_H__
#include <stdint.h>
/**
* @brief 初始化温湿度模块
* @return 无
*/
void app_th_init(void);
/**
* @brief 业务节拍:内部 2s 才真正采一次;采的时候走总线互斥
* @param dt 距上次调用的毫秒数
* @return 无
*/
void app_th_poll(uint16_t dt);
/**
* @brief 是否已有有效采样
* @return 1=有效,0=从未成功
*/
uint8_t app_th_get_valid(void);
/**
* @brief 最近一次有效温度
* @return 温度 ×10(如 25.3℃ → 253
*/
int16_t app_th_get_temp_x10(void);
/**
* @brief 最近一次有效湿度
* @return 湿度 0~100 整数 %
*/
uint8_t app_th_get_humi(void);
/**
* @brief 连续失败次数
* @return 连续失败次数
*/
uint8_t app_th_get_fail_cnt(void);
/**
* @brief 传感器故障(连续失败 ≥ BOARD_TH_FAIL_MAX
* @return 1=故障(显示 --、fault_code=1),0=正常
*/
uint8_t app_th_is_fault(void);
/**
* @brief 最近一次采样是否成功(P2 条件引擎用,规格书 8.4)
* @return 1=成功,0=失败/未采样过
*/
uint8_t app_th_last_sample_ok(void);
#endif /* __APP_TH_H__ */