|
|
|
@ -19,12 +19,13 @@ |
|
|
|
#include "BHBF.h" |
|
|
|
#include "msg_center.h" |
|
|
|
#include "bsp_Error.pb.h" |
|
|
|
#include "rd_time.h" |
|
|
|
|
|
|
|
/*----------------------------------------------*
|
|
|
|
* 常量/宏定义(前置,供模块级变量与函数使用) * |
|
|
|
*----------------------------------------------*/ |
|
|
|
#define COM_ERROR_MODULE_NUM 7 // ComError 模块数量(位 0~6)
|
|
|
|
#define COM_ERROR_TIMEOUT_THRESHOLD 8000 // 连续 N 次未收到正常信号判定为模块异常
|
|
|
|
#define COM_ERROR_TIMEOUT_THRESHOLD 500 // 连续 N 次未收到正常信号判定为模块异常
|
|
|
|
|
|
|
|
/*----------------------------------------------*
|
|
|
|
* 外部变量说明 * |
|
|
|
@ -84,6 +85,7 @@ int32_t Get_BIT(int32_t* num,int32_t k) |
|
|
|
*****************************************************************************/ |
|
|
|
void daemon_PollComError(void) |
|
|
|
{ |
|
|
|
static uint32_t uiLastSendTick = 0; |
|
|
|
for (int32_t i = 0; i < COM_ERROR_MODULE_NUM; i++) |
|
|
|
{ |
|
|
|
if (Get_BIT(&g_iCom_Error_Code, i) == 1) |
|
|
|
@ -92,6 +94,12 @@ void daemon_PollComError(void) |
|
|
|
SET_BIT_0(&g_iCom_Error_Code, i); |
|
|
|
g_auiComErrorCount[i] = 0; // 失联计数清零
|
|
|
|
SET_BIT_0(&g_iCom_Error_Status, i); // 标记模块正常
|
|
|
|
uint32_t uiNowTick = Rd_GetTime(); |
|
|
|
if ((int32_t)(uiNowTick - uiLastSendTick) >= 1000) |
|
|
|
{ |
|
|
|
uiLastSendTick = uiNowTick; |
|
|
|
MsgCenter_SendTo(MODULE_NAME_CUSTOM, CUSTOM_GET_DAEMON_CODE, &g_iCom_Error_Status, sizeof(int32_t)); |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
|