AIM发送重启回复与状态信息分开发送,二次请求源ID不一致返回失败原因6(重启命令错误)
This commit is contained in:
@@ -40,7 +40,7 @@
|
||||
CM_CHAR FS_FILE_PATH[100];
|
||||
|
||||
/** 平台软件版本号 */
|
||||
const CM_UINT8 MSCP_SW_VERION[4] = { 93u, 1u, 1u, 63u };
|
||||
const CM_UINT8 MSCP_SW_VERION[4] = { 93u, 1u, 1u, 64u };
|
||||
/** 驱动软件版本号 */
|
||||
CM_UINT8 MSCP_DRV_VERION[4] = {0};
|
||||
/** 与维护一体机接口文档版本号(接口文档发生改变时升级版本号) */
|
||||
|
||||
@@ -1189,7 +1189,7 @@ ENUM_CM_RETURN PFM_DevStateSend(CM_UINT8 ifCyc)
|
||||
{
|
||||
dstName = g_Maintenance_Ids[i];
|
||||
ret = Prtcl_InnetSafe_RmSend(dstName, txBuf, offset);
|
||||
MSCP_LOG_MSG("INNET RM dst id %x offset = %d send ret =%d\n",offset, ret);
|
||||
MSCP_LOG_MSG("INNET RM dst id %04x offset = %d send ret =%d\n",dstName, offset, ret);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1207,7 +1207,7 @@ ENUM_CM_RETURN PFM_DevStateSend(CM_UINT8 ifCyc)
|
||||
{
|
||||
dstName = g_Maintenance_Ids[i];
|
||||
ret = Prtcl_InnetSafe_RmSend(dstName, rxBuf, offset);
|
||||
MSCP_LOG_MSG("INNET RM dst id %x offset = %d send ret =%d\n",offset, ret);
|
||||
MSCP_LOG_MSG("INNET RM dst id %04x offset = %d send ret =%d\n",dstName, offset, ret);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2054,7 +2054,7 @@ static void PFM_Data_HardWareReastart(CM_UINT16 srcName,CM_UINT8* mData,CM_UINT3
|
||||
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_4));
|
||||
}
|
||||
/*- 是否正在执行其它命令 */
|
||||
else if((0x55 == s_switch2xFlag) || (0x55 == s_switchRmFlag) || (1 == g_iostate) || (s_srcid != srcName))
|
||||
else if((0x55 == s_switch2xFlag) || (0x55 == s_switchRmFlag) || (1 == g_iostate))
|
||||
{
|
||||
/*- 正在执行其它命令 */
|
||||
s_boottype = 0u;
|
||||
@@ -2066,6 +2066,13 @@ static void PFM_Data_HardWareReastart(CM_UINT16 srcName,CM_UINT8* mData,CM_UINT3
|
||||
,s_switch2xFlag,s_switchRmFlag,g_iostate,s_srcid,srcName);
|
||||
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_5));
|
||||
}
|
||||
else if(s_srcid != srcName)
|
||||
{
|
||||
s_packHardAccredit = 1u;
|
||||
s_reasonHardAuthorization = 6u;
|
||||
MSCP_LOG_MSG("error pack 0xa6 s_srcid = %04x srcName = %04x\n", s_srcid, srcName);
|
||||
(void)CFM_DarkLog_Storage(DARK_LOG_HEX, TSCP_DARK_WARNING, 4U, DARK_FAULT_CODE_MERGE(REMOTE_UPDATE, DARK_FAULT_CODE_FUN_ORDER_13, TSCP_DARK_ASSERT_8));
|
||||
}
|
||||
/*- 切系命令一次回复到二次请求接收时间是否小于两分钟 */
|
||||
else if(((g_MSCP_SysCount - s_packFirstRecvTimer)*g_RMUP_Cfg.CYC_TIME) >= 120000u)
|
||||
{
|
||||
@@ -2096,7 +2103,7 @@ static void PFM_Data_HardWareReastart(CM_UINT16 srcName,CM_UINT8* mData,CM_UINT3
|
||||
s_packHardAccredit = 0u;
|
||||
s_reasonHardAuthorization = 0u;
|
||||
g_iostate = 0x1u;
|
||||
MSCP_LOG_MSG("0xa6 boottype = %d, s_boottype = %d, s_srcid = %d\n",boottype, s_boottype, s_srcid);
|
||||
MSCP_LOG_MSG("0xa6 boottype = %d, s_boottype = %d, s_srcid = %04x\n",boottype, s_boottype, s_srcid);
|
||||
}
|
||||
/*再次应答*/
|
||||
recvType = 0x56u;
|
||||
|
||||
@@ -1177,13 +1177,14 @@ CM_UINT8 Prtcl_InnetSafe_RmSend(IN CM_UINT16 dstName, IN const CM_UINT8* txBuf,
|
||||
{
|
||||
/*- 变量初始化 */
|
||||
CM_UINT16 len = 0u; /* 长度 */
|
||||
CM_UINT16 applen = 0u; /* 长度 */
|
||||
CM_UINT16 applen = 0u, tmplen = 0u; /* 长度 */
|
||||
CM_BOOL flag_split = CM_FALSE; /*是否将平台帧和应用帧分开发送*/
|
||||
CM_UINT8 buf[2u] = { 0u }; /* 临时变量 */
|
||||
CM_UINT8 buf4[4u] = {0u}; /* 临时变量*/
|
||||
CM_UINT8 Buftmp[128] = { 0u }; /* 临时变量 */
|
||||
CM_UINT8 rt = 0u; /* 函数返回值 */
|
||||
ENUM_CM_RETURN temprt = ENUM_CM_TRUE; /* 临时返回值 */
|
||||
CM_UINT16 appDstID = 0x00u;
|
||||
CM_UINT16 appDstID = 0xffffu;
|
||||
|
||||
/*- 输入长度检查 */
|
||||
if ((0x55u == g_RMUP_Cfg.M_RemoteUpdate_Enable) &&(0u < g_Maintenance_Ids[0]))
|
||||
@@ -1210,6 +1211,16 @@ CM_UINT8 Prtcl_InnetSafe_RmSend(IN CM_UINT16 dstName, IN const CM_UINT8* txBuf,
|
||||
(void)CM_QueueRead(2u, buf, &s_Innet_AppRmSendQ);
|
||||
(void)CM_QueueRead(2u, buf, &s_Innet_AppRmSendQ);
|
||||
(void)CM_QueueRead(applen, Buftmp, &s_Innet_AppRmSendQ);/*长度*/
|
||||
if(appDstID == g_Maintenance_Ids[1])
|
||||
{
|
||||
tmplen = applen;
|
||||
flag_split = CM_FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
flag_split = CM_TRUE;
|
||||
tmplen = 0u;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1226,7 +1237,7 @@ CM_UINT8 Prtcl_InnetSafe_RmSend(IN CM_UINT16 dstName, IN const CM_UINT8* txBuf,
|
||||
(void)CM_Mutex_Lock(s_Innet_RmSend_M);
|
||||
|
||||
/*- 填写协议输出帧头 */
|
||||
len = (CM_UINT16)(txLen + 4u)+applen;
|
||||
len = (CM_UINT16)(txLen + 4u)+tmplen;
|
||||
CM_ShortToChar(len, buf);
|
||||
temprt &= CM_QueueWrite(2u, buf, &s_Innet_RmSendQ);/*长度*/
|
||||
CM_ShortToCharLE(0u, buf);
|
||||
@@ -1237,6 +1248,16 @@ CM_UINT8 Prtcl_InnetSafe_RmSend(IN CM_UINT16 dstName, IN const CM_UINT8* txBuf,
|
||||
temprt &= CM_QueueWrite(txLen, txBuf, &s_Innet_RmSendQ);
|
||||
if(ENUM_CM_TRUE == temprt)
|
||||
{
|
||||
if(CM_TRUE == flag_split)
|
||||
{
|
||||
len = applen + 4u;
|
||||
CM_ShortToChar(len, buf);
|
||||
temprt &= CM_QueueWrite(2u, buf, &s_Innet_RmSendQ);/*长度*/
|
||||
CM_ShortToCharLE(0u, buf);
|
||||
temprt &= CM_QueueWrite(2u, buf, &s_Innet_RmSendQ);/*2字节预留*/
|
||||
CM_ShortToCharLE(dstName, buf);
|
||||
temprt &= CM_QueueWrite(2u, buf, &s_Innet_RmSendQ);/*目的ID*/
|
||||
}
|
||||
temprt &= CM_QueueWrite(applen, Buftmp, &s_Innet_RmSendQ);
|
||||
if(ENUM_CM_TRUE == temprt)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user