Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a7802a60aa | |||
| 9a93d3baac | |||
| 1461242454 |
@@ -588,8 +588,8 @@ ENUM_CM_RETURN APP_API_MainFunc(void)
|
|||||||
debug_infor_printf("app proc end at %llu us,used %d us\n", endCycTick, (CM_INT32)((endCycTick - startCycTick) / 1000));
|
debug_infor_printf("app proc end at %llu us,used %d us\n", endCycTick, (CM_INT32)((endCycTick - startCycTick) / 1000));
|
||||||
|
|
||||||
//gFollowDataLen = GetCiAppData(gFollowData);
|
//gFollowDataLen = GetCiAppData(gFollowData);
|
||||||
memset(gFollowData,0x02,1024*500);
|
memset(gFollowData,0x00,1024*1500);
|
||||||
MSCP_SetFollowData(gFollowData, 1024*500);
|
MSCP_SetFollowData(gFollowData, 1024*1500 - 1);
|
||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -304,6 +304,7 @@ static void s_NetInit_2oo2(void)
|
|||||||
/*- 变量初始化 */
|
/*- 变量初始化 */
|
||||||
ENUM_CM_RETURN rt = ENUM_CM_FALSE; /* 临时变量 */
|
ENUM_CM_RETURN rt = ENUM_CM_FALSE; /* 临时变量 */
|
||||||
CM_INT32 val = 0; /* 临时变量 */
|
CM_INT32 val = 0; /* 临时变量 */
|
||||||
|
unsigned int optLen = 0u; /* socket选项值长度 */
|
||||||
CM_BOOL rtCheck = CM_FALSE; /* 临时变量 */
|
CM_BOOL rtCheck = CM_FALSE; /* 临时变量 */
|
||||||
|
|
||||||
/*- 创建平台数据2取socket */
|
/*- 创建平台数据2取socket */
|
||||||
@@ -334,6 +335,47 @@ static void s_NetInit_2oo2(void)
|
|||||||
(void)setsockopt(s_CFM_Sock.Sock_2oo2_Data, SOL_SOCKET, SO_SNDBUF, (void*)(&val), (unsigned int)sizeof(val));
|
(void)setsockopt(s_CFM_Sock.Sock_2oo2_Data, SOL_SOCKET, SO_SNDBUF, (void*)(&val), (unsigned int)sizeof(val));
|
||||||
(void)setsockopt(s_CFM_Sock.Sock_2oo2_Data_App, SOL_SOCKET, SO_RCVBUF, (void*)(&val), (unsigned int)sizeof(val));
|
(void)setsockopt(s_CFM_Sock.Sock_2oo2_Data_App, SOL_SOCKET, SO_RCVBUF, (void*)(&val), (unsigned int)sizeof(val));
|
||||||
(void)setsockopt(s_CFM_Sock.Sock_2oo2_Data_App, SOL_SOCKET, SO_SNDBUF, (void*)(&val), (unsigned int)sizeof(val));
|
(void)setsockopt(s_CFM_Sock.Sock_2oo2_Data_App, SOL_SOCKET, SO_SNDBUF, (void*)(&val), (unsigned int)sizeof(val));
|
||||||
|
|
||||||
|
/*- 读取并打印socket实际生效的接收、发送缓冲区大小 */
|
||||||
|
optLen = (unsigned int)sizeof(val);
|
||||||
|
if (0 == getsockopt(s_CFM_Sock.Sock_2oo2_Data, SOL_SOCKET, SO_RCVBUF, (void*)(&val), &optLen))
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data SO_RCVBUF = %d bytes\n", val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data SO_RCVBUF getsockopt failed\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
optLen = (unsigned int)sizeof(val);
|
||||||
|
if (0 == getsockopt(s_CFM_Sock.Sock_2oo2_Data, SOL_SOCKET, SO_SNDBUF, (void*)(&val), &optLen))
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data SO_SNDBUF = %d bytes\n", val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data SO_SNDBUF getsockopt failed\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
optLen = (unsigned int)sizeof(val);
|
||||||
|
if (0 == getsockopt(s_CFM_Sock.Sock_2oo2_Data_App, SOL_SOCKET, SO_RCVBUF, (void*)(&val), &optLen))
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data_App SO_RCVBUF = %d bytes\n", val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data_App SO_RCVBUF getsockopt failed\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
optLen = (unsigned int)sizeof(val);
|
||||||
|
if (0 == getsockopt(s_CFM_Sock.Sock_2oo2_Data_App, SOL_SOCKET, SO_SNDBUF, (void*)(&val), &optLen))
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data_App SO_SNDBUF = %d bytes\n", val);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(void)printf("Sock_2oo2_Data_App SO_SNDBUF getsockopt failed\n");
|
||||||
|
}
|
||||||
/*- 初始化控制信息 */
|
/*- 初始化控制信息 */
|
||||||
|
|
||||||
/*- 配置接收线程 */
|
/*- 配置接收线程 */
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ extern "C"
|
|||||||
#define NET_UDP_MAINTENANCE_BUF_SIZE ((1024*5)-(1)) /*2OO2UDP协议栈缓冲区大小(维护模式下用于接收代码)*/
|
#define NET_UDP_MAINTENANCE_BUF_SIZE ((1024*5)-(1)) /*2OO2UDP协议栈缓冲区大小(维护模式下用于接收代码)*/
|
||||||
#define NET_UDP_2X2_BUF_SIZE ((1024*64)-(1)) /*2X2UDP协议栈缓冲区大小(用于接收代码)*/
|
#define NET_UDP_2X2_BUF_SIZE ((1024*64)-(1)) /*2X2UDP协议栈缓冲区大小(用于接收代码)*/
|
||||||
#define NET_UDP_BUF_SIZE ((1024*64)-(1)) /*UDPsocket消息队列缓冲区(用于接收代码)*/
|
#define NET_UDP_BUF_SIZE ((1024*64)-(1)) /*UDPsocket消息队列缓冲区(用于接收代码)*/
|
||||||
#define NET_UDP_BUF_DOUBLESIZE ((1024*256) - (1)) /*UDP协议栈缓冲区大小(用于接收代码)*/
|
#define NET_UDP_BUF_DOUBLESIZE ((2*1024*1024) - (1)) /*UDP协议栈缓冲区大小(用于接收代码)*/
|
||||||
|
|
||||||
#define NET_50K_SIZE (50000u) /*实际允许使用的应用帧大小(用于发送代码)*/
|
#define NET_50K_SIZE (50000u) /*实际允许使用的应用帧大小(用于发送代码)*/
|
||||||
#define NET_20K_SIZE (20000u) /*实际允许使用的应用帧大小(用于发送代码)*/
|
#define NET_20K_SIZE (20000u) /*实际允许使用的应用帧大小(用于发送代码)*/
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ ENUM_CM_RETURN CM_UDP_Socket_Create(OUT CM_SOCKET* pSock, IN CM_BOOL isNonBlockM
|
|||||||
ENUM_CM_RETURN retError = ENUM_CM_FALSE; /* 临时返回值 */
|
ENUM_CM_RETURN retError = ENUM_CM_FALSE; /* 临时返回值 */
|
||||||
struct ip_mreq multiCast; /* 组播配置 */
|
struct ip_mreq multiCast; /* 组播配置 */
|
||||||
CM_INT32 bCast = 1;
|
CM_INT32 bCast = 1;
|
||||||
|
u_char loop; /* 0 = disable, 1 = enable (default) */
|
||||||
/*- 是否UDP服务未初始化或输入非法 */
|
/*- 是否UDP服务未初始化或输入非法 */
|
||||||
if ((CM_TRUE != s_UDP_Initialized) || (NULL == pSock))
|
if ((CM_TRUE != s_UDP_Initialized) || (NULL == pSock))
|
||||||
{
|
{
|
||||||
@@ -209,6 +210,8 @@ ENUM_CM_RETURN CM_UDP_Socket_Create(OUT CM_SOCKET* pSock, IN CM_BOOL isNonBlockM
|
|||||||
/*组播发送*/
|
/*组播发送*/
|
||||||
addrHost.sin_addr.s_addr = addrIP;
|
addrHost.sin_addr.s_addr = addrIP;
|
||||||
(void)setsockopt(*pSock, IPPROTO_IP, IP_MULTICAST_IF, &addrHost.sin_addr, sizeof(addrHost.sin_addr));
|
(void)setsockopt(*pSock, IPPROTO_IP, IP_MULTICAST_IF, &addrHost.sin_addr, sizeof(addrHost.sin_addr));
|
||||||
|
loop = 0;
|
||||||
|
(void)setsockopt(*pSock, IPPROTO_IP, IP_MULTICAST_LOOP, &loop, sizeof(loop));
|
||||||
break;
|
break;
|
||||||
case ENUM_MULTICAST_RCV:
|
case ENUM_MULTICAST_RCV:
|
||||||
/*组播接收*/
|
/*组播接收*/
|
||||||
|
|||||||
@@ -630,7 +630,7 @@ static void SelfCheckInit(void)
|
|||||||
{
|
{
|
||||||
#ifdef QNX
|
#ifdef QNX
|
||||||
/*- 文件自检初始化 */
|
/*- 文件自检初始化 */
|
||||||
PFM_FileInit();
|
//PFM_FileInit();
|
||||||
/*- 内存自检初始化*/
|
/*- 内存自检初始化*/
|
||||||
PFM_MemCheck_Init();
|
PFM_MemCheck_Init();
|
||||||
/*- CPU自检初始化*/
|
/*- CPU自检初始化*/
|
||||||
|
|||||||
@@ -461,6 +461,8 @@ void PFM_InputProc(void)
|
|||||||
/*- 外网安全数据接收 */
|
/*- 外网安全数据接收 */
|
||||||
PFM_CFC_Check(26);
|
PFM_CFC_Check(26);
|
||||||
g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].mine_len = (CM_UINT32)SFM_RxOutnetSafe(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].p_mine_buf, (CM_UINT32)g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].buf_size);
|
g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].mine_len = (CM_UINT32)SFM_RxOutnetSafe(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].p_mine_buf, (CM_UINT32)g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].buf_size);
|
||||||
|
g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].mine_len = g_PFM_Cfg.OutnetSafePack_Len;
|
||||||
|
CM_Memset(g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].p_mine_buf, 0x00u, g_PFM_Cfg.OutnetSafePack_Len, g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].buf_size);
|
||||||
MSCP_LOG_MSG("g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].mine_len = %d\n",g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].mine_len);
|
MSCP_LOG_MSG("g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].mine_len = %d\n",g_2x2oo2_rx[g_2x2oo2_base][s_2x2oo2_OutnetSafe].mine_len);
|
||||||
/*判断外网透传使能开关*/
|
/*判断外网透传使能开关*/
|
||||||
if((CM_UINT32)0x55u == g_PFM_Cfg.M_OutnetRaw_Enable)
|
if((CM_UINT32)0x55u == g_PFM_Cfg.M_OutnetRaw_Enable)
|
||||||
|
|||||||
@@ -133,6 +133,7 @@ static void SFM_2x2_Eth422StateDark(void);
|
|||||||
// 主要实现函数
|
// 主要实现函数
|
||||||
void save_to_file(const char *format, ...)
|
void save_to_file(const char *format, ...)
|
||||||
{
|
{
|
||||||
|
return;
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
va_list args;
|
va_list args;
|
||||||
int result = 0;
|
int result = 0;
|
||||||
@@ -1865,7 +1866,7 @@ static void s_2x2_Recv(void)
|
|||||||
ENUM_CM_RETURN ret = ENUM_CM_FALSE; /* 临时变量 */
|
ENUM_CM_RETURN ret = ENUM_CM_FALSE; /* 临时变量 */
|
||||||
PFM_LOG_SET_STOPTIMER(TSCP_DARK_2x2);
|
PFM_LOG_SET_STOPTIMER(TSCP_DARK_2x2);
|
||||||
/*- 以太网循环接收2x2数据 */
|
/*- 以太网循环接收2x2数据 */
|
||||||
if(CM_TRUE == s_2x2_Ctrl.TimeSyncFlag)
|
if(CM_TRUE == CFM_GetTimeSyncFlag())
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@@ -2635,6 +2636,7 @@ void SFM_2x2_EndProc(void)
|
|||||||
CM_UINT8 type = 0u; /*接收到的跟随数据类型 1 CRC 2 全数据*/
|
CM_UINT8 type = 0u; /*接收到的跟随数据类型 1 CRC 2 全数据*/
|
||||||
static CM_UINT8 debounce = 0u; /*防抖计数*/
|
static CM_UINT8 debounce = 0u; /*防抖计数*/
|
||||||
CM_UINT8 SendFollowDataType = 0u;
|
CM_UINT8 SendFollowDataType = 0u;
|
||||||
|
CM_UINT32 i = 0u;
|
||||||
|
|
||||||
|
|
||||||
if(ENUM_4x2_MASTER == stat)
|
if(ENUM_4x2_MASTER == stat)
|
||||||
@@ -2643,6 +2645,7 @@ void SFM_2x2_EndProc(void)
|
|||||||
curTickTest[0] = CM_GetTick();
|
curTickTest[0] = CM_GetTick();
|
||||||
/* 条件 本地对系是备或者宕机 && 对地A是备或者宕机 && 对地B是备或者宕机*/
|
/* 条件 本地对系是备或者宕机 && 对地A是备或者宕机 && 对地B是备或者宕机*/
|
||||||
SendFollowDataType = SFM_GetAppFollowType();
|
SendFollowDataType = SFM_GetAppFollowType();
|
||||||
|
SendFollowDataType = 0;
|
||||||
if(1u == SendFollowDataType)
|
if(1u == SendFollowDataType)
|
||||||
{
|
{
|
||||||
/*- 发送跟随数据 */
|
/*- 发送跟随数据 */
|
||||||
@@ -2696,14 +2699,20 @@ void SFM_2x2_EndProc(void)
|
|||||||
{
|
{
|
||||||
/*- 是否收到了最新的应用跟随数据 */
|
/*- 是否收到了最新的应用跟随数据 */
|
||||||
/*- 调用应用API覆盖应用关键数据 */
|
/*- 调用应用API覆盖应用关键数据 */
|
||||||
|
|
||||||
//retFollowUp = APP_API_FollowUp(g_RxAppFollow, (CM_UINT32)g_RxAppFollow_len);
|
//retFollowUp = APP_API_FollowUp(g_RxAppFollow, (CM_UINT32)g_RxAppFollow_len);
|
||||||
//CM_RE_ASSERT(ENUM_CM_TRUE == retFollowUp, SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_9, TSCP_DARK_ASSERT_2);
|
//CM_RE_ASSERT(ENUM_CM_TRUE == retFollowUp, SFM_2x2_MODE, DARK_FAULT_CODE_FUN_ORDER_9, TSCP_DARK_ASSERT_2);
|
||||||
|
for(i = 0u; i < g_RxAppFollow_len; i++)
|
||||||
|
{
|
||||||
|
g_RxAppFollow[i] = 0;
|
||||||
|
}
|
||||||
s_2x2_Ctrl.AppFollowCmpFailFlag = 0u;
|
s_2x2_Ctrl.AppFollowCmpFailFlag = 0u;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MSCP_LOG_MSG("no follow data\n");
|
MSCP_LOG_MSG("no follow data\n");
|
||||||
}
|
}
|
||||||
|
curTickTest[1] = CM_GetTick();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user