📄 cli_debug.c
字号:
/* 2、多个同名参数的缺省获取 */
/* 3、互斥参数的获取 */
/* 4、错误获取 */
/* 5、不存在的参数获取 */
/* 6、取正数 */
/* 7、取负数 */
/* Param2: 取数的下标澹(一般为1) */
/* Param3: 1、使用字符串形式获取 */
/* 2、使用长整型形式获取 */
_U32 CLI_CmdTestIntp(_U32 Param1, _U32 Param2, _U32 Param3, _U32 Param4)
{
CT_WS_P pWS;
_U32 ulTermID;
_S8 *szRet;
_U32 ulResualt;
_S8 szName[][30] = {
/*1、一般参数获取*/
"name1",
/*2、多个同名参数的缺省获取 */
"name",
/*3、互斥参数的获取 */
"mt-name1|mt-name2",
/*4、错误获取 */
"",
/*5、不存在的参数获取 */
"abcd",
/*6、取正数 */
"number",
/*7、取负数 */
"con-num",
/*8、不存在的参数获取*/
"name3",
/*9、16进制数获取*/
"hex-num",
/*10、大小写混杂*/
"NumBer"
};
(_VOID)Param4;
if (Param1 ==0 && Param2 == 0 && Param3 == 0 && Param4 == 0)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR,
"\r\n Param1 -- 1. 一般参数获取 "
"\r\n 2. 多个同名参数的缺省获取 "
"\r\n 3. 互斥参数的获取 "
"\r\n 4. 错误获取 "
"\r\n 5. 不存在的参数获取 "
"\r\n 6. 取正数 "
"\r\n 7. 取负数 "
"\r\n Param2 -- 取数的下标(一般为1) "
"\r\n Param3 -- 1. 使用字符串形式获取 "
"\r\n 2. 使用长整型形式获取 "
);
return G_SUCCESS;
}
ulTermID = 1;
pWS = m_TDTable[ulTermID - 1].pTermStruct->pWS;
EOS_StrCpy(pWS->NameBuf[0], "name");
EOS_StrCpy(pWS->NameBuf[1], "name1");
EOS_StrCpy(pWS->NameBuf[2], "name2");
EOS_StrCpy(pWS->NameBuf[3], "mt-name1");
EOS_StrCpy(pWS->NameBuf[4], "name");
EOS_StrCpy(pWS->NameBuf[5], "number");
EOS_StrCpy(pWS->NameBuf[6], "con-num");
EOS_StrCpy(pWS->NameBuf[7], "hex-num");
EOS_StrCpy(pWS->buffer[0], "name");
EOS_StrCpy(pWS->buffer[1], "www");
EOS_StrCpy(pWS->buffer[2], "mmm");
EOS_StrCpy(pWS->buffer[3], "mt-name1");
EOS_StrCpy(pWS->buffer[4], "ooo");
EOS_StrCpy(pWS->buffer[5], "1050");
EOS_StrCpy(pWS->buffer[6], "-1050");
EOS_StrCpy(pWS->buffer[7], "0a0f");
if (Param1 > 11 || Param1 == 0)
return G_FAILURE;
if (Param1 == 11)
{
szRet = CT_GetParamByName(G_NULL, ulTermID);
if (szRet == G_NULL)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: Get NULL");
return G_FAILURE;
}
else
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: %s", szRet);
return G_SUCCESS;
}
}
if (Param2 > 1)
{
EOS_Sprintf(szName[Param1 - 1], "%s/%d", szName[1], Param2);
}
DBG_Out(PID_CLI, CLI_DBGOUT_ERR,
"\r\n\r\n CLI:GetByName (\"%s\", %d)", szName[Param1 - 1], ulTermID);
if (Param3 == 1)
{
if (Param4 == 3)
ulTermID = 3;
szRet = CT_GetParamByName(szName[Param1 - 1], ulTermID);
if (szRet == G_NULL)
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: Get NULL");
else
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: %s", szRet);
}
else if (Param3 == 2)
{
if (CT_GetLongByName(szName[Param1 - 1], ulTermID, (_S32 *)&ulResualt) == G_SUCCESS)
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: %d", ulResualt);
else
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: Get FAILED");
}
else
{
if (CT_GetHexByName(szName[Param1 - 1], ulTermID, &ulResualt) == G_SUCCESS)
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: 0x%x", ulResualt);
else
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n Resualt: Get FAILED");
}
return G_SUCCESS;
}
/*--------------------命令行的标准输出测试函数-----------------------*/
/*===================================================================*/
/* CmdWord = 3 */
/* 说明 Param1: 1、同步输出 */
/* 2、异步输出 */
/* Param2: 1、终端ID(主要遍历串口终端与telnet终端即可) */
/* Param3: 1、终端正常前提 */
/* 2、终端超时 */
/* 3、终端出现异常 */
/* 4、终端未被激活 */
/* 5、不存在的终端 */
/* 6、异步队列满 */
/* Param4: 1、正常内容 */
/* 2、错误内容 */
/* 3、大量内容 */
_U32 CLI_CmdTestStandardIO(_U32 Param1, _U32 Param2, _U32 Param3, _U32 Param4)
{
_U32 ulInfoID;
_U32 ulTermID;
_U32 ulCount, i;
PTerm_Data_S pTermStruct;
if (Param1 ==0 && Param2 == 0 && Param3 == 0 && Param4 == 0)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR,
"\r\n Param1 -- 1. 同步输出 "
"\r\n 2. 异步输出 "
"\r\n Param2 -- 1. 终端ID(主要遍历串口终端与telnet终端即可) "
"\r\n Param3 -- 1. 终端正常前提 "
"\r\n 2. 终端超时 "
"\r\n 3. 终端出现异常 "
"\r\n 4. 终端未被激活 "
"\r\n 5. 不存在的终端 "
"\r\n 6. 异步队列满 "
"\r\n Param4 -- 1. 正常内容 "
"\r\n 2. 错误内容 "
"\r\n 3. 大量内容 "
);
return G_SUCCESS;
}
/* 语种资源预置 */
if (Param4 == 1) //正常内容
{
ulInfoID = CLI_TIMEOUT_TELNET_FAIL;
ulCount = 1;
}
else if(Param4 == 2) //错误内容
{
ulInfoID = ML_NULL_STRING_SID + 5; /* ??? Tailor_LingJian */
ulCount = 1;
}
else if (Param4 == 2) //大量内容
{
ulInfoID = CLI_TIMEOUT_TELNET_FAIL;
ulCount = 300;
}
else
{
ulInfoID = CLI_MONITOR_ENABLE;
ulCount = 1;
}
/* 终端预置 */
ulTermID = Param2;
if (CLI_IS_TERMID_VALIDE(ulTermID))
pTermStruct = m_TDTable[ulTermID - 1].pTermStruct;
else
return G_FAILURE;
switch (Param3)
{
/* 终端正常 */
case 1:
if (!IS_TERM_NORMAL(pTermStruct))
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 测试失败,请使终端%d正常先", ulTermID);
return G_FAILURE;
}
break;
/* 终端超时 */
case 2:
if (!IS_TERM_NORMAL(pTermStruct))
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 测试失败,请使终端%d正常先", ulTermID);
return G_FAILURE;
}
pTermStruct->ulTimeLeft = 0;
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 已经预置终端%d超时! ", ulTermID);
break;
/* 终端异常 */
case 3:
if (!IS_TERM_NORMAL(pTermStruct))
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 测试失败,请使终端%d正常先", ulTermID);
return G_FAILURE;
}
CLI_SetTermStatus(pTermStruct, TERM_SLEEPING);
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 已经预置终端%d异常! ", ulTermID);
break;
/* 终端未登录 */
case 4:
if (pTermStruct->ulTimeLeft == 0 || pTermStruct->ucTermStatus != TERM_SLEEPING)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 测试失败,请测试未登录终端");
return G_FAILURE;
}
break;
/* 终端不存在 */
case 5:
if (ulTermID > 0 && ulTermID <= m_ulCliMaxOnlineUser)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 测试失败,情测试不存在终端");
return G_FAILURE;
}
break;
default:
return G_FAILURE;
}
/* 同步输出测试 */
if (Param1 == 1)
{
for (i = 0; i < ulCount; i++)
{
if (IO_PrintToTerm(ulTermID, ulInfoID) != G_SUCCESS)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 第%d次同步输出错误", i);
}
}
}
/* 异步输出测试 */
else if (Param1 == 2)
{
for (i = 0; i < ulCount; i++)
{
if (IO_SendToTerm(ulTermID, ulInfoID) != G_SUCCESS)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 第%d次异步输出错误", i);
}
}
}
else if (Param1 == 3)
{
IO_SendToAllTerm(ulTermID);
}
else
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR,
"\r\n CLI: test command error: %d, %d, %d, %d", Param1, Param2, Param3, Param4);
}
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 测试完成,请观察终端%d", ulTermID);
return G_SUCCESS;
}
/*--------------------命令行的汇总输出测试函数-----------------------*/
/*===================================================================*/
/* CmdWord = 4 */
/* 说明 Param1: 1、简单字符串输出 */
/* 2、带回车的大字符串 */
/* 3、不带回车的大字符串 */
/* 4、循环调用输出 */
/* Param2: 1、手动滚屏 */
/* 2、自动滚屏 */
_U32 CLI_CmdTestDirectIO(_U32 Param1, _U32 Param2, _U32 Param3, _U32 Param4)
{
_S8 *szInfo;
_S8 szTmp[80];
_U32 i;
PTerm_Data_S pTermStruct;
(_VOID)Param3;
(_VOID)Param4;
if (Param1 ==0 && Param2 == 0 && Param3 == 0 && Param4 == 0)
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR,
"\r\n Param1 -- 1、简单字符串输出 "
"\r\n 2、带回车的大字符串 "
"\r\n 3、不带回车的大字符串 "
"\r\n 4、循环调用输出 "
"\r\n Param2 -- 1、手动滚屏 "
"\r\n 2、自动滚屏 "
);
return G_SUCCESS;
}
pTermStruct = m_TDTable[Param3].pTermStruct;
if (!IS_TERM_NORMAL(pTermStruct))
{
DBG_Out(PID_CLI, CLI_DBGOUT_ERR, "\r\n CLI: 测试失败,请先正常登录串口终端");
return G_FAILURE;
}
szInfo = malloc(1024 * 20);
if (szInfo == G_NULL)
{
return G_FAILURE;
}
szInfo[0] = '\0';
EOS_StrCpy (szInfo, "\r\n Test of function : OutToTerm");
if (Param2 == 1)
pTermStruct->ucScroll = SCROLL_MANUAL;
else
pTermStruct->ucScroll = SCROLL_AUTO;
switch (Param1)
{
/* 1、简单字符串输出 */
case 1:
break;
/* 2、带回车的大字符串 */
case 2:
for (i = 0; i < 200; i++)
{
EOS_Sprintf(szTmp, "\r\n Test of function : OutToTerm(%d)", i);
EOS_StrCat (szInfo, szTmp);
}
break;
/* 3、不带回车的大字符串 */
case 3:
for (i = 0; i< 1000; i++)
{
EOS_Sprintf(szTmp, "123456789012345(%d)", i);
EOS_StrCat (szInfo, szTmp);
}
break;
/* 4、循环调用输出 */
case 4:
for (i = 0; i < 200; i++)
{
EOS_Sprintf(szInfo, "\r\n Test of function : OutToTerm(%d)", i);
IO_OutToTerm(pTermStruct, szInfo);
}
free(szInfo);
return G_SUCCESS;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -