📄 voip_cli.c
字号:
case VOIP_CLI_CMD_TYPE_NONE:
break;
}
}
/* BERT information display */
else if( pCliContext->aDisplay[pCliContext->un32DisplayIndex] == VOIP_CLI_DISPLAY_TYPE_BERT_INFO )
{
/* Apply the user input */
switch( io_pCmdInput->CmdType )
{
case VOIP_CLI_CMD_TYPE_QUIT:
VoipCliCmdQuitApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NEXT_DEMO_STEP:
VoipCliCmdNextDemoStepApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NONE:
break;
}
}
/* Map of trunk resource status display */
else if( pCliContext->aDisplay[pCliContext->un32DisplayIndex] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP )
{
/* Apply the user input */
switch( io_pCmdInput->CmdType )
{
case VOIP_CLI_CMD_TYPE_QUIT:
VoipCliCmdQuitApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NEXT_DEMO_STEP:
VoipCliCmdNextDemoStepApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NONE:
break;
}
}
/* Inverted map of trunk resource status display */
else if( pCliContext->aDisplay[pCliContext->un32DisplayIndex] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP )
{
/* Apply the user input */
switch( io_pCmdInput->CmdType )
{
case VOIP_CLI_CMD_TYPE_QUIT:
VoipCliCmdQuitApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NEXT_DEMO_STEP:
VoipCliCmdNextDemoStepApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NONE:
break;
}
}
/* Graph of packet type status display */
else if( pCliContext->aDisplay[pCliContext->un32DisplayIndex] == VOIP_CLI_DISPLAY_TYPE_PACKET_TYPE_GRAPH )
{
/* Apply the user input */
switch( io_pCmdInput->CmdType )
{
case VOIP_CLI_CMD_TYPE_QUIT:
VoipCliCmdQuitApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NEXT_DEMO_STEP:
VoipCliCmdNextDemoStepApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NONE:
break;
}
}
/* Map of trunk resource and graph of packet type status display */
else if( pCliContext->aDisplay[pCliContext->un32DisplayIndex] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP_AND_PACKET_TYPE_GRAPH )
{
/* Apply the user input */
switch( io_pCmdInput->CmdType )
{
case VOIP_CLI_CMD_TYPE_QUIT:
VoipCliCmdQuitApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NEXT_DEMO_STEP:
VoipCliCmdNextDemoStepApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NONE:
break;
}
}
/* Inverted map of trunk resource and graph of packet type status display */
else if( pCliContext->aDisplay[pCliContext->un32DisplayIndex] == VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP_AND_PACKET_TYPE_GRAPH )
{
/* Apply the user input */
switch( io_pCmdInput->CmdType )
{
case VOIP_CLI_CMD_TYPE_QUIT:
VoipCliCmdQuitApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NEXT_DEMO_STEP:
VoipCliCmdNextDemoStepApply( io_pCmdInput );
break;
case VOIP_CLI_CMD_TYPE_NONE:
break;
}
}
}
TBX_SEM_GIV (g_pContext->hThreadSem);
return;
}
/*-------------------------------------------------------------------------------------------------------------------------------
|
| VoipCliInit : Initialize CLI context.
|
| Note : ~
|
| Return : TBX_RESULT_OK
| TBX_RESULT_FAIL
| or others
|
*------------------------------------------------------------------------------------------------------------------------------*/
TBX_RESULT VoipCliInit()
{
PVOIP_CLI_CONTEXT pCliContext;
/*---------------------------------------------------------------------------------------------------------------------------
| Code section
*--------------------------------------------------------------------------------------------------------------------------*/
CODE
{
/* Initialize local variables */
pCliContext = &g_pContext->CliContext;
memset( pCliContext, 0, sizeof(*pCliContext) );
/* Initialize variables to handle the adapter selection */
pCliContext->pActiveAdapterContext = NULL;
pCliContext->un32AdaptersCount = 0;
pCliContext->un32AdapterIndex = 0;
/* Initialize variables to handle the display type selection */
pCliContext->un32DisplayCount = 0;
pCliContext->un32DisplayIndex = 0;
/* Initialize variables to handle the page selection */
pCliContext->un32PageCount = 0;
pCliContext->un32PageIndex = 0;
/* End of the code (skip to cleanup) */
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
/*---------------------------------------------------------------------------------------------------------------------------
| Error handling section
*--------------------------------------------------------------------------------------------------------------------------*/
ERROR_HANDLING
{
fprintf(
stdout,
"VoipCliInit: %s (Result 0x%08X, %s, line %d)\n",
TBX_ERROR_DESCRIPTION,
(int)TBX_ERROR_RESULT,
__FILE__,
TBX_ERROR_LINE);
}
/*---------------------------------------------------------------------------------------------------------------------------
| Cleanup section
*--------------------------------------------------------------------------------------------------------------------------*/
CLEANUP
{
}
RETURN;
}
/*-------------------------------------------------------------------------------------------------------------------------------
|
| VoipCliUpdate : Update the Cli context and set Cli Tools parameters.
|
| Note : ~
|
| Return : TBX_RESULT_OK
| TBX_RESULT_FAIL
| or others
|
*------------------------------------------------------------------------------------------------------------------------------*/
TBX_RESULT VoipCliUpdate()
{
TBX_RESULT Result;
PVOIP_CLI_CONTEXT pCliContext;
PVOIP_ADAPTER_CONTEXT pAdapterContext;
PVOIP_ADAPTER_CONTEXT_NODE pAdapterContextNode;
TBX_UINT32 un32NbFreeBuffers;
TBX_UINT32 un32NbUsedBuffers;
TBX_UINT32 un32Index;
/*---------------------------------------------------------------------------------------------------------------------------
| Code section
*--------------------------------------------------------------------------------------------------------------------------*/
CODE
{
/* Initialize local variables */
pCliContext = &g_pContext->CliContext;
/* Update adapter count */
Result = TBXPoolOfBuffersGetUsage( g_pContext->hPoolOfAdapters, &un32NbFreeBuffers, &un32NbUsedBuffers);
if( TBX_RESULT_FAILURE( Result ) == TBX_TRUE )
{
TBX_EXIT_ERROR( TBX_RESULT_OUT_OF_MEMORY, 0, "Failed to get usage of pool of adapter buffers!" );
}
pCliContext->un32AdaptersCount = un32NbUsedBuffers;
/* Update adapter index */
for( un32Index = 0; un32Index < pCliContext->un32AdaptersCount; un32Index++ )
{
pAdapterContextNode = TBXPoolOfBuffersFindBufferByIndex( g_pContext->hPoolOfAdapters, un32Index);
if( pAdapterContextNode && pAdapterContextNode->pAdapterContext->State != VOIP_ADAPTER_STATE_NOT_USED )
{
pAdapterContext = pAdapterContextNode->pAdapterContext;
break;
}
}
if( un32Index >= pCliContext->un32AdaptersCount )
{
pCliContext->pActiveAdapterContext = NULL;
pCliContext->un32AdapterIndex = 0;
}
else
{
pCliContext->pActiveAdapterContext = pAdapterContext;
pCliContext->un32AdapterIndex = un32Index;
}
/* Update the display selection */
pCliContext->un32DisplayCount = 0;
/* Main display always present */
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_MAIN;
pCliContext->un32DisplayCount++;
/* Check for connection information display */
if( g_pContext->CurrentConfig.fShowConnectionInfoDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_CONNECTION_INFO;
pCliContext->un32DisplayCount++;
}
/* Check for stream information display */
if( g_pContext->CurrentConfig.fShowStreamInfoDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_STREAM_INFO;
pCliContext->un32DisplayCount++;
}
/* Check for trunk information display */
if( g_pContext->CurrentConfig.fShowTrunkInfoDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_TRUNK_INFO;
pCliContext->un32DisplayCount++;
}
/* Check for prompt information display */
if( g_pContext->CurrentConfig.fShowPromptInfoDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_PROMPT_INFO;
pCliContext->un32DisplayCount++;
}
/* Check for prompt information display */
if( g_pContext->CurrentConfig.fShowRawDataFileInfoDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_RAW_DATA_FILE_INFO;
pCliContext->un32DisplayCount++;
}
/* Check for BERT information display */
if( g_pContext->CurrentConfig.fShowBertInfoDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_BERT_INFO;
pCliContext->un32DisplayCount++;
}
/* Check for trunk resource map display */
if( g_pContext->CurrentConfig.fShowTrunkResMapDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP;
pCliContext->un32DisplayCount++;
}
/* Check for trunk resource map display */
if( g_pContext->CurrentConfig.fShowTrunkResInvMapDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP;
pCliContext->un32DisplayCount++;
}
/* Check for packet type graph display */
if( g_pContext->CurrentConfig.fShowPacketTypeGraphDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_PACKET_TYPE_GRAPH;
pCliContext->un32DisplayCount++;
}
pCliContext->un32DisplayIndex = 0;
/* Check for trunk resource map and packet type graph display */
if( g_pContext->CurrentConfig.fShowTrunkResMapAndPacketTypeGraphDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_MAP_AND_PACKET_TYPE_GRAPH;
pCliContext->un32DisplayCount++;
}
pCliContext->un32DisplayIndex = 0;
/* Check for trunk resource inverted map and packet type graph display */
if( g_pContext->CurrentConfig.fShowTrunkResInvMapAndPacketTypeGraphDisplay == TBX_TRUE )
{
pCliContext->aDisplay[pCliContext->un32DisplayCount] = VOIP_CLI_DISPLAY_TYPE_TRUNK_RES_INV_MAP_AND_PACKET_TYPE_GRAPH;
pCliContext->un32DisplayCount++;
}
pCliContext->un32DisplayIndex = 0;
/* Pass new settings to TBX CLI Tools */
{
TBX_CLI_TOOLS_INIT_PARAMS CliToolsInitParams;
/* Get the current parameters of the TBX Cli Tools */
TbxCliToolsGetParams( pCliContext->hCliTools, &CliToolsInitParams, NULL, NULL );
/* Set the new parameters of the TBX Cli Tools */
CliToolsInitParams.TraceLevelStdout = g_pContext->CurrentConfig.TraceLevelStdout;
CliToolsInitParams.TraceLevelLogFile = g_pContext->CurrentConfig.TraceLevelLogFile;
CliToolsInitParams.un32MaxRefreshDelay = g_pContext->CurrentConfig.un32MinRefresh;
strncpy( CliToolsInitParams.szLogFileName, g_pContext->CurrentConfig.szLogFileName, sizeof(CliToolsInitParams.szLogFileName) );
CliToolsInitParams.szLogFileName[ sizeof(CliToolsInitParams.szLogFileName) - 1 ] = '\0';
TbxCliToolsSetParams( pCliContext->hCliTools, &CliToolsInitParams );
}
/* End of the code (skip to cleanup) */
TBX_EXIT_SUCCESS (TBX_RESULT_OK);
}
/*---------------------------------------------------------------------------------------------------------------------------
| Error handling section
*--------------------------------------------------------------------------------------------------------------------------*/
ERROR_HANDLING
{
TbxCliToolsLogPrint(
pCliContext->hCliTools,
TRACE_LEVEL_ERROR, NULL,
"VoipCliTraceLevel: %s (Result 0x%08X, %s, line %d)\n",
TBX_ERROR_DESCRIPTION,
(int)TBX_ERROR_RESULT,
__FILE__,
TBX_ERROR_LINE);
}
/*---------------------------------------------------------------------------------------------------------------------------
| Cleanup section
*-------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -