Files
CCU621M/app/fault_cheak/fault_cheak模块说明.md
T

82 lines
3.1 KiB
Markdown
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.
# fault_cheak 模块说明
> 路径:`app/fault_cheak/`
> 作用:完成故障检测、故障动作缓存、实时故障状态维护,以及历史故障持久化触发。
## 1. 模块组成
- `fault_interface.h/.c`
- 对外故障接口(`v_set_fault_data``v_get_fault_data``u8_get_fault_sum` 等)
- 故障动作缓存队列管理(`v_fault_cache_init``u8_fault_cache_add``v_fault_cache_process`
- 故障信息中文描述与故障位置描述
- `faultcheck_task.h/.c`
- 故障检测任务主循环
- 故障输入状态检查(急停、门禁、水浸、防雷、烟感、枪温等)
- 拔枪恢复逻辑与任务周期调度
## 2. 功能职责
### 2.1 实时故障状态管理
- 维护 `s_real_fault`
- `u8_fault_cnt`:当前故障数量
- `u8_warn_cnt`:当前告警数量
- `fault_data[]`:当前故障列表
- `warn_data[]`:当前告警列表
- 支持“同位置+同故障码”去重,避免重复入表。
### 2.2 故障动作缓存解耦
- 对外 `v_set_fault_data()` 只做“入缓存队列”,不直接重处理逻辑。
- 任务周期内由 `v_fault_cache_process()` 分批执行,避免单周期耗时过长影响主循环实时性。
### 2.3 历史故障持久化触发
- 故障/告警新增时,触发历史记录持久化:
- 主路径:`flash_file_mgr`(索引 EEPROM + 数据 externalflash
- 可选路径:`FATFS_ENABLE_FAULT` 打开时同步缓存到 FATFS 故障缓存
- 恢复动作当前仅更新实时状态(是否保存恢复动作可按业务再打开)。
## 3. 关键数据结构
- `HIS_FAULT_DATA_T``faultcheck_task.h`
- 故障位置 `e_site`
- 故障码 `e_fault_info`
- 发生时间 `s_occur_time`
- 动作类型 `ActType`(恢复/故障/告警)
- 扩展值 `s16_value1/s16_value2`
- `REAL_FAULT_DATA_T``fault_interface.h`
- 当前态故障/告警存储
- `FAULT_ACTION_CACHE_T``fault_interface.h`
- 故障动作缓存环形队列
## 4. 运行流程(简述)
1. 外部模块调用 `v_set_fault_data(...)` 上报动作;
2. 动作进入缓存队列;
3. `v_fault_task()` 周期调用 `v_fault_cache_process()`
4. 内部 `v_set_fault_data_internal()` 完成:
- 实时故障表增删
- 必要日志输出
- 新增故障/告警时持久化到历史存储模块。
## 5. 与 flash_file_mgr 的关系
- `fault_cheak` 负责“故障业务判断与动作触发”;
- `flash_file_mgr/fault_flash_impl` 负责“历史故障持久化实现”;
- 两者通过 `v_hisFault_save_record()` 解耦。
## 6. 配置与注意事项
- `FAULT_ACTION_CACHE_SIZE`:缓存大小,过小会丢动作;
- `FAULT_TEST`:测试开关,打开后可屏蔽实际故障处理;
- 当前接口运行在任务上下文,若在中断上下文调用需增加保护或改为事件投递。
## 7. 相关文档
- [主说明 README](../../README.md)
- [flash_file_mgr 模块说明](../../BSP/flash_file_mgr/flash_file_mgr模块说明.md)
- [eeprom 模块说明](../../BSP/eeprom/eeprom模块说明.md)
- [externalflash 模块说明](../../BSP/externalflash/externalflash模块说明.md)