30 lines
989 B
C
30 lines
989 B
C
/**
|
|
* @file fault_manager.h
|
|
* @brief 继电器状态与 ACS712 电流状态的故障判定接口。
|
|
*
|
|
* 本模块只依据“继电器控制输出状态”和“ACS712 已换算后的实际电流值”
|
|
* 做软件诊断,不声称能够证明继电器机械触点一定闭合。因为当前硬件没有
|
|
* 触点反馈,继电器吸合失败最终只能通过“吸合后没有有效电流”间接发现。
|
|
*/
|
|
#ifndef FAULT_MANAGER_H
|
|
#define FAULT_MANAGER_H
|
|
|
|
#include <stdint.h>
|
|
|
|
/** 初始化故障判定状态机。 */
|
|
void FaultManager_Init(void);
|
|
|
|
/** 周期性执行电流故障确认、恢复确认和未确认重发。 */
|
|
void FaultManager_Task(void);
|
|
|
|
/** 收到主机对故障/恢复上报的 ACK 后调用。 */
|
|
void FaultManager_OnReportAck(uint8_t fault_code);
|
|
|
|
/** 设置运行期电流阈值;单位 mA。 */
|
|
uint8_t FaultManager_SetThreshold(uint16_t threshold_ma);
|
|
|
|
/** 获取当前电流阈值;单位 mA。 */
|
|
uint16_t FaultManager_GetThreshold(void);
|
|
|
|
#endif
|