📄 cli_cmdpro.c
字号:
/*error msg*/
if ( argc < 2)
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
/*get curent interface mode*/
aos_strcpy(szIfName, argv[1]);
if ( argc == 2 )
{
debug_show_info( argc, argv );
return ;
}
else
{
cli_out_string (ulIndex, pTooManyParam ) ;
return ;
}
}
/*========================================================================*/
/* */
/* Function Name : cli_cmd_set_timeout */
/* Function Func. : 设置telnet用户超时时长 */
/*========================================================================*/
VOID cli_cmd_set_timeout ( U32 argc, S8 * argv[ ] )
{
U32 ulIndex;
U32 ulTimeOut;
S32 lRet;
/*error msg*/
if ( argc < 2 )
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
if( 3 != argc )
{
cli_out_string( ulIndex, "\r\n Usage: user_timeout { minutes }");
return;
}
lRet = aos_atoul( argv[2], &ulTimeOut );
if( lRet != AOS_SUCC )
{
cli_out_string( ulIndex, "\r\n Usage: user_timeout { minutes }");
return;
}
( (ulTimeOut == 0)||( ulTimeOut > 30 ) ) ? ( ulTimeOut = 30 ) : ( ulTimeOut = ulTimeOut );
g_ulTelnetTimeOut = ulTimeOut * 60 * 1000;
return;
}
/*========================================================================*/
/* */
/* Function Name : cfg_exit_cmdpro */
/* Function Func. : change from config mode to privilege level */
/*========================================================================*/
VOID cfg_exit_cmdpro ( U32 argc, S8 * argv[ ] )
{
S8 szIfName[128] = "";
U32 ulIndex = 0;
/*error msg*/
if ( argc < 2)
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
/*get curent interface mode*/
aos_strcpy(szIfName, argv[1]);
if ( argc == 2 )
{
cli_change_level (ulIndex, PRIVILEGE_LEVEL ) ;
return ;
}
else
{
cli_out_string (ulIndex, pTooManyParam ) ;
return ;
}
}
/*========================================================================*/
/* */
/* Function Name : ul_exit_cmdpro */
/* Function Func. : Exit from configuration and disconnect */
/*========================================================================*/
VOID cli_shutdown_user ( U32 argc, S8 * argv[ ] )
{
U32 ulIndex = 0, ulDelIndex;
S8 prompt[128];
/*error msg*/
if ( argc < 2)
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
if ( argc == 2 || argc == 3 )
{
/*如果是串口命令行是不会SHUTDOWN的*/
if( argc == 2 )
{
ulDelIndex = ulIndex;
}
else
{
/*get user index*/
if( aos_atol(argv[2], (S32*)&ulDelIndex) )
{
cli_out_string( ulIndex, "user index error" );
return;
}
}
aos_sprintf( prompt, "\r\nAre you sure to shutdown user %d ? (y/n):", ulDelIndex );
cli_out_string( ulIndex,prompt );
cli_get_string( ulIndex,prompt, 2 );
if( 'Y' == prompt[0] || 'y' == prompt[0] )
{
aos_sprintf( prompt, "\r\nshutdown %d", ulDelIndex );
cli_out_string( ulIndex, prompt );
cli_disconnect (ulDelIndex);
}
}
else
{
cli_out_string (ulIndex, pTooManyParam ) ;
}
}
#if AOS_INCLUDE_INET_IFNET == TRUE
/*========================================================================*/
/* */
/* Function Name : cfg_if_fe_cmdpro */
/* Function Func. : change from config mode to config interface mode */
/*========================================================================*/
VOID cfg_if_fe_cmdpro ( U32 argc, S8 * argv[ ] )
{
USER_DATA_S *pstUserData = NULL;
S8 szIfName[128] = "";
U32 ulIndex = 0;
/*error msg*/
if ( argc < 2)
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
/*get curent interface mode*/
aos_strcpy(szIfName, argv[1]);
if ( argc == 2 )
{
cli_out_string (ulIndex, pIncompleteCmd ) ;
return ;
}
pstUserData = cli_get_userdata_by_index( ulIndex);
if(NULL == pstUserData)
{
return;
}
if ( argc == 3 )
{
if ( ! aos_strcmp ( argv[2], "?" ) )
{
cli_out_string (ulIndex, "\n\r <0/0/0> Ethernet interface number" ) ;
return ;
}
else
{
#if CONFIG_BOARD_EIA
aos_strcpy(szIfName, "Ethernet");
#else
aos_strcpy(szIfName, "Fast-ethernet");
#endif
aos_strcat(szIfName, argv[2]);
if(NULL == if_get_if_by_full_name(szIfName))
{
cli_out_string (ulIndex, pIncorrectCmd ) ;
return ;
}
else
{
cli_change_level(ulIndex,CONFIG_IF_ETHERNET);
aos_strcpy(pstUserData->szName, szIfName);
}
}
}
else
{
cli_out_string (ulIndex, pTooManyParam ) ;
return ;
}
return;
}
/*========================================================================*/
/* */
/* Function Name : cfg_if_fe_exit_cmdpro */
/* Function Func. : change from config Interface mode to config mode */
/*========================================================================*/
VOID cfg_if_fe_exit_cmdpro ( U32 argc, S8 * argv[ ] )
{
S8 szIfName[128] = "";
U32 ulIndex = 0;
/*error msg*/
if ( argc < 2)
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
/*get curent interface mode*/
aos_strcpy(szIfName, argv[1]);
if ( argc == 2 )
{
cli_change_level (ulIndex, CONFIG_LEVEL ) ;
return ;
}
else
{
cli_out_string (ulIndex, pTooManyParam ) ;
return ;
}
}
/*========================================================================*/
/* */
/* Function Name : cfg_if_asyn_cmdpro */
/* Function Func. : change from config mode to config interface mode */
/*========================================================================*/
VOID cfg_if_asyn_cmdpro ( U32 argc, S8 * argv[ ] )
{
USER_DATA_S *pstUserData = NULL;
S8 szIfName[128] = "";
U32 ulIndex = 0;
/*error msg*/
if ( argc < 2)
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
/*get curent interface mode*/
aos_strcpy(szIfName, argv[1]);
if ( argc == 2 )
{
cli_out_string (ulIndex, pIncompleteCmd ) ;
return ;
}
pstUserData = cli_get_userdata_by_index( ulIndex);
if(NULL == pstUserData)
{
return;
}
if ( argc == 3 )
{
if ( ! aos_strcmp ( argv[2], "?" ) )
{
cli_out_string (ulIndex, "\n\r <0/0/0> asyn interface number" ) ;
return ;
}
else
{
aos_strcpy(szIfName, "Async");
aos_strcat(szIfName, argv[2]);
if(NULL == if_get_if_by_full_name(szIfName))
{
cli_out_string (ulIndex, pIncorrectCmd ) ;
return ;
}
else
{
cli_change_level(ulIndex,CONFIG_IF_ASYN);
aos_strcpy(pstUserData->szName, szIfName);
}
}
}
else
{
cli_out_string (ulIndex, pTooManyParam ) ;
return ;
}
return;
}
/*========================================================================*/
/* */
/* Function Name : cfg_if_asyn_exit_cmdpro */
/* Function Func. : change from config Interface mode to config mode */
/*========================================================================*/
VOID cfg_if_asyn_exit_cmdpro ( U32 argc, S8 * argv[ ] )
{
S8 szIfName[128] = "";
U32 ulIndex = 0;
/*error msg*/
if ( argc < 2)
{
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
/*get curent interface mode*/
aos_strcpy(szIfName, argv[1]);
if ( argc == 2 )
{
cli_change_level (ulIndex, CONFIG_LEVEL ) ;
return ;
}
else
{
cli_out_string (ulIndex, pTooManyParam ) ;
return ;
}
}
#endif
VOID cfg_ada_cmdpro ( U32 argc, S8 * argv[ ] )
{
struct dbg_frame_s* pstFrame;
USER_DATA_S *pstUserData = NULL;
S8 szMpeName[128] = "";
U32 ulIndex = 0;
MSG_S stMsg;
U32 ulProcessId;
/*error msg*/
if ( argc < 2)
{
/*----------------------------------------------------------------*/
/* error message */
/*----------------------------------------------------------------*/
cli_out_string (0, "\n\r error msg" ) ;
return ;
}
/*get user index*/
aos_atol(argv[0], (S32*)&ulIndex);
pstUserData = cli_get_userdata_by_index( ulIndex);
if(NULL == pstUserData)
{
//AOS_ASSERT(0);
return;
}
if(( argc == 3 )||( argc == 2 ))
{
if( argc == 2 )
{
ulProcessId = dev_get_local_processorid();
}
else
{
aos_atoul( argv[2], &ulProcessId );
}
pstFrame = aos_msg_alloc( MPE_CLI, sizeof( struct dbg_frame_s));
if( NULL == pstFrame )
{
return;
}
szMpeName[0] = '\0';
aos_sprintf( szMpeName, "%d", ulProcessId );
cli_change_level(ulIndex,PRIVILEGE_ADA);
aos_strcpy(pstUserData->szName, szMpeName);
aos_memzero( pstFrame, sizeof( struct dbg_frame_s));
/*填充DEBUG消息帧*/
pstFrame->debuger_ip_addr = AOS_HTONL(ulIndex);
pstFrame->cmd = DEBUG_SHAKEHAND;
pstFrame->dstProcessorId = AOS_HTONL( ulProcessId );
pstFrame->is_to_borad = TRANS_TO_BOARD;
/*填充AOS消息头*/
stMsg.dstMpe = MPE_DEBUG;
stMsg.dstProcessorId = ulProcessId;
stMsg.msgPrio = MSG_PRIO_NORMAL;
stMsg.srcMpe = MPE_CLI;
stMsg.srcProcessorId = dev_get_local_processorid();
stMsg.pvMsgBuf = pstFrame;
stMsg.ulSize = sizeof( struct dbg_frame_s );
/*发送AOS消息*/
aos_msg_send( &stMsg );
return;
}
else
{
/*----------------------------------------------------------------*/
/* error message */
/*----------------------------------------------------------------*/
cli_out_string (ulIndex, pTooManyParam ) ;
return ;
}
}
/*========================================================================*/
/* */
/* Function Name : cfg_ada_exit_cmdpro */
/* Function Func. : change from config Interface mode to config mode */
/*========================================================================*/
VOID cfg_ada_exit_cmdpro ( U32 argc, S8 * argv[ ] )
{
S8 szIfName[128] = "";
U32 ulIndex = 0;
struct dbg_frame_s* pstFrame;
MSG_S stMsg;
U32 ulDstProcessorID;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -