仲裁组包增加CPUID
This commit is contained in:
@@ -121,7 +121,7 @@ void Area_With_Arb_Init(void)
|
||||
Area_LogMQ_Init();
|
||||
AREA_BASIC_CFG_PTR->BoardID = g_PFM_Cfg.BOARD_ID;/**< 板卡ID 插箱id */
|
||||
AREA_BASIC_CFG_PTR->Cpuid = g_PFM_Cfg.CPU_ID;/**< cpu id */
|
||||
AREA_BASIC_CFG_PTR->OutnetID = g_PFM_Cfg.BOARD_ID;/**< 外网ID */
|
||||
AREA_BASIC_CFG_PTR->OutnetID = g_PFM_Cfg.OUTNET_ID;/**< 外网ID */
|
||||
/* 获取对系、对地板卡id*/
|
||||
get_Other_BoardId(AREA_BASIC_CFG_PTR->BoardID, &(AREA_BASIC_CFG_PTR->Partner_BoardID), &(AREA_BASIC_CFG_PTR->Partner_Area_A_BoardID), &(AREA_BASIC_CFG_PTR->Partner_Area_B_BoardID));
|
||||
/**获取自身所在地(A地/B地) */
|
||||
@@ -133,8 +133,8 @@ void Area_With_Arb_Init(void)
|
||||
{
|
||||
AREA_BASIC_CFG_PTR->AreaID = MSCP_AREA_ID_B;
|
||||
}
|
||||
AREA_LOG_MSG("AREA_ARB:Init config, BoardID:%d CPU:%d Area:%d Partner:%d Remote:%d-%d\n",
|
||||
AREA_BASIC_CFG_PTR->BoardID, AREA_BASIC_CFG_PTR->Cpuid, AREA_BASIC_CFG_PTR->AreaID,
|
||||
AREA_LOG_MSG("AREA_ARB:Init config, BoardID:%d CPU:%d OUTNET_ID:%d Area:%d Partner:%d Remote:%d-%d\n",
|
||||
AREA_BASIC_CFG_PTR->BoardID, AREA_BASIC_CFG_PTR->Cpuid, AREA_BASIC_CFG_PTR->OutnetID, AREA_BASIC_CFG_PTR->AreaID,
|
||||
AREA_BASIC_CFG_PTR->Partner_BoardID, AREA_BASIC_CFG_PTR->Partner_Area_A_BoardID,
|
||||
AREA_BASIC_CFG_PTR->Partner_Area_B_BoardID);
|
||||
/* 网络初始化*/
|
||||
@@ -477,6 +477,7 @@ static void s_Area_Arb_Send_Process(void)
|
||||
arb_pack.ArbSN = DFM_GetBirthCount();
|
||||
arb_pack.OutNet_ID = AREA_BASIC_CFG_PTR->OutnetID;
|
||||
arb_pack.Board_ID = AREA_BASIC_CFG_PTR->BoardID;
|
||||
arb_pack.CPU_ID = AREA_BASIC_CFG_PTR->Cpuid;
|
||||
arb_pack.ArbPayLoad = 0x55u; /**请求升主 */
|
||||
CM_Memset(&arb_pack.Reserver[0], 0, AREA_ARB_RESERVER_LEN, AREA_ARB_RESERVER_LEN);
|
||||
/**计算双CRC */
|
||||
@@ -564,6 +565,7 @@ static void s_Area_Arb_Recv_Process(void)
|
||||
CM_UINT32 local_sn = DFM_GetBirthCount();
|
||||
CM_UINT16 local_outnetid = AREA_BASIC_CFG_PTR->OutnetID;
|
||||
CM_UINT8 local_id = AREA_BASIC_CFG_PTR->BoardID;
|
||||
CM_UINT8 cpu_id = AREA_BASIC_CFG_PTR->Cpuid;
|
||||
CM_UINT32 tick_now = (CM_UINT32)(CM_GetTick() / CM_UNSIGNED_MILLION);
|
||||
CM_UINT32 tick_start = tick_now, used_time = 0u;
|
||||
/**清空仲裁状态 */
|
||||
@@ -581,7 +583,8 @@ static void s_Area_Arb_Recv_Process(void)
|
||||
if(crc1 == arb_pack.CRC1 && crc2 == arb_pack.CRC2 &&
|
||||
((AREA_ARB_FRAME_PACK_LEN - 1u) == arb_pack.Len) &&
|
||||
local_sn == arb_pack.ArbSN && ENUM_AREA_MSG_ARB_ACK == arb_pack.MsgType &&
|
||||
local_outnetid == arb_pack.OutNet_ID && local_id == arb_pack.Board_ID)
|
||||
local_outnetid == arb_pack.OutNet_ID && local_id == arb_pack.Board_ID &&
|
||||
cpu_id == arb_pack.CPU_ID)
|
||||
{
|
||||
if(0x55 == arb_pack.ArbPayLoad)
|
||||
{
|
||||
|
||||
@@ -23,6 +23,7 @@ CM_INT32 Area_Arb_Frame_Pack(OUT CM_UINT8* buf, IN CM_UINT32 buf_size,
|
||||
CM_ShortToChar(pack->OutNet_ID, &buf[index]);
|
||||
index += (CM_UINT32)sizeof(CM_UINT16);
|
||||
buf[index++] = pack->Board_ID;
|
||||
buf[index++] = pack->CPU_ID;
|
||||
buf[index++] = pack->ArbPayLoad;
|
||||
/* 预留区为字节数组,直接复制到报文缓冲区。 */
|
||||
(void)memcpy(&buf[index], pack->Reserver, AREA_ARB_RESERVER_LEN);
|
||||
@@ -57,6 +58,7 @@ void Area_Arb_Frame_UnPack(OUT STRU_AREA_WITH_ARB_PACK_T* pack,
|
||||
pack->OutNet_ID = CM_ShortFromChar(&buf[index]);
|
||||
index += (CM_UINT32)sizeof(CM_UINT16);
|
||||
pack->Board_ID = buf[index++];
|
||||
pack->CPU_ID = buf[index++];
|
||||
pack->ArbPayLoad = buf[index++];
|
||||
/* 预留区为字节数组,直接复制到输出结构体。 */
|
||||
(void)memcpy(pack->Reserver, &buf[index], AREA_ARB_RESERVER_LEN);
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "Area.h"
|
||||
|
||||
/* 各类报文在线路上的固定长度,不包含结构体对齐字节。 */
|
||||
#define AREA_ARB_FRAME_PACK_LEN (26u)
|
||||
#define AREA_ARB_FRAME_PACK_LEN (27u)
|
||||
#define AREA_ARB_STATE_MULTI_PACK_LEN (25u)
|
||||
#define AREA_ARB_STATE_PACK_LEN (27u)
|
||||
|
||||
@@ -32,6 +32,7 @@ typedef struct
|
||||
CM_UINT32 ArbSN; /**< 仲裁请求/应答序列号 */
|
||||
CM_UINT16 OutNet_ID; /**< 外网ID */
|
||||
CM_UINT8 Board_ID; /**< 板卡ID */
|
||||
CM_UINT8 CPU_ID; /**< CPUID */
|
||||
CM_UINT8 ArbPayLoad; /**< 仲裁请求/回复的具体内容 */
|
||||
CM_UINT8 Reserver[AREA_ARB_RESERVER_LEN]; /**< 预留8字节 */
|
||||
CM_UINT32 CRC1; /**< CRC1 */
|
||||
|
||||
Reference in New Issue
Block a user