测试代码提交,存在问题,双系发心跳可能不同步,可能出现如备系本周期先发了心跳,这时通控开始回数据,主系本周期可能会接收到数据,然后更新stoptick,但starttick在发心跳才更新,导致耗时结果偏差,单起一系测试最好
This commit is contained in:
@@ -3323,6 +3323,8 @@ void CFM_NetworkCard_Init(void)
|
|||||||
* 创建本线程之前应先配置好STRU_CFM_RECV_CTRL,包括创建阻塞通信的socket
|
* 创建本线程之前应先配置好STRU_CFM_RECV_CTRL,包括创建阻塞通信的socket
|
||||||
* 本线程将以阻塞方式接收UDP报文并写入线程接收队列
|
* 本线程将以阻塞方式接收UDP报文并写入线程接收队列
|
||||||
*/
|
*/
|
||||||
|
extern CM_UINT64 test_stop_tick;
|
||||||
|
extern CM_UINT32 test_recv_len, test_recv_num;
|
||||||
static CM_THREAD_FUNC_T t_UdpRecvThread(IN CM_Thread_Arg_Struct_T* arg)
|
static CM_THREAD_FUNC_T t_UdpRecvThread(IN CM_Thread_Arg_Struct_T* arg)
|
||||||
{
|
{
|
||||||
/*- 变量初始化 */
|
/*- 变量初始化 */
|
||||||
@@ -3379,6 +3381,12 @@ static CM_THREAD_FUNC_T t_UdpRecvThread(IN CM_Thread_Arg_Struct_T* arg)
|
|||||||
if (ENUM_CM_TRUE == rt)
|
if (ENUM_CM_TRUE == rt)
|
||||||
{
|
{
|
||||||
/*成功无操作*/
|
/*成功无操作*/
|
||||||
|
if(ENUM_THREAD_OutnetS_Rx == pCtrl->threadNumBer)
|
||||||
|
{
|
||||||
|
test_stop_tick = CM_GetTick();
|
||||||
|
test_recv_len += len;
|
||||||
|
test_recv_num++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -692,7 +692,7 @@ static void SelfCheckInit(void)
|
|||||||
{
|
{
|
||||||
#ifdef QNX
|
#ifdef QNX
|
||||||
/*- 文件自检初始化 */
|
/*- 文件自检初始化 */
|
||||||
PFM_FileInit();
|
//PFM_FileInit();
|
||||||
/*- 内存自检初始化*/
|
/*- 内存自检初始化*/
|
||||||
PFM_MemCheck_Init();
|
PFM_MemCheck_Init();
|
||||||
/*- CPU自检初始化*/
|
/*- CPU自检初始化*/
|
||||||
|
|||||||
@@ -465,7 +465,8 @@ void PFM_BufSwich(void)
|
|||||||
s_OutnetHeart_Mine_AppReadIndex = 0;
|
s_OutnetHeart_Mine_AppReadIndex = 0;
|
||||||
s_OutnetHeart_Peer_AppReadIndex = 0;
|
s_OutnetHeart_Peer_AppReadIndex = 0;
|
||||||
}
|
}
|
||||||
|
CM_UINT64 test_start_tick = 0u, test_stop_tick = 0u;
|
||||||
|
CM_UINT32 test_recv_len = 0u, test_recv_num = 0u;
|
||||||
/**
|
/**
|
||||||
* @brief 输入微周期处理
|
* @brief 输入微周期处理
|
||||||
* @details
|
* @details
|
||||||
@@ -487,6 +488,7 @@ 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);
|
||||||
|
MSCP_LOG_MSG("TEST:CYC = %d, Recv Num %d Len %d USED %llums\n",g_MSCP_SysCount, test_recv_num, test_recv_len, (test_stop_tick - test_start_tick) / CM_UNSIGNED_MILLION);
|
||||||
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)
|
||||||
@@ -518,6 +520,10 @@ void PFM_InputProc(void)
|
|||||||
|
|
||||||
PFM_CFC_Check(30);
|
PFM_CFC_Check(30);
|
||||||
/*- 发送主线程热备状态的外网心跳*/
|
/*- 发送主线程热备状态的外网心跳*/
|
||||||
|
test_start_tick = CM_GetTick();
|
||||||
|
test_stop_tick = test_start_tick;
|
||||||
|
test_recv_len = 0u;
|
||||||
|
test_recv_num = 0u;
|
||||||
(void)CFM_TxOutnetHeart(localstate);
|
(void)CFM_TxOutnetHeart(localstate);
|
||||||
PFM_CFC_Check(31); /*预留*/
|
PFM_CFC_Check(31); /*预留*/
|
||||||
/*************************本地输入数据2oo2交换和比较*************************/
|
/*************************本地输入数据2oo2交换和比较*************************/
|
||||||
|
|||||||
Reference in New Issue
Block a user