3 Commits

Author SHA1 Message Date
lh 1765e65e49 [9.5] 9.5首版首轮代码,基线版本 2026-05-22 15:18:05 +08:00
lh bdc50a96a3 [9.3] 9.3首版首轮代码,基线版本 2026-05-22 15:15:15 +08:00
lh 4da5ea076d [9.2] 9.2首版首轮代码,基线版本 2026-05-22 15:09:42 +08:00
16 changed files with 1161 additions and 1027 deletions
+69 -14
View File
@@ -4,7 +4,6 @@
*/
#include "APP_API.h"
#include "MSCP_APP_API.h"
#include "MSCP_APP_Interface.h"
#include "2oo2InterfaceDataManage.h"
#include "2oo2DataTransferManage.h"
#include "commonQueryStruDef.h"
@@ -240,13 +239,15 @@ void APP_API_Data_Init()
.M_InnetRaw_Enable = 0xAA, /**< 内网透传通信功能开关 */
.M_OutnetSafe_Enable = 0x55,/**< 外网安全通信功能开关 */
.M_OutnetRaw_Enable = 0xAA, /**< 外网透传通信功能开关 */
.M_CpuUsageGet_Enable = 0xAA,/**< 获取cpu使用率功能开关 */
.M_CpuUsageGet_Enable = 0x55,/**< 获取cpu使用率功能开关 */
.M_RemoteUpdate_Enable = 0x55,/**< 远程部署内网安全通信功能开关 */
.ID_Maintenance = DEVICE_TYPE_AIM,
.Start_Path = "/emmc1", /**< 程序启动路径 */
.reboot_replycount = 10, /**< 重启确认报文回复次数 */
.M_AutoReboot_Count = 3, /**< 自动重启次数 */
.M_AutoClear_Days = 1, /**< 连续运行多久清空宕机次数的天数 */
#if 1
.CPU[0].IP_2oo2 = "192.168.0.11", /**< 2oo2通信IP */
.CPU[0].IP_2x2 = "192.168.1.62", /**< 2x2通信IP */
.CPU[0].IP_Out = "192.168.1.62", /**< 外网通信IP */
@@ -286,10 +287,66 @@ void APP_API_Data_Init()
.CPU[3].IP_Com_Extend = "192.168.2.64",/**< 通用通信扩展IP */
.CPU[3].Logger_PortBase = 55022, /**< 明文日志记录发送端口 */
.CPU[3].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
#else
.M_Area_Enable = 0xAA, /**< CI/RC标识 0x55为CI 0xAA为RC */
.CPU[0].IP_2oo2 = "192.168.0.31", /**< 2oo2通信IP */
.CPU[0].IP_2x2 = "192.168.1.63", /**< 2x2通信IP */
.CPU[0].IP_Out = "192.168.1.63", /**< 外网通信IP */
.CPU[0].IP_Maintain = "192.168.146.105", /**< 维护通信IP */
/*适用透传通道-选配*/
.CPU[0].IP_Com = "192.168.1.63", /**< 通用通信IP */
.CPU[0].IP_Com_Extend = "192.168.1.63",/**< 通用通信扩展IP */
.CPU[0].Logger_PortBase = 55011, /**< 明文日志记录发送端口 */
.CPU[0].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
.CPU[1].IP_2oo2 = "192.168.0.32", /**< 2oo2通信IP */
.CPU[1].IP_2x2 = "192.168.2.63", /**< 2x2通信IP */
.CPU[1].IP_Out = "192.168.2.63", /**< 外网通信IP */
.CPU[1].IP_Maintain = "192.168.18.106", /**< 维护通信IP */
/*适用透传通道-选配*/
.CPU[1].IP_Com = "192.168.2.63", /**< 通用通信IP */
.CPU[1].IP_Com_Extend = "192.168.2.63",/**< 通用通信扩展IP */
.CPU[1].Logger_PortBase = 55012, /**< 明文日志记录发送端口 */
.CPU[1].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
.CPU[2].IP_2oo2 = "192.168.0.41", /**< 2oo2通信IP */
.CPU[2].IP_2x2 = "192.168.1.65", /**< 2x2通信IP */
.CPU[2].IP_Out = "192.168.1.65", /**< 外网通信IP */
.CPU[2].IP_Maintain = "192.168.146.107", /**< 维护通信IP */
/*适用透传通道-选配*/
.CPU[2].IP_Com = "192.168.1.65", /**< 通用通信IP */
.CPU[2].IP_Com_Extend = "192.168.1.65",/**< 通用通信扩展IP */
.CPU[2].Logger_PortBase = 55021, /**< 明文日志记录发送端口 */
.CPU[2].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
.CPU[3].IP_2oo2 = "192.168.0.42", /**< 2oo2通信IP */
.CPU[3].IP_2x2 = "192.168.2.65", /**< 2x2通信IP */
.CPU[3].IP_Out = "192.168.2.65", /**< 外网通信IP */
.CPU[3].IP_Maintain = "192.168.18.108", /**< 维护通信IP */
/*适用透传通道-选配*/
.CPU[3].IP_Com = "192.168.2.65", /**< 通用通信IP */
.CPU[3].IP_Com_Extend = "192.168.2.65",/**< 通用通信扩展IP */
.CPU[3].Logger_PortBase = 55022, /**< 明文日志记录发送端口 */
.CPU[3].Logger_PortCiphertext = 55002, /**< 暗文日志记录发送端口 */
/*CPU1*/
.AREA_CPU[0].IP_Area_A = "192.168.1.62", /**< 另一插箱A系CPU1的2x2IP */
.AREA_CPU[0].IP_Area_B = "192.168.1.64", /**< 另一插箱B系CPU1的2x2IP */
.AREA_CPU[0].IP_Multicast_Mine = "239.0.0.21", /**< 本插箱CPU1所在广播域 */
.AREA_CPU[0].IP_Multicast_Dest = "239.0.0.11", /**< 另一插箱CPU1所在广播域 */
/*CPU2*/
.AREA_CPU[1].IP_Area_A = "192.168.2.62", /**< 另一插箱A系CPU2的2x2IP */
.AREA_CPU[1].IP_Area_B = "192.168.2.64", /**< 另一插箱B系CPU2的2x2IP */
.AREA_CPU[1].IP_Multicast_Mine = "239.0.0.22", /**< 本插箱CPU2所在广播域 */
.AREA_CPU[1].IP_Multicast_Dest = "239.0.0.12", /**< 另一插箱CPU2所在广播域 */
#endif
/*通用端口配置*/
.Port_Outnet_Safe = 54001, /**< 外网安全通信端口 */
.Port_Innet_Safe = 53001, /**< 内网安全通信端口 */
.Port_Outnet_Raw = 54002, /**< 外网透明传输端口 */
// .Port_Log_Base = 55001, /**< 明文日志记录发送端口 */
// .Port_Log_Ciphertext = 55002, /**< 暗文日志记录发送端口 */
.Port_Remote_Update = 50000, /**< 远程部署通信端口 */
/*透传配置-选配*/
.Port_Innet_Raw_Num = 0, /**< 内网透传端口数量 */
@@ -328,6 +385,8 @@ void APP_API_Data_Init()
/*日志记录目标设备IP配置*/
.Logger_G_IP = "192.168.146.100", /**< 绿网日志记录IP */
.Logger_P_IP = "192.168.18.100", /**< 紫网日志记录IP */
// .Logger_PortBase = 55001, /**< 明文日志记录端口 */
// .Logger_PortCiphertext = 55002,
/*内网通信设备注册最大支持0-255*/
.INNET_COM_NUM = 1, /**< 内网通信设备数量 */
.INNET_COM_CFG[0].InnetID = DEVICE_TYPE_AIM, /**< 内网通信ID */
@@ -350,10 +409,10 @@ void APP_API_Data_Init()
/*组软件版本号*/
ii = 0U;
appVersBuffer[ii++] = VER_INTE_PROJECT;
appVersBuffer[ii++] = VER_INTE_PRODUCT >> 2U;
appVersBuffer[ii++] = (VER_INTE_PRODUCT << 6U) + (VER_INTE_EXE & (UINT8)0x3F);
appVersBuffer[ii++] = VER_INTE_TIME;
appVersBuffer[ii++] = VER_SOFT_PRODUCT;
appVersBuffer[ii++] = VER_SOFT_MODUAL_APP >> 2U;
appVersBuffer[ii++] = (VER_SOFT_MODUAL_APP << 6U) + (VER_SOFT_MIANVERSION & (UINT8)0x3F);
appVersBuffer[ii++] = VER_SOFT_SUBVERSION;
/*设置平台调用获取外网信息函数*/
MSCP_SetSrcId(SetOutNetPara);
/*设置内网参数*/
@@ -376,7 +435,7 @@ void APP_API_Data_Init()
*/
ENUM_CM_RETURN APP_API_MainFunc(void)
{
ENUM_CM_RETURN retVal = ENUM_CM_NULL;
ENUM_CM_RETURN retVal = ENUM_CM_FALSE;
CM_UINT64 startCycTick = 0u;
CM_UINT64 endCycTick = 0u;
@@ -560,10 +619,6 @@ ENUM_CM_RECCUSEB Is_Send_ExtendBoard(IN const CM_UINT16 dstDevTypeId)
{
retVal = ENUM_CM_SEB;
}
else if (CI_SYSTEM_TYPE_ITE == devType)
{
retVal = ENUM_CM_CCSEB;
}
else
{
retVal = ENUM_CM_CC;
@@ -625,8 +680,8 @@ void SetOutNetPara(UINT8* pRxBuf, UINT32 dwLen, ENUM_OUTNET_CHN_T chOutNetType,
tempLen = *pCurLen;
if ((TRANSMIT_OBJECT_SUM_MAX * TRANSMIT_OBJECT_DEVICE_SUM_MAX) > (tempLen + objLen))
{
CommonMemCpy((void*)&pOutBuf[tempLen], objLen * sizeof(UINT16), \
(const void*)gTransmitObjTypeId, objLen * sizeof(UINT16));
CommonMemCpy(&pOutBuf[tempLen], objLen * sizeof(UINT16), \
gTransmitObjTypeId, objLen * sizeof(UINT16));
*pCurLen = tempLen + objLen;
debug_infor_printf("outnet in type len :%d", chOutNetType, objLen);
debug_out_array(0xAA, gTransmitObjTypeId, objLen * sizeof(UINT16));
@@ -760,7 +815,7 @@ ENUM_CM_RETURN SerialOutAtsVobcFunc(UINT16 inDstId IN, UINT16* outSrcId OUT, UIN
UINT8 inDstType = 0U;
inDstType = (UINT8)((inDstId & 0xff00U) >> 8);
if ((CI_SYSTEM_TYPE_VOBC_BACKUP == inDstType) || (CI_SYSTEM_TYPE_ITE == inDstType))
if (CI_SYSTEM_TYPE_VOBC_BACKUP == inDstType)
{
*outSrcId = (CI_SYSTEM_TYPE_CI << 8) + GetSystemParaLocalCiId();
*outDstId = GetATSInterfaceTypeId();
+4
View File
@@ -2491,6 +2491,10 @@ void CFM_LogCiphertextSend(void)
{
appType = 7u;
}
else if(0 == strcmp(g_PFM_Cfg.APP_NAME, "YJP"))
{
appType = 8u;
}
else
{
appType = 0u;
+2
View File
@@ -410,6 +410,7 @@ ENUM_CM_RETURN CM_Com_LocalDataRecv(OUT CM_UINT8* pBuf, IN CM_UINT16 BufSize)
CM_UINT32 len = 0u; /* 数据长度 */
CM_UINT64 now_time = 0u;
CM_UINT64 start_time = CM_GetTick();
CM_UINT32 recvNum = 0u;
/*- 循环执行接收线程 */
do
{
@@ -418,6 +419,7 @@ ENUM_CM_RETURN CM_Com_LocalDataRecv(OUT CM_UINT8* pBuf, IN CM_UINT16 BufSize)
/*- 是否收到有效报文 */
if(1 == ret)
{
recvNum++;
rtnValue = CM_FFFEDecode(&g_COM[1u].prtclFFFEStru,data,buf,&len);
/*接收到完整包写入接收队列*/
if(ENUM_CM_TRUE == rtnValue)
+15 -4
View File
@@ -121,8 +121,19 @@ void CM_Sleep(CM_UINT32 ms)
/*精准延时函数*/
void CM_delayUs(CM_UINT64 us)
{
CM_TIMESPEC_T tv;
tv.tv_sec = (time_t)CM_UNSIGNED_LONG_INT_EXP(us / 1000000U);
tv.tv_nsec = (long)CM_UNSIGNED_LONG_INT_EXP(us % 1000000U);
(void)select(0, NULL, NULL, NULL, &tv);
/*- 变量初始化*/
CM_TIMESPEC_T rem; /*- 延时被打断后的剩余时间*/
CM_INT8 ret = 0;
CM_TIMESPEC_T req = {
.tv_sec = (time_t)(us / 1000000u),
.tv_nsec = (long)((us % 1000000u) * 1000u)
};
ret = nanosleep(&req, &rem);
/*- 执行延时操作*/
while ((-1 == ret) && (EINTR == errno))
{
ret = nanosleep(&req, &rem);
req = rem;
}
}
+19 -12
View File
@@ -619,18 +619,25 @@ void DFM_Network_Check(void)
(void)system("drvtools -link9131 3 >> networkcheck.txt");
FILE *file = fopen(filename, "r");
while (NULL != fgets(pFileBuf, sizeof(pFileBuf), file)) {
if('w' != pFileBuf[0])
{
MSCP_LOG_MSG("%s", pFileBuf);
(void)printf("%s", pFileBuf);
}
else
{
/* 不做处理,过滤无用数据 */
}
if(NULL == file)
{
printf("open networkcheck.txt error\n");
}
/* 关闭文件 */
(void)fclose(file);
else{
while (NULL != fgets(pFileBuf, sizeof(pFileBuf), file)) {
if('w' != pFileBuf[0])
{
MSCP_LOG_MSG("%s", pFileBuf);
(void)printf("%s", pFileBuf);
}
else
{
/* 不做处理,过滤无用数据 */
}
}
/* 关闭文件 */
(void)fclose(file);
}
return;
}
+40 -1
View File
@@ -40,7 +40,7 @@
CM_CHAR FS_FILE_PATH[100];
/** 平台软件版本号 */
const CM_UINT8 MSCP_SW_VERION[4] = { 93u, 1u, 1u, 51u };
const CM_UINT8 MSCP_SW_VERION[4] = { 93u, 1u, 1u, 54u };
/** 驱动软件版本号 */
CM_UINT8 MSCP_DRV_VERION[4] = {0};
/** 与维护一体机接口文档版本号(接口文档发生改变时升级版本号) */
@@ -648,6 +648,13 @@ void PFM_CFG_IfconfigIp(void)
sprintf(str, "ifconfig %s %s", "wm0", "192.168.145.101");
/*- 跳出 */
break;
case 0x03U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.147.101");
/*- 跳出 */
break;
case 0x43U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.148.101");
break;
/*1-2*/
case 0x55U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.16.102");
@@ -661,6 +668,14 @@ void PFM_CFG_IfconfigIp(void)
sprintf(str, "ifconfig %s %s", "wm0", "192.168.17.102");
/*- 跳出 */
break;
case 0x05U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.19.102");
/*- 跳出 */
break;
case 0x45U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.20.102");
/*- 跳出 */
break;
/*2-1*/
case 0xA6U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.144.103");
@@ -674,6 +689,14 @@ void PFM_CFG_IfconfigIp(void)
sprintf(str, "ifconfig %s %s", "wm0", "192.168.145.103");
/*- 跳出 */
break;
case 0xF6U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.147.103");
/*- 跳出 */
break;
case 0xB6U:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.148.103");
/*- 跳出 */
break;
/*2-2*/
case 0xAAU:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.16.104");
@@ -687,6 +710,14 @@ void PFM_CFG_IfconfigIp(void)
sprintf(str, "ifconfig %s %s", "wm0", "192.168.17.104");
/*- 跳出 */
break;
case 0xFAU:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.19.104");
/*- 跳出 */
break;
case 0xBAU:
sprintf(str, "ifconfig %s %s", "wm0", "192.168.20.104");
/*- 跳出 */
break;
default:
MSCP_LOG_MSG("drv_boardidErr:0x%x,ini:0x%x,0x%x\r\n",DrvBoard_ID,g_PFM_Cfg.BOARD_ID,g_PFM_Cfg.CPU_ID);
/*- 跳出 */
@@ -758,6 +789,8 @@ static void PFM_CFG_Check_BoardID(void)
case 0x53U:
case 0x33U:
case 0x63U:
case 0x03U:
case 0x43U:
CM_NM_ASSERT(((CM_UINT8)1U == g_PFM_Cfg.BOARD_ID) && ((CM_UINT8)1U == g_PFM_Cfg.CPU_ID), CFG_MODE, DARK_FAULT_CODE_FUN_ORDER_4, TSCP_DARK_ASSERT_1);
/*- 跳出 */
break;
@@ -765,6 +798,8 @@ static void PFM_CFG_Check_BoardID(void)
case 0x55U:
case 0x35U:
case 0x65U:
case 0x05U:
case 0x45U:
CM_NM_ASSERT(((CM_UINT8)1U == g_PFM_Cfg.BOARD_ID) && ((CM_UINT8)2U == g_PFM_Cfg.CPU_ID), CFG_MODE, DARK_FAULT_CODE_FUN_ORDER_4, TSCP_DARK_ASSERT_1);
/*- 跳出 */
break;
@@ -772,6 +807,8 @@ static void PFM_CFG_Check_BoardID(void)
case 0xA6U:
case 0xC6U:
case 0x96U:
case 0xF6U:
case 0xB6U:
CM_NM_ASSERT(((CM_UINT8)2U == g_PFM_Cfg.BOARD_ID) && ((CM_UINT8)1U == g_PFM_Cfg.CPU_ID), CFG_MODE, DARK_FAULT_CODE_FUN_ORDER_4, TSCP_DARK_ASSERT_1);
/*- 跳出 */
break;
@@ -779,6 +816,8 @@ static void PFM_CFG_Check_BoardID(void)
case 0xAAU:
case 0xCAU:
case 0x9AU:
case 0xFAU:
case 0xBAU:
CM_NM_ASSERT(((CM_UINT8)2U == g_PFM_Cfg.BOARD_ID) && ((CM_UINT8)2U == g_PFM_Cfg.CPU_ID), CFG_MODE, DARK_FAULT_CODE_FUN_ORDER_4, TSCP_DARK_ASSERT_1);
/*- 跳出 */
break;
+58 -39
View File
@@ -570,8 +570,6 @@ void PFM_InputProc(void)
s_RxOutnetToSFM(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].p_rmt_mine_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].rmt_mine_len);
PFM_CFC_Check(43);
s_RxOutnetToSFM(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].p_rmt_peer_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].rmt_peer_len);
(void)CM_Memcpy(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_mine_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].buf_size, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_rmt_mine_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].rmt_mine_len);
(void)CM_Memcpy(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_peer_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].buf_size, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_rmt_peer_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].rmt_peer_len);
}
else
{
@@ -605,8 +603,7 @@ void PFM_InputProc(void)
s_RxOutnetToSFM(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].p_rmt_peer_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].rmt_peer_len);
PFM_CFC_Check(43);
s_RxOutnetToSFM(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].p_rmt_mine_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].rmt_mine_len);
(void)CM_Memcpy(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_mine_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].buf_size, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_rmt_mine_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].rmt_mine_len);
(void)CM_Memcpy(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_peer_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].buf_size, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].p_rmt_peer_buf, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetRaw].rmt_peer_len);
}
else
{
@@ -1021,44 +1018,67 @@ CM_UINT32 PFM_OutnetRaw_AppRecv(OUT CM_UINT8* rxBuf, IN CM_UINT32 rxSize)
CM_UINT32 msgLen = 0u; /* 消息长度 */
CM_UINT32 rt = 0u; /* 函数返回值 */
ENUM_CM_RETURN ret = ENUM_CM_FALSE;
ENUM_2x2_STATE_T state_2x2 = SFM_2x2_GetLastPartner2x2State(); /*获取上周期对系热备状态*/
g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_index_log++;/*记录应用调用次数,每周期清零*/
CM_UINT8 *p_Mine_Buf = NULL;
CM_UINT32 Mine_len = 0u;
CM_UINT8 *p_Peer_Buf = NULL;
CM_UINT32 Peer_len = 0u;
CM_MUTEX_T *p_mutex = NULL;
/*根据主备状态分配缓冲区 */
if(ENUM_2x2_MASTER != state_2x2)
{
p_Mine_Buf = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_mine_buf;
Mine_len = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].mine_len;
p_Peer_Buf = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_peer_buf;
Peer_len = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].peer_len;
p_mutex = &g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex;
}
else
{
p_Mine_Buf = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_rmt_mine_buf;
Mine_len = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].rmt_mine_len;
p_Peer_Buf = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_rmt_peer_buf;
Peer_len = g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].rmt_peer_len;
p_mutex = &g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex;
}
/*- 入参检查 */
CM_ASSERT(NULL != rxBuf, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_21);
CM_ASSERT(((NULL != rxBuf) && (NULL != p_Mine_Buf) && (NULL != p_Peer_Buf) && (NULL != p_mutex)) , IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_21);
/*- 自己是否是CPU1 */
if (1u == g_PFM_Cfg.CPU_ID)
{
/*- 本机通道是否有数据未取走 */
if ((s_OutnetRaw_Mine_AppReadIndex + 4u) <= (CM_UINT32)(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].mine_len))
if ((s_OutnetRaw_Mine_AppReadIndex + 4u) <= (CM_UINT32)Mine_len)
{
msgLen = CM_LongFromChar(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_mine_buf + s_OutnetRaw_Mine_AppReadIndex);
msgLen = CM_LongFromChar(p_Mine_Buf + s_OutnetRaw_Mine_AppReadIndex);
CM_RE_ASSERT(msgLen > 0u, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_1);
CM_RE_ASSERT((s_OutnetRaw_Mine_AppReadIndex + 4u + msgLen) <= (CM_UINT32)g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].mine_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_2);
CM_RE_ASSERT((s_OutnetRaw_Mine_AppReadIndex + 4u + msgLen) <= (CM_UINT32)Mine_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_2);
CM_RE_ASSERT((msgLen) <= rxSize, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_3);
rt = msgLen;
/*- 锁定接收通道 */
ret = CM_Mutex_Lock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_4);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_mine_buf + s_OutnetRaw_Mine_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
ret = CM_Mutex_Lock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_4);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(p_Mine_Buf + s_OutnetRaw_Mine_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
/*- 解锁接收通道 */
ret = CM_Mutex_Unlock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_5);
ret = CM_Mutex_Unlock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_5);
s_OutnetRaw_Mine_AppReadIndex += (CM_UINT32)msgLen + 4u;
}
/*- 邻机通道是否有数据未取走 */
else if ((s_OutnetRaw_Peer_AppReadIndex + 4u) < (CM_UINT32)g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].peer_len)
else if ((s_OutnetRaw_Peer_AppReadIndex + 4u) < (CM_UINT32)Peer_len)
{
msgLen = CM_LongFromChar(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_peer_buf + s_OutnetRaw_Peer_AppReadIndex);
msgLen = CM_LongFromChar(p_Peer_Buf + s_OutnetRaw_Peer_AppReadIndex);
CM_RE_ASSERT(msgLen > 0u, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_6);
CM_RE_ASSERT((s_OutnetRaw_Peer_AppReadIndex + 4u + msgLen) <= (CM_UINT32)g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].peer_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_7);
CM_RE_ASSERT((s_OutnetRaw_Peer_AppReadIndex + 4u + msgLen) <= (CM_UINT32)Peer_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_7);
CM_RE_ASSERT((msgLen) <= rxSize, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_8);
rt = msgLen;
/*- 锁定接收通道 */
ret = CM_Mutex_Lock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_9);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_peer_buf + s_OutnetRaw_Peer_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
ret = CM_Mutex_Lock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_9);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(p_Peer_Buf + s_OutnetRaw_Peer_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
/*- 解锁接收通道 */
ret = CM_Mutex_Unlock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_10);
ret = CM_Mutex_Unlock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_10);
s_OutnetRaw_Peer_AppReadIndex += (CM_UINT32)msgLen + 4u;
}
else
@@ -1071,38 +1091,38 @@ CM_UINT32 PFM_OutnetRaw_AppRecv(OUT CM_UINT8* rxBuf, IN CM_UINT32 rxSize)
{
/*- 邻机通道是否有数据未取走 */
if ((s_OutnetRaw_Peer_AppReadIndex + 4u) < (CM_UINT32)g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].peer_len)
if ((s_OutnetRaw_Peer_AppReadIndex + 4u) < (CM_UINT32)Peer_len)
{
msgLen = CM_LongFromChar(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_peer_buf + s_OutnetRaw_Peer_AppReadIndex);
msgLen = CM_LongFromChar(p_Peer_Buf + s_OutnetRaw_Peer_AppReadIndex);
CM_RE_ASSERT(msgLen > 0u, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_11);
CM_RE_ASSERT((s_OutnetRaw_Peer_AppReadIndex + 4u + msgLen) <= (CM_UINT32)g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].peer_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_12);
CM_RE_ASSERT((s_OutnetRaw_Peer_AppReadIndex + 4u + msgLen) <= (CM_UINT32)Peer_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_12);
CM_RE_ASSERT((msgLen) <= rxSize, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_13);
rt = msgLen;
/*- 锁定接收通道 */
ret = CM_Mutex_Lock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_14);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_peer_buf + s_OutnetRaw_Peer_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
ret = CM_Mutex_Lock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_14);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(p_Peer_Buf + s_OutnetRaw_Peer_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
/*- 解锁接收通道 */
ret = CM_Mutex_Unlock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_15);
ret = CM_Mutex_Unlock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_15);
s_OutnetRaw_Peer_AppReadIndex += (CM_UINT32)msgLen + 4u;
}
/*- 本机通道是否有数据未取走 */
else if ((s_OutnetRaw_Mine_AppReadIndex + 4u) <= (CM_UINT32)(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].mine_len))
else if ((s_OutnetRaw_Mine_AppReadIndex + 4u) <= (CM_UINT32)Mine_len)
{
msgLen = CM_LongFromChar(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_mine_buf + s_OutnetRaw_Mine_AppReadIndex);
msgLen = CM_LongFromChar(p_Mine_Buf + s_OutnetRaw_Mine_AppReadIndex);
CM_RE_ASSERT(msgLen > 0u, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_16);
CM_RE_ASSERT((s_OutnetRaw_Mine_AppReadIndex + 4u + msgLen) <= (CM_UINT32)g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].mine_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_17);
CM_RE_ASSERT((s_OutnetRaw_Mine_AppReadIndex + 4u + msgLen) <= (CM_UINT32)Mine_len, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_17);
CM_RE_ASSERT((msgLen) <= rxSize, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_18);
rt = msgLen;
/*- 锁定接收通道 */
ret = CM_Mutex_Lock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_19);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].p_mine_buf + s_OutnetRaw_Mine_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
ret = CM_Mutex_Lock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_19);
(void)CM_Memcpy((void*)rxBuf, (CM_SIZE_T)rxSize, (void*)(p_Mine_Buf + s_OutnetRaw_Mine_AppReadIndex + 4u), (CM_SIZE_T)(msgLen));
/*- 解锁接收通道 */
ret = CM_Mutex_Unlock(g_2x2oo2_rx[s_2x2oo2_app][s_2x2oo2_OutnetRaw].app_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_20);
ret = CM_Mutex_Unlock(*p_mutex);
CM_RE_ASSERT(ENUM_CM_TRUE == ret, IN_OUT_MODE, DARK_FAULT_CODE_FUN_ORDER_8, TSCP_DARK_ASSERT_20);
s_OutnetRaw_Mine_AppReadIndex += (CM_UINT32)msgLen + 4u;
}
@@ -1110,8 +1130,7 @@ CM_UINT32 PFM_OutnetRaw_AppRecv(OUT CM_UINT8* rxBuf, IN CM_UINT32 rxSize)
{
/*- 双网都取完了,返回true */
}
}
}
/*- 返回接收结果 */
/* MSCP_LOG_MSG("PFM_OutnetRaw_AppRecv msgLen =%d\n",msgLen); */
/* MSCP_LOG_MSG("PFM_OutnetRaw_AppRecv rt =%d\n",rt); */
+2 -2
View File
@@ -1178,7 +1178,7 @@ ENUM_CM_RETURN PFM_DevStateSend(CM_UINT8 ifCyc)
txLen = offset - 2u;
CM_ShortToChar(txLen, &txBuf[0]);
ret = Prtcl_InnetSafe_RmSend(dstName, txBuf, offset);
MSCP_LOG_MSG("offset = %d\n",offset);
MSCP_LOG_MSG("offset = %d send ret =%d\n",offset, ret);
}
else
{
@@ -1192,7 +1192,7 @@ ENUM_CM_RETURN PFM_DevStateSend(CM_UINT8 ifCyc)
rxLen = offset - 2u;
CM_ShortToChar(rxLen, &rxBuf[0]);
ret = Prtcl_InnetSafe_RmSend(dstName, rxBuf, offset);
MSCP_LOG_MSG("offset = %d\n",offset);
MSCP_LOG_MSG("offset = %d send ret = %d\n",offset, ret);
}
}
else
+1 -1
View File
@@ -383,7 +383,7 @@ static CM_INT32 s_2oo2_ARQ_Recv(OUT CM_UINT8 *RxData, IN CM_UINT32 RxSize, OUT E
while(1)
{
/*- 从通信层接收2oo2报文 */
rxLen = p_2oo2_Ctrl->DataRecv(p_2oo2_Ctrl->UDP_Cache, (CM_UINT32)sizeof(p_2oo2_Ctrl->UDP_Cache));
rxLen = p_2oo2_Ctrl->DataRecv(p_2oo2_Ctrl->UDP_Cache, (CM_UINT32)sizeof(p_2oo2_Ctrl->UDP_Cache));
/*- 收到的报文长度是否大于23 */
if (23 <= rxLen)
{
+176 -91
View File
@@ -119,6 +119,45 @@ static void SFM_2x2_Input2oo2Exchange(STRU_2X2_CTRL_T *peerCtrl);
/* 判断2x422以及以太网的通信状况并且填写暗文日志 */
static void SFM_2x2_Eth422StateDark(void);
/* 输入周期号同步函数 */
static void SFM_2x2_InputSysCycSyn(STRU_2X2_CTRL_T *peerCtrl){
if(s_2x2_Ctrl.RxInputSysCyc > peerCtrl->RxInputSysCyc)
{
/*- 更新临机输入同步周期号*/
peerCtrl->RxInputSysCyc = s_2x2_Ctrl.RxInputSysCyc;
}
else if(s_2x2_Ctrl.RxInputSysCyc < peerCtrl->RxInputSysCyc)
{
/*- 更新本机输入同步周期号*/
s_2x2_Ctrl.RxInputSysCyc = peerCtrl->RxInputSysCyc;
}
else
{
/*- 周期号相同 不做修改*/;
}
}
/* 跟随数据同步*/
static CM_INT32 SFM_2x2_BaseFollowSyn(STRU_2X2_CTRL_T *peerCtrl){
CM_INT32 ret = 0;
if (s_2x2_Ctrl.RxBaseFollowSysCyc > peerCtrl->RxBaseFollowSysCyc)
{
/*需要向邻机发送跟随数据*/
ret = SFM_2oo2_Exchange_Currency(g_RxBaseFollow, g_RxBaseFollow_len, g_RxBaseFollow, (CM_UINT32)0, ENUM_2oo2_INPUT_EX);/*通过输入"0"防止g_RxFollow被修改*/
}
else if (s_2x2_Ctrl.RxBaseFollowSysCyc < peerCtrl->RxBaseFollowSysCyc)
{
/*需要从邻机接收跟随数据*/
g_RxBaseFollow_len = SFM_2oo2_Exchange_Currency(g_RxBaseFollow, (CM_INT32)0, g_RxBaseFollow, (CM_UINT32)sizeof(g_RxBaseFollow), ENUM_2oo2_INPUT_EX);/*通过输入"0"实现只收不发*/
s_2x2_Ctrl.RxBaseFollowSysCyc = peerCtrl->RxBaseFollowSysCyc;
}
else
{
/* 无需处理 */
}
return ret;
}
/**
* @brief 切系按钮监督
* @return 无
@@ -686,7 +725,7 @@ static void s_State_Transition(void)
{
/*- 无处理 */
SFM_LOG_MSG_2X("Transition:2x2:OFFLINE>SLAVE SysCyc:%d,BF:%d,AF:%d,COK:%d,OUT:%d,TS:%d,AFC:%d\n",
s_2x2_state_Ctrl.SysCyc,s_2x2_state_Ctrl.LastRxInputSysCyc,
s_2x2_state_Ctrl.SysCyc,s_2x2_state_Ctrl.LastRxInputSysCyc,s_2x2_state_Ctrl.LastFollowCyc,
s_2x2_state_Ctrl.LastCheckOKCount,s_2x2_state_Ctrl.OutPutCheckFailFlag,
s_2x2_state_Ctrl.TimeSyncFlag,
s_2x2_state_Ctrl.AppFollowCmpFlag);
@@ -2066,13 +2105,13 @@ static void s_2x2_Recv(void)
CM_RE_ASSERT(FrameNum <= (SFM_OUTNETSAFE_BUFF_SIZE / NET_20K_SIZE), SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_6, TSCP_DARK_ASSERT_15);
CM_RE_ASSERT(FrameIndex <= FrameNum, SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_6, TSCP_DARK_ASSERT_16);
ret = SFM_2X_FrameSave(&s_2x2_FrameCtrl, (CM_UINT8)type, FrameNum, FrameIndex, pData, DataLen,
g_2x2oo2_rx[g_2x2oo2_base][type-g_2x2oo2_data_num].p_rmt_peer_buf,
&g_2x2oo2_rx[g_2x2oo2_base][type-g_2x2oo2_data_num].rmt_peer_len,
(CM_UINT32)g_2x2oo2_rx[g_2x2oo2_base][type-g_2x2oo2_data_num].buf_size);
g_2x2oo2_rx[g_2x2oo2_base][(CM_INT32)type-g_2x2oo2_data_num].p_rmt_peer_buf,
&g_2x2oo2_rx[g_2x2oo2_base][(CM_INT32)type-g_2x2oo2_data_num].rmt_peer_len,
(CM_UINT32)g_2x2oo2_rx[g_2x2oo2_base][(CM_INT32)type-g_2x2oo2_data_num].buf_size);
/*记录对系邻机数据长度*/
s_2x2_Ctrl.InPutDoublePassLen[type-g_2x2oo2_data_num][1] = g_2x2oo2_rx[g_2x2oo2_base][type-g_2x2oo2_data_num].rmt_peer_len;
s_2x2_Ctrl.InPutDoublePassLen[(CM_INT32)type-g_2x2oo2_data_num][1] = g_2x2oo2_rx[g_2x2oo2_base][(CM_INT32)type-g_2x2oo2_data_num].rmt_peer_len;
/*- 是否收齐了全部数据同步报文 */
if ((ENUM_CM_TRUE == ret) && (type == g_2x2RcvMaxNum[1]))
if ((ENUM_CM_TRUE == ret) && ((CM_UINT8)type == g_2x2RcvMaxNum[1]))
{
/*- 更新对系输入状态 */
s_2x2_Ctrl.InputPeerSysCyc = msgCyc;
@@ -2237,41 +2276,16 @@ void SFM_2x2_InputProc(void)
/*- @alias 系内同步Rx输入信息状态,用来过滤老的输入数据,并且将新的数据进行2oo2交换*/
SFM_2x2_Input2oo2Exchange(&peerCtrl);
/*- 跟新输入同步周期号*/
if(s_2x2_Ctrl.RxInputSysCyc > peerCtrl.RxInputSysCyc)
{
/*- 更新临机输入同步周期号*/
peerCtrl.RxInputSysCyc = s_2x2_Ctrl.RxInputSysCyc;
}
else if(s_2x2_Ctrl.RxInputSysCyc < peerCtrl.RxInputSysCyc)
{
/*- 更新本机输入同步周期号*/
s_2x2_Ctrl.RxInputSysCyc = peerCtrl.RxInputSysCyc;
}
else
{
/*- 周期号相同 不做修改*/;
}
SFM_2x2_InputSysCycSyn(&peerCtrl);
/*- 更新控制流状态 */
PFM_CFC_Check(37);
/* (这个数据量很大,只在必要时同步) */
/*- @alias 系内同步Rx跟随数据*/
if (s_2x2_Ctrl.RxBaseFollowSysCyc > peerCtrl.RxBaseFollowSysCyc)
{
/*需要向邻机发送跟随数据*/
ret = SFM_2oo2_Exchange_Currency(g_RxBaseFollow, g_RxBaseFollow_len, g_RxBaseFollow, (CM_UINT32)0, ENUM_2oo2_INPUT_EX);/*通过输入"0"防止g_RxFollow被修改*/
CM_RE_ASSERT(0 == ret, SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_7, TSCP_DARK_ASSERT_1);
}
else if (s_2x2_Ctrl.RxBaseFollowSysCyc < peerCtrl.RxBaseFollowSysCyc)
{
/*需要从邻机接收跟随数据*/
g_RxBaseFollow_len = SFM_2oo2_Exchange_Currency(g_RxBaseFollow, (CM_INT32)0, g_RxBaseFollow, (CM_UINT32)sizeof(g_RxBaseFollow), ENUM_2oo2_INPUT_EX);/*通过输入"0"实现只收不发*/
s_2x2_Ctrl.RxBaseFollowSysCyc = peerCtrl.RxBaseFollowSysCyc;
}
else
{
/* 无需处理 */
}
ret = SFM_2x2_BaseFollowSyn(&peerCtrl);
CM_RE_ASSERT(0 == ret, SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_7, TSCP_DARK_ASSERT_1);
}
else
{
@@ -2995,71 +3009,142 @@ static void SFM_2x2_Input2oo2Exchange(STRU_2X2_CTRL_T *peerCtrl)
CM_UINT32 i = 0u;
CM_INT32 len = 0;
/*- @alias 系内交换输入数据 */
for (i = 1u; i <= g_2x2oo2_data_num; i++)
if (g_PFM_Cfg.CPU_ID == 1u)
{
if(CM_TRUE == g_2x2oo2_rx[g_2x2oo2_base][i].b_2x2_Enable)
/*- @alias 系内交换输入数据 */
for (i = 1u; i <= g_2x2oo2_data_num; i++)
{
MSCP_LOG_MSG("SFM_2x2_Input2oo2Exchange-CPU1[%d]:[M0:%d,P1:%d][M1:%d,P0:%d]\r\n",i,s_2x2_Ctrl.InPutDoublePassLen[i][0],peerCtrl->InPutDoublePassLen[i][1],s_2x2_Ctrl.InPutDoublePassLen[i][1],peerCtrl->InPutDoublePassLen[i][0]);
/*本机数据交互*/
if(s_2x2_Ctrl.InPutDoublePassLen[i][0] < peerCtrl->InPutDoublePassLen[i][1])
if(CM_TRUE == g_2x2oo2_rx[g_2x2oo2_base][i].b_2x2_Enable)
{
/*接收对方数据,自己发送长度为0*/
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_mine_len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
0,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].buf_size,
ENUM_2oo2_INPUT_EX);
}
else if(s_2x2_Ctrl.InPutDoublePassLen[i][0] > peerCtrl->InPutDoublePassLen[i][1])
{
/*- 向邻机发送数据,本机不接收,传入接收长度为0*/
len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_mine_len,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
0,
ENUM_2oo2_INPUT_EX);
CM_RE_ASSERT((0 == len), SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_14, TSCP_DARK_ASSERT_1);
MSCP_LOG_MSG("SFM_2x2_Input2oo2Exchange-CPU1[%d]:[M0:%d,P1:%d][M1:%d,P0:%d]\r\n",i,s_2x2_Ctrl.InPutDoublePassLen[i][0],peerCtrl->InPutDoublePassLen[i][1],s_2x2_Ctrl.InPutDoublePassLen[i][1],peerCtrl->InPutDoublePassLen[i][0]);
/*本机数据交互*/
if(s_2x2_Ctrl.InPutDoublePassLen[i][0] < peerCtrl->InPutDoublePassLen[i][1])
{
/*接收对方数据,自己发送长度为0*/
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_mine_len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
0,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].buf_size,
ENUM_2oo2_INPUT_EX);
}
else if(s_2x2_Ctrl.InPutDoublePassLen[i][0] > peerCtrl->InPutDoublePassLen[i][1])
{
/*- 向邻机发送数据,本机不接收,传入接收长度为0*/
len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_mine_len,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
0,
ENUM_2oo2_INPUT_EX);
CM_RE_ASSERT((0 == len), SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_14, TSCP_DARK_ASSERT_1);
}
else
{
/*等于不交互,包括0*/
}
/*邻机数据交互*/
if(s_2x2_Ctrl.InPutDoublePassLen[i][1] < peerCtrl->InPutDoublePassLen[i][0])
{
/*接收对方数据,自己发送长度为0*/
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_peer_len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
0,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].buf_size,
ENUM_2oo2_INPUT_EX);
}
else if(s_2x2_Ctrl.InPutDoublePassLen[i][1] > peerCtrl->InPutDoublePassLen[i][0])
{
/*- 向邻机发送数据,本机不接收,传入接收长度为0*/
len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_peer_len,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
0,
ENUM_2oo2_INPUT_EX);
CM_RE_ASSERT((0 == len), SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_14, TSCP_DARK_ASSERT_1);
}
else
{
/*等于不交互,包括0*/
}
}
else
{
/*等于不交互,包括0*/
}
/*邻机数据交互*/
if(s_2x2_Ctrl.InPutDoublePassLen[i][1] < peerCtrl->InPutDoublePassLen[i][0])
{
/*接收对方数据,自己发送长度为0*/
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_peer_len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
0,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].buf_size,
ENUM_2oo2_INPUT_EX);
}
else if(s_2x2_Ctrl.InPutDoublePassLen[i][1] > peerCtrl->InPutDoublePassLen[i][0])
{
/*- 向邻机发送数据,本机不接收,传入接收长度为0*/
len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_peer_len,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
0,
ENUM_2oo2_INPUT_EX);
CM_RE_ASSERT((0 == len), SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_14, TSCP_DARK_ASSERT_1);
}
else
{
/*等于不交互,包括0*/
}
}
else
{
}
}
}
else
{
/*- @alias 系内交换输入数据 */
for (i = 1u; i <= g_2x2oo2_data_num; i++)
{
if(CM_TRUE == g_2x2oo2_rx[g_2x2oo2_base][i].b_2x2_Enable)
{
MSCP_LOG_MSG("SFM_2x2_Input2oo2Exchange-CPU2[%d]:[M1:%d,P0:%d][M0:%d,P1:%d]\r\n",i,s_2x2_Ctrl.InPutDoublePassLen[i][1],peerCtrl->InPutDoublePassLen[i][0],s_2x2_Ctrl.InPutDoublePassLen[i][0],peerCtrl->InPutDoublePassLen[i][1]);
/*邻机数据交互*/
if(peerCtrl->InPutDoublePassLen[i][0] < s_2x2_Ctrl.InPutDoublePassLen[i][1])
{
/*- 向邻机发送数据,本机不接收,传入接收长度为0*/
len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_peer_len,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
0,
ENUM_2oo2_INPUT_EX);
CM_RE_ASSERT((0 == len), SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_14, TSCP_DARK_ASSERT_1);
}
else if(peerCtrl->InPutDoublePassLen[i][0] > s_2x2_Ctrl.InPutDoublePassLen[i][1])
{
/*接收对方数据,自己发送长度为0*/
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_peer_len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
0,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_peer_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].buf_size,
ENUM_2oo2_INPUT_EX);
}
else
{
/*等于不交互,包括0*/
}
/*本机数据交互*/
if(peerCtrl->InPutDoublePassLen[i][1] < s_2x2_Ctrl.InPutDoublePassLen[i][0])
{
/*- 向邻机发送数据,本机不接收,传入接收长度为0*/
len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_mine_len,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
0,
ENUM_2oo2_INPUT_EX);
CM_RE_ASSERT((0 == len), SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_14, TSCP_DARK_ASSERT_1);
}
else if(peerCtrl->InPutDoublePassLen[i][1] > s_2x2_Ctrl.InPutDoublePassLen[i][0])
{
/*接收对方数据,自己发送长度为0*/
g_2x2oo2_rx[g_2x2oo2_base][i].rmt_mine_len = SFM_2oo2_Exchange_Currency(
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
0,
g_2x2oo2_rx[g_2x2oo2_base][i].p_rmt_mine_buf,
g_2x2oo2_rx[g_2x2oo2_base][i].buf_size,
ENUM_2oo2_INPUT_EX);
}
else
{
/*等于不交互,包括0*/
}
}
else
{
}
}
}
/*- 清空所有通道长度记录*/
(void)CM_Memset(s_2x2_Ctrl.InPutDoublePassLen,0,sizeof(s_2x2_Ctrl.InPutDoublePassLen),sizeof(s_2x2_Ctrl.InPutDoublePassLen));
/*记录暗文日志*/
+5 -2
View File
@@ -1506,6 +1506,7 @@ void SFM_TxInnetSafeRm(IN CM_UINT8 Buf[], IN CM_UINT32 Len)
CM_UINT16 msgLen = 0u; /* 外网输出帧长度 */
CM_UINT16 dstID = 0u; /* 目的设备ID */
STRU_PFM_INNET_CFG_T* pCom = NULL;/* 通信配置 */
ENUM_CM_RETURN ret = ENUM_CM_FALSE;
if ((0x55u == g_PFM_Cfg.M_RemoteUpdate_Enable) &&(0x00u != g_Maintenance_Id))
{
@@ -1549,13 +1550,14 @@ void SFM_TxInnetSafeRm(IN CM_UINT8 Buf[], IN CM_UINT32 Len)
if (1u == g_PFM_Cfg.CPU_ID)
{
/*- 从绿网通道发送 */
(void)CFM_InnetRemoteUpdate_Send(&Buf[i + 7u], (CM_INT32)CM_UNSIGNED_SHORT_EXP(msgLen - 5u), pCom->IP_G, pCom->Port_Safe_G); /* parasoft-suppress MISRA2004-17_1 "指针运算提高代码执行效率" */
ret = CFM_InnetRemoteUpdate_Send(&Buf[i + 7u], (CM_INT32)CM_UNSIGNED_SHORT_EXP(msgLen - 5u), pCom->IP_G, pCom->Port_Safe_G); /* parasoft-suppress MISRA2004-17_1 "指针运算提高代码执行效率" */
}
else
{
/*- 从紫网通道发送 */
(void)CFM_InnetRemoteUpdate_Send(&Buf[i + 7u], (CM_INT32)CM_UNSIGNED_SHORT_EXP(msgLen - 5u), pCom->IP_P, pCom->Port_Safe_P); /* parasoft-suppress MISRA2004-17_1 "指针运算提高代码执行效率" */
ret = CFM_InnetRemoteUpdate_Send(&Buf[i + 7u], (CM_INT32)CM_UNSIGNED_SHORT_EXP(msgLen - 5u), pCom->IP_P, pCom->Port_Safe_P); /* parasoft-suppress MISRA2004-17_1 "指针运算提高代码执行效率" */
}
MSCP_LOG_MSG("plafm send innetsafeRm data ret = %#x\n",ret);
}
else
{
@@ -1564,6 +1566,7 @@ void SFM_TxInnetSafeRm(IN CM_UINT8 Buf[], IN CM_UINT32 Len)
}
else
{
MSCP_LOG_MSG("Get dest IP and port fial!\n");
/*- 无处理*/
}
i += (CM_UINT32)CM_UNSIGNED_SHORT_EXP(msgLen + 2u);
+8 -83
View File
@@ -701,7 +701,7 @@ UINT8 CiSimulationInit()
}
UINT32 ttt = sizeof(RouteDataStruct);
/* FSIO初始化 */
if(0 == ret)
{
@@ -2450,15 +2450,12 @@ void SndCbtcPrtclByDevName(UINT8 *spfbSndDataBuff)
UINT8 *pData = spfbSndDataBuff;
CComm *pRedCcov = NULL;
CComm *pBlueCcov = NULL;
CComm *pAtsRedCcov = NULL;
CComm *pAtsBlueCcov = NULL;
UINT16 DeviceName = 0;
UINT8 cDstType = 0u;
UINT8 cDstId = 0u;
UINT16 LogicId = 0;
UINT8 protocalType = 0;
IpInfo ipInfoList[8];
IpInfo atsBackUpIpInfoList[8];
UINT8 dstNum;/*目标IP数目*/
UINT8 findFlag = 1;
UINT8 i_dstNum = 0;
@@ -2472,8 +2469,6 @@ void SndCbtcPrtclByDevName(UINT8 *spfbSndDataBuff)
UINT32 t_LenPos = 0U;
UINT16 wGatewayId = 0U;
UINT16 wBackUpVobcId = 0U;
UINT8 chIteNum = 0U;
UINT8 chAtsBackUpNum = 0U;
struct timeval curTimeStamp;
memset(ipInfoList,DEFAULT_ZERO,sizeof(ipInfoList));
@@ -2543,26 +2538,10 @@ void SndCbtcPrtclByDevName(UINT8 *spfbSndDataBuff)
pRedCcov = &(localCcov.ocRedCcov);
pBlueCcov = &(localCcov.ocBlueCcov);
}
else if (CI_SYSTEM_TYPE_VOBC_BACKUP == cDstType)
else if (DeviceName == wBackUpVobcId)
{
pRedCcov = &(localCcov.atsRedCcov[ccovIdx]);
pBlueCcov = &(localCcov.atsBlueCcov[ccovIdx]);
DeviceName = wBackUpVobcId;
}
else if (CI_SYSTEM_TYPE_ITE == cDstType)
{
if (1U == LogicId)
{
pRedCcov = &(localCcov.redCcov[ccovIdx]);
pBlueCcov =&(localCcov.atsRedCcov[ccovIdx]);
}
else
{
pRedCcov = &(localCcov.atsBlueCcov[ccovIdx]);
pBlueCcov = &(localCcov.blueCcov[ccovIdx]);
}
pAtsRedCcov = &(localCcov.atsRedCcov[ccovIdx]);
pAtsBlueCcov = &(localCcov.atsBlueCcov[ccovIdx]);
}
else
{
@@ -2572,16 +2551,7 @@ void SndCbtcPrtclByDevName(UINT8 *spfbSndDataBuff)
/* 根据目标类型和ID获取对方IP和端口*/
/*调用GetIpAndPortByDeviceName()函数后,蓝网和红网IP和端口都返回*/
if (CI_SYSTEM_TYPE_ITE == cDstType)
{
GetNetEndPoint(DeviceName, LogicId, ccovIdx, ipInfoList, &chIteNum);
GetNetEndPoint(wBackUpVobcId, 0, ccovIdx, atsBackUpIpInfoList, &chAtsBackUpNum);
findFlag = 3;
}
else
{
findFlag = GetNetEndPoint(DeviceName, LogicId, ccovIdx, ipInfoList, &dstNum);
}
findFlag = GetNetEndPoint(DeviceName, LogicId, ccovIdx, ipInfoList, &dstNum);
if (findFlag == 0)
{
/*find fail,do nothing*/
@@ -2663,40 +2633,6 @@ void SndCbtcPrtclByDevName(UINT8 *spfbSndDataBuff)
SndData2SignalNet(ipInfoList[0].blueIp, ipInfoList[0].bluePort, &temSendBuf[0], t_OffSet, pBlueCcov);
}
else if(3==findFlag)
{
/*发送主用通道需要减去14 后备通道协议包头后发送*/
CommonMemCpy(temSendBuf, sizeof(temSendBuf), &sndBuff[14], sndDataLen - 14);
for (i_dstNum = 0; i_dstNum < chIteNum; i_dstNum++)
{
startTickCount = GetTickCount();
if (1 == LogicId)
{
SndData2SignalNet(ipInfoList[i_dstNum].redIp, ipInfoList[i_dstNum].redPort, temSendBuf, sndDataLen-14, pRedCcov);
}
else if(2 == LogicId)
{
SndData2SignalNet(ipInfoList[i_dstNum].blueIp, ipInfoList[i_dstNum].bluePort, temSendBuf, sndDataLen - 14, pBlueCcov);
}
else
{
;
}
endTickCount = GetTickCount();
debug_infor_printf("Snd to %04x,consume %d ms.\r\n", DeviceName, endTickCount - startTickCount);
}
for (i_dstNum = 0; i_dstNum < chAtsBackUpNum; i_dstNum++)
{
startTickCount = GetTickCount();
SndData2SignalNet(atsBackUpIpInfoList[i_dstNum].blueIp, atsBackUpIpInfoList[i_dstNum].bluePort, sndBuff, sndDataLen, pAtsBlueCcov);
SndData2SignalNet(atsBackUpIpInfoList[i_dstNum].redIp, atsBackUpIpInfoList[i_dstNum].redPort, sndBuff, sndDataLen, pAtsRedCcov);
endTickCount = GetTickCount();
debug_infor_printf("Snd to %04x,consume %d ms.\r\n", DeviceName, endTickCount - startTickCount);
}
}
else
{
@@ -3031,7 +2967,7 @@ UINT16 RedSndUnPackNew(UINT8 *sfpBuff,UINT8 *sndBuff,UINT32 *index,UINT32 totalL
*LogicId = ShortFromChar(&sfpBuff[tempIndex]);
tempIndex = tempIndex+2;
if ((CI_SYSTEM_TYPE_VOBC_BACKUP *256U) == (*DevName & 0xff00)||(CI_SYSTEM_TYPE_ITE * 256U) == (*DevName & 0xff00))
if ((CI_SYSTEM_TYPE_VOBC_BACKUP *256U) == (*DevName & 0xff00))
{
ats_sendLendress = send_backupindex; /*长度地址*/
send_backupindex += 2U;
@@ -3044,23 +2980,20 @@ UINT16 RedSndUnPackNew(UINT8 *sfpBuff,UINT8 *sndBuff,UINT32 *index,UINT32 totalL
localCiId = GetSystemParaLocalCiId(); /*源ID*/
srcId = (UINT16)((CI_SYSTEM_TYPE_CI * 256) + localCiId);
ShortToChar(srcId, &sndBuff[send_backupindex]);
send_backupindex += 2U;
ShortToChar(0U, &sndBuff[send_backupindex]);
send_backupindex += 2U;
ats_sendLen += 4U;
ats_sendLen += 2U;
ShortToChar(*DevName, &sndBuff[send_backupindex]); /*目的ID*/
send_backupindex += 2U;
ats_sendLen += 2U;
ShortToChar(*LogicId, &sndBuff[send_backupindex]); /*目的ID*/
send_backupindex += 2U;
ats_sendLen += 2U;
*DevName = GetATSInterfaceTypeId(); /*修改内网中目的id*/
}
sendLen = dataLen-(tempIndex-indexStart);
if ((CI_SYSTEM_TYPE_VOBC_BACKUP * 256U) == (*DevName & 0xff00) || (CI_SYSTEM_TYPE_ITE * 256U) == (*DevName & 0xff00))
if ((CI_SYSTEM_TYPE_ATS_INTERFACE * 256U) == (*DevName & 0xff00))
{
sendLen += ats_sendLen; /*返回长度前判一下类型是否需要加给ATS交换机的数据长度*/
ShortToChar(sendLen, &sndBuff[ats_sendLendress]);/*记录长度*/
@@ -4932,14 +4865,6 @@ void ReadCIFsDevIpTable(const char * pCiFsPath)
dquHlhtId2VobcName(gDeviceIpInfoArray[dwCurDevNum].estId, &wDevName, &wLogicId);
gDeviceIpInfoArray[dwCurDevNum].logicId = wLogicId;
}
else if (DEVTYPE_ITE == cDevType)
{
gDeviceIpInfoArray[dwCurDevNum].logicId = gDeviceIpInfoArray[dwCurDevNum].estId&0x03;
}
else
{
;
}
dwCurDevNum++; /*每成功存储一行IP,数量加一*/
}
@@ -391,7 +391,6 @@ UINT8 GetNetEndPoint(UINT16 devId, UINT16 logicId, UINT8 prtlIdx, IpInfo pIpInfo
UINT8 devType = 0u;
UINT8 id = 0u;
UINT32 vobcId[2] = { 0,0 };
UINT32 iteId[2] = { 0,0 };
UINT8 tempDevType = 0;
UINT16 tempDevId = 0;
UINT8 chFuncRtn = 0U;
@@ -426,20 +425,6 @@ UINT8 GetNetEndPoint(UINT16 devId, UINT16 logicId, UINT8 prtlIdx, IpInfo pIpInfo
}
}
break;
case DEVTYPE_ITE:
getHlhtRet = dquQueryOutIteDevId(id, iteId);
if ((0u == logicId) || (1u == logicId) || (2u == logicId))
{
if ((0u == logicId) || (1u == logicId))
{
hlhtId = iteId[0];
}
else
{
hlhtId = iteId[1];
}
}
break;
case DEVTYPE_NDSU:
getHlhtRet = dquQueryOutDevId(QFUN_IDMAP_DSU_ID, id, &hlhtId);
break;
@@ -815,7 +800,7 @@ UINT8 GetDeviceNameByIpAndPort(UINT16 port,UINT32 ip,UINT16 *deviceName,UINT16 *
{
*deviceName = gDeviceIpInfoArray[index].deviceName;
/*VOBC*/
if((DEVTYPE_VOBC == (UINT8)(gDeviceIpInfoArray[index].deviceName >> 8))|| (DEVTYPE_ITE == (UINT8)(gDeviceIpInfoArray[index].deviceName >> 8)))
if(DEVTYPE_VOBC == (UINT8)(gDeviceIpInfoArray[index].deviceName >> 8))
{
*pLogId = gDeviceIpInfoArray[index].logicId;
}
+3 -4
View File
@@ -340,12 +340,11 @@ UINT8 CbtcCcomm::RcvThread()
sourceID = ShortFromChar((const UINT8*)&_prcvDataBuff[t_OffSet]); /* 源ID */
t_OffSet += 2u; /*解出后备模式实际上的VOBCID*/
logId = ShortFromChar((const UINT8*)&_prcvDataBuff[t_OffSet]); /* 源ID */
t_OffSet += 2u; /*解出后备模式实际上的逻辑*/
dstID = ShortFromChar((const UINT8*)&_prcvDataBuff[t_OffSet]);/* 目的ID */
t_OffSet += 2u;
t_OffSet += 2u;
logId = 0u;
ShortToChar((rcv_data_len - t_OffSet + 4u), &tempframeBuf[0]);/*长度*/
ShortToChar(sourceID, &tempframeBuf[2]);/*类型+ID*/
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff