/******************************************************************** * 文件名: phase1_second_har_brake.h * 摘要: 二次谐波制动模块 — 重构后头文件 (Phase 1) * 变更:将原 .c 中的 extern 声明迁移到此,统一管理 * * 当前版本:2.0 * 作 者:hxf (重构 by Hermes + Codex) * 日 期:2026-07-16 * * 重构说明 (Phase 1 · 安全重构,零行为变更): * 1. 将 extern 声明从 .c 迁移至 .h,消除 extern 裸奔 * 2. 添加 FA_ENABLE_MASK 宏替代魔法数字 0x81 * 3. 函数接口不变,调用方无需修改 ********************************************************************/ #ifndef _PHASE1_SECONDHARBRAKE_H #define _PHASE1_SECONDHARBRAKE_H #include #ifdef __cplusplus extern "C" { #endif /*========================================================================== * 宏定义 *==========================================================================*/ /** @brief 过流检测启动标志维度:3段 × 3相 */ #define SECBRAKENUM 3 /** @brief 使能掩码,替代魔法数字 0x81 */ #define FA_ENABLE_MASK 0x81 /*========================================================================== * 外部变量声明 (从 .c 迁移至此) *==========================================================================*/ extern VfaFdPara faFdPara[]; extern VfaFdRunPara faFdRunPara[]; extern VfaFdInfo faFdInfo[]; extern VfaPublicPara faPublicPara[]; extern VfcousPara fcousFaPara[]; extern VfcousFdRunPara fcousFdRunPara[]; extern VfaSoftYBPara faSoftYBRunPara; extern VfaMEMO faMemoInfo[]; extern VfaPtInfo faPtInfo[]; extern DWORD gHarm2Value[FA_FD_NUM][3]; extern BYTE netproEnable[]; extern BYTE vsp5Enable[]; extern BYTE faEnable[]; extern BYTE fcousEnable[]; extern SVSP_RUN_PARA_SW gVspRunPara[FA_FD_NUM]; /*========================================================================== * 函数声明 *==========================================================================*/ /** @brief 初始化二次谐波制动定值 */ void SecondHarBrake_ParamInit(BYTE fd); /** @brief 二次谐波制动主判断函数(每周期调用) */ BOOL faFdBrakeJudge(BYTE fd); /** @brief 查询二次谐波制动是否使能 */ BOOL SecondHar_Brake_Enable(BYTE fd); /*========================================================================== * Phase 1 新增内部函数(声明放于此,方便单测) *==========================================================================*/ /** @brief 单相过流检测(提取自 6 处重复代码) */ BOOL isPhaseOverCurrent(BYTE fd, int sect, int phase, DWORD threshold, float returnRatio); /** @brief 遍历三相执行过流检测(提取自 6 处重复代码) */ BOOL checkAllPhasesOverCurrent(BYTE fd, int sect, DWORD threshold, float returnRatio); #ifdef __cplusplus } #endif /* extern "C" */ #endif /* _PHASE1_SECONDHARBRAKE_H */