亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cli_main.c

?? 在freescale 的ne64上開發的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include <string.h>
#include <stdio.h>
#include <stdlib.h> /*atoi*/
#include "cli_lib.h"
#include "hw_api.h"
#include "timers.h"

UINT8 cmd_node  = 0;/*node mode*/
UINT8 cmd_part  = 1;/*how many keyworks in the command*/
UINT8 character_num = 0;/*command char num*/
UINT32 timeout_times  = 0;/*time out times*/
UINT8 cli_reset  = 0;/*cli reset flag*/
UINT8 password_retry  = 0;
UINT32 serialNum=0;
UINT32 random_number  = 0;
UINT8 hostname[16]={'F','e','n','g','i','n','e',0};
UINT8 password[8] ={'1','2','3','4','5',0,0,0};
UINT8 command[CMD_MAX_LEN+1]; /*buffer for store command*/
/*tinyang*/
UINT8 cmd_index[5];/*store preview command*/
UINT8 cmd_point = 0;
UINT8 cmd_full = 0;
UINT8 current_point = 0;
UINT8 *cmd[CMD_MAX_PART];
UINT8 cli_timer;

const struct tCmdDB cmd_db[]={

	{"help", "Help commands of current node\n", ALL_NODE,1,list_cmd},
	//{"list", "List commands of current node\n", ALL_NODE,1,list_cmd},
	//{"end", "End current node command\n", ALL_NODE,1,end_cmd},
	//{"exit", "Exit from current node\n",ALL_NODE,1,quit_cmd},
	{"quit", "Quit from current node\n",ALL_NODE,1,quit_cmd},
	{"config", "Enter config node\n", SHOW_NODE,1,config_cmd},
	{"show running-config", "Show information\nRunning configuration\n",SHOW_NODE,2,show_run_cmd},
	{"show startup-config", "#\nStartup configuration\n",SHOW_NODE,2,show_start_cmd},
	{"show interface", "#\nInterface infomation\n",SHOW_NODE,2,show_if_cmd},
	{"show interface statistics", "#\n#\nStatistics",SHOW_NODE,3,show_if_statis_cmd},
	{"show version", "#\nVersion information\n",SHOW_NODE,2,show_version_cmd},
	{"show system", "#\nsystem information\n",SHOW_NODE,2,show_system_cmd},
	{"show log", "#\nsystem log\n",SHOW_NODE,2,show_log_cmd},
	{"ping <A.B.C.D> ", "ping\nip address\n",ALL_NODE, 2,ping_host},
	{"reboot", "Reboot System", ALL_NODE,1,reboot_cmd},
	{"write file", "Write to nvram\nSave file", CONFIG_NODE,2,write_file_cmd},
	{"erase startup-config", "Erase configuration\nErase startup configuration",CONFIG_NODE,2,erase_file_cmd},
	{"hostname <HOSTNAME>", "Config hostname\nhostname string\n",CONFIG_NODE,2,hostname_cmd},
	{"password <PASSWORD>", "Config password\npassword string\n",CONFIG_NODE,2,password_cmd},
	{"description <STRING>", "Device description\nDescription String\n",CONFIG_NODE, 2, device_descr_cmd},
	{"ip-address <A.B.C.D> <A.B.C.D>","ip address\naddress,such as 192.168.1.1\nnetmask such as 255.255.255.0\n",CONFIG_NODE,3,set_ipaddress_cmd},
	{"gateway <A.B.C.D>","Config gateway\ngateway addrss,such as 192.168.1.254\n",CONFIG_NODE,2,set_gateway_cmd},
	{"no ip-address", "no\nip-address,snmp config invalid\n",CONFIG_NODE, 2,no_ip_address},

	/*add snmp config command*/
	{"snmp trap-server <1-5> <A.B.C.D> <1-65535>", "snmp\ntrap-server\nserver ID\nTrap server address\nTrap server port\n",CONFIG_NODE, 5,set_snmp_trap},
	{"snmp trap-server <1-5> <A.B.C.D>", "#\n#\n#\n#\ndefault is 162\n",CONFIG_NODE, 4,set_snmp_trap},
	{"no snmp trap-server <1-5>", "#\nsnmp\ntrap-server\nserver ID\n",CONFIG_NODE, 4,no_set_trap},
	{"snmp community <1-5> <community> (ro|rw)", "#\ncommunity\nID\ncommunity name\nread-only or read_write\n",CONFIG_NODE, 5,set_snmp_community},
	{"no snmp community <1-5>", "#\n#\ncommunity\ncommunity ID\n",CONFIG_NODE, 4,no_set_community},
#if 1
	/*assign vlan id command*/
	{"management vlan <0-4095> <0-4095>", "Management vlan\nvlan ID\nfirst vlan ID, 0: no first vlan tag\nsecond vlan ID,0:no second vlan tag\n",CONFIG_NODE, 4,set_manager_vid},
	{"lfp enable", "LFP(link fault pass-through) config\nenable\n",CONFIG_NODE, 2 ,lfp_enable_cmd},
	{"lfp disable", "#\ndisable\n",CONFIG_NODE, 2 ,lfp_disable_cmd},
	{"fef enable", "FEF(far end fault) config\nenable\n",CONFIG_NODE, 2 ,fef_enable_cmd},
	{"fef disable", "#\ndisable\n",CONFIG_NODE, 2 ,fef_disable_cmd},
	{"dot3ah enable", "dot3ah OAM\ndot3ah OAM enable\n",CONFIG_NODE, 2, dot3ah_enable_cmd},
	{"dot3ah disable", "#\ndot3ah OAM disable\n",CONFIG_NODE, 2, dot3ah_disable_cmd},
	{"dot3ah port <1-2>", "#\nOAM port\nport, 1 or 2\n",CONFIG_NODE, 3, dot3ah_port_cmd},	
#endif
#if 1
	{"port <LIST> shutdown","Port config\nPortList:such as 1,2 or 1-2\nShutdown port\n",CONFIG_NODE, 3 ,port_shutdown_cmd},
	{"port <LIST> no-shutdown","#\n#\nNo-shutdown Port\n",CONFIG_NODE,3, port_no_shutdown_cmd},
	{"port <LIST> full enable", "#\n#\nFull duplex\nAuto-nego enable\n",CONFIG_NODE, 4, port_full_enable_cmd},
	{"port <LIST> full disable", "#\n#\n#\nAuto-nego disable\n",CONFIG_NODE, 4, port_full_disable_cmd},
	{"port <LIST> half enable", "#\n#\nHalf duplex\nAuto-nego enable\n",CONFIG_NODE, 4, port_half_enable_cmd},
	{"port <LIST> half disable", "#\n#\n#\nAuto-nego disable\n",CONFIG_NODE, 4, port_half_disable_cmd},
	{"port <LIST> speed (10|100|1000)", "#\n#\nPort Speed\n10M,100M or 1000M\n",CONFIG_NODE, 4, port_speed_cmd},
	{"port <LIST> rate-tx <0-3907>", "#\n#\nRate-tx\n0:No-limit,1-3907:n*64Kbps\n",CONFIG_NODE, 4 ,port_rate_tx_cmd},
	{"port <LIST> rate-bcast <0-3907>", "#\n#\nBroadcast strom control\n0:No-limit,1-3907:n*64Kbps\n",CONFIG_NODE, 4 ,port_rate_bcast_cmd},
	{"port <LIST> rate-m-bcast <0-3907>", "#\n#\nMulti-broadcast strom control\n0:No-limit,1-3907:n*64Kbps\n",CONFIG_NODE, 4 ,port_rate_mbcast_cmd},
	{"port <LIST> flowcontrol enable", "#\n#\nFlow control\nenable\n",CONFIG_NODE, 4 ,port_flow_enable_cmd},
	{"port <LIST> flowcontrol disable", "#\n#\n#\ndisable\n",CONFIG_NODE, 4 ,port_flow_disable_cmd},
#endif
#if 1
	{"show reg <0-31> <0-31>", "show\nchip reg\nphy addr\nreg addr\n",SHADOW_NODE,4,show_reg_cmd},
	{"set reg <0-31> <0-31> <0x0-0xFFFF>", "set\nchip reg\nphy addr\nreg addr\nvalue\n",SHADOW_NODE,5,set_reg_cmd},
	//{"show mcu <0x0-0xFFFF>", "#\nmcu reg\nreg addr\n",SHADOW_NODE,3,show_mcureg_cmd},
	//{"set mcu <0x0-0xFFFF> <0x0-0xFF>", "#\nmcu reg\nreg addr\nvalue\n",SHADOW_NODE,4,set_mcureg_cmd},
	{"mac (AA:BB:CC:DD:EE:FF)","Config mac address\nmac address:such as 00:04:67:00:00:01 or 00.04.67.00.00.01\n",SHADOW_NODE,2,set_mac_cmd},
	{"port <LIST> <1-2> <1-3> <1-4> <0-4096>", "PortConfig\nPortList\n1-twoFiber,2-singleFiber\n1-multiMode,2-singleMode,3-cwdmWave\n1-SC,2-FC,3-ST,4-LC\ndistance",SHADOW_NODE, 6, port_info_cmd},
	{"port <LIST> <0-4096> <0-4096>", "#\n#\nfiber tx wavelength\nfiber rx wavelength\n",SHADOW_NODE, 4, port_wavelength_cmd},
/*	{"show mac","#\nmac address\n",SHADOW_NODE,2,show_mac_cmd},*/
	{"dot3ah mode active", "dot3ah OAM\nOAM mode\nactive mode\n",SHADOW_NODE, 3, dot3ah_active_cmd},
	{"dot3ah mode passive", "#\n#\npassive mode",SHADOW_NODE, 3, dot3ah_passive_cmd},
	{"show dot3ah", "#\ndot3ah information\n",SHADOW_NODE, 2, show_dot3ah_cmd},
	{"debug <0-512>", "Display debug information",SHADOW_NODE, 2, debug_cmd},
#endif
	{0,0,0,0,0},
};

void cli_timer_task(void);

extern UINT8 waitInput;
extern UINT16 debug;

/********Function of taskDelay ******************/
void taskDelay(UINT32 time)
{
    UINT32 i, j;
    for(i = 0; i < time; i ++)
    {
        for (j = 0; j < 7; j ++);
    }
}

/********Function of print_motd ******************/
void  print_motd(void)
{
	printf("\n\r");
	printf("          ");
	printf("********************************************\n\r");printf("          ");
	printf("*          F-engine OL100CR  V1.3          *\n\r");printf("          ");
	printf("*                                          *\n\r");printf("          ");
	printf("*  Copyright 2001-2006 FiberHome Networks  *\n\r");printf("          ");
	printf("********************************************\n\r");
	printf("User Access Verification\n\r");	
}
/********Function of store_cmd ******************/
void restore_cmd(UINT8 mode)
{
	UINT8 index;
	UINT8 i;
	if(mode == PREVIEW_CMD)
	{
		if(current_point == 0)
		{
			if(cmd_full == 1)
				current_point = 4;
			else if(cmd_point == 0)
				return;
			else
				current_point = cmd_point -1;
		}
		else
			current_point--;
		index = cmd_index[current_point];
		
	}
	#if 0
	else if(mode == NEXT_CMD)
	{
		if(current_point == 4)
		{
			if(cmd_full == 1)
				current_point = 0;
			else
				return;
		}
		else
			current_point++;
		index = cmd_index[current_point];
	}
	#endif
	printf(cmd_db[index].cmd_str);
	strcpy(command,cmd_db[index].cmd_str);
	character_num=strlen(command);

	cmd_part=1;
	for(i=0;i<character_num;i++)
	{
		if(command[i]==BLANK_CHAR)
		{	
			cmd_part++;			
		}
	}
}
/********Function of prompt_node ******************/
void  prompt_node(void)
{
	switch(cmd_node)
	{
	case AUTH_NODE1:
		printf("Username:");
		break;
	case AUTH_NODE2:
		printf("Password:");
		break;
	case SHOW_NODE:
		printf(hostname);
		printf("#");
		break;
	case CONFIG_NODE:
		printf(hostname);
		printf("(config)#");
		break;
	case SHADOW_NODE:
		printf(hostname);
		printf("(Super)#");
		break;
	}
}

/********Function of help_command ******************/
void help_command(UINT8 bComplete)
{
	UINT8 i=0;
	UINT8 j=0;
	UINT8 tmp_part=0;
	UINT8 cr_match=0;
	UINT8 match_part=0;
	UINT8 match_cmd=0;
	UINT8 match_idx=0;
	UINT8 *cp;
	UINT8 *dp;
	UINT8 *cp1;
	UINT8 *dp1;
	if(cmd_node==AUTH_NODE1 || cmd_node==AUTH_NODE2)
		return ;
	if(cmd_part>CMD_MAX_PART)
		return ;
	/*split cmd*/
	cmd[0]=command;
	j=1;
	for(i=0;i<character_num;i++)
	{
		if(command[i]==BLANK_CHAR)
		{
			command[i]=0;
			cmd[j]=(command+i+1);
			j++;
		}
	}
	/*found matched command*/
	printf("\n\r");
	match_cmd=0;
	i=0;
	while(cmd_db[i].cmd_str!=0)
	{
		tmp_part=cmd_part;
		if(command[character_num-1]==0)/*if the last char is blank*/
			tmp_part--;
		if((tmp_part>cmd_db[i].cmd_part) ||
			( (cmd_db[i].cmd_node!=cmd_node) &&(cmd_db[i].cmd_node!=ALL_NODE)))
		{
			i++;
			continue;
		}
		match_part=0;
		dp=cmd_db[i].cmd_str;
		for(j=0;j<tmp_part;j++)
		{
			if(strncmp(dp,cmd[j],strlen(cmd[j]))!=0)
			{
				if(dp[0]=='<' || dp[0]=='(')
					match_part++;
				else
					break;
			}
			else
				match_part++;
			cp=strchr(dp,BLANK_CHAR);
			if(cp==NULL)
				break;
			dp=cp+1;
		}
		if(match_part==tmp_part)
		{
			if((tmp_part==cmd_db[i].cmd_part) && (command[character_num-1]==0))
			{
				cr_match++;
				match_cmd++;
			}
			else
			{
				if(command[character_num-1]!=0)
					tmp_part=tmp_part-1;
				dp=cmd_db[i].cmd_str;
				dp1=cmd_db[i].help_str;
				cp=dp;
				cp1=dp1;
				while(tmp_part>0)
				{
					cp=strchr(dp,BLANK_CHAR);
					cp1=strchr(dp1,'\n');
					if(cp==NULL)
						break;
					dp=cp+1;
					dp1=cp1+1;
					tmp_part--;
				}
				if(*dp1!='#')
				{
					match_cmd++;
					match_idx=i;
					printf("  ");
					for(j=0;j<strlen(dp);j++)
					{
						if(*(dp+j)==BLANK_CHAR)
							break;
						printf("%c",*(dp+j));
					}
					for(;j<18;j++)
					{
						printf(" ");
					}
					for(j=0;j<strlen(dp1);j++)
					{
						if(*(dp1+j)=='\n')
							break;
						printf("%c",*(dp1+j));
					}
					printf("\n\r");
				}				
			}
		}
		i++;
	}
	if(cr_match==1)
		printf("  <cr>\n\r");

	if(match_cmd==1 && bComplete==1)
	{
		dp=cmd_db[match_idx].cmd_str;
		cp=dp;
		for(j=0;j<cmd_part-1;j++)
		{
			cp=strchr(dp,BLANK_CHAR);
			if(cp==NULL)
				break;
			dp=cp+1;
		}
		if((command[character_num-1]!=0) && (*dp!='<' && *dp!='('))/*if the last char is blank*/
		{
			for(i=0;i<strlen(dp);i++)
			{
				if(*(dp+i)==BLANK_CHAR)
				{
					break;
				}
				if(cmd[cmd_part-1][i]!=*(dp+i))
				{
					cmd[cmd_part-1][i]=*(dp+i);
					character_num++;
				}
			}
			cmd[cmd_part-1][i]=BLANK_CHAR;
			character_num++;
			cmd_part++;
		}

		//if(strlen(

	}
	/*recover*/
	for(i=0;i<character_num;i++)
	{
		if(command[i]==0)
			command[i]=BLANK_CHAR;
	}
}

/********Function of parse_command ******************/
UINT8 parse_command(void)
{
	UINT8 i=0;
	UINT8 j=0;
	UINT8 match_part=0;
	UINT8 match_cmd=0;
	UINT8 match_idx=0;
	UINT8 *cp;
	UINT8 *dp;	
	if(cmd_node==AUTH_NODE1 || cmd_node==AUTH_NODE2)
		return BAD_CMD;
	/*split command */
	cmd_part=1;
	if(command[character_num-1]==BLANK_CHAR)/*if the last char is blank*/
		cmd_part--;
	cmd[0]=command;
	j=1;
	for(i=0;i<character_num;i++)
	{
		if(command[i]==BLANK_CHAR)
		{
			command[i]=0;
			cmd[j]=(command+i+1);
			cmd_part++;
			j++;
		}
	}
	if(cmd_part>CMD_MAX_PART)
		return BAD_CMD;
	/*found matched command*/
	match_cmd=0;
	i=0;
	while(cmd_db[i].cmd_str!=0)
	{
		if((cmd_part!=cmd_db[i].cmd_part) ||
			( (cmd_db[i].cmd_node!=cmd_node) &&(cmd_db[i].cmd_node!=ALL_NODE)))
		{
			i++;
			continue;
		}
		match_part=0;
		dp=cmd_db[i].cmd_str;
		for(j=0;j<cmd_part;j++)
		{
			if(strncmp(dp,cmd[j],strlen(cmd[j]))!=0)
			{
				if(dp[0]=='<' || dp[0]=='(')

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区在线观看| 亚洲一级在线观看| 蜜臀a∨国产成人精品| 91黄色免费看| 日韩理论电影院| 国产乱子轮精品视频| 日韩天堂在线观看| 视频一区国产视频| 色久综合一二码| 18欧美亚洲精品| 一本一道综合狠狠老| 国产精品天天看| 99久久er热在这里只有精品15 | 久久精品国产一区二区| 欧美精品精品一区| 水蜜桃久久夜色精品一区的特点| 色av成人天堂桃色av| 中文字幕不卡在线播放| 懂色av一区二区在线播放| 国产午夜亚洲精品午夜鲁丝片| 韩国视频一区二区| 亚洲精品国产精华液| 99国产精品久久| 亚洲日本中文字幕区| 日本韩国精品在线| 亚洲午夜久久久久中文字幕久| 91久久奴性调教| 午夜亚洲福利老司机| 欧美一级理论片| 国产老女人精品毛片久久| 26uuu精品一区二区三区四区在线| 国产一区高清在线| 国产精品天天看| 色拍拍在线精品视频8848| 亚洲视频综合在线| 欧美日韩精品欧美日韩精品| 蜜臀a∨国产成人精品| 国产免费久久精品| 91原创在线视频| 日韩高清在线观看| 久久久噜噜噜久久中文字幕色伊伊| 国产成人超碰人人澡人人澡| 综合久久国产九一剧情麻豆| 欧美日韩一区久久| 国产精品一级二级三级| 亚洲日本电影在线| 日韩一区二区在线看| 久久精品99国产精品| 精品国产一区久久| 成人美女在线视频| 丝袜美腿亚洲色图| 亚洲影视在线播放| 精品福利二区三区| 91香蕉国产在线观看软件| 热久久国产精品| 中文字幕一区二区三| 欧美一区二区视频在线观看| 福利一区福利二区| 日韩精品一卡二卡三卡四卡无卡| 26uuu欧美| 在线视频一区二区三| 麻豆精品国产传媒mv男同| 亚洲欧美偷拍卡通变态| 日韩欧美一级片| 欧洲一区在线电影| 狠狠色狠狠色合久久伊人| 伊人婷婷欧美激情| 国产午夜精品美女毛片视频| 欧美无乱码久久久免费午夜一区| 国产一区二区美女诱惑| 亚洲成人av一区二区三区| 2欧美一区二区三区在线观看视频| 91极品视觉盛宴| 国产在线乱码一区二区三区| 综合色天天鬼久久鬼色| 久久久久一区二区三区四区| 欧美一区中文字幕| 91成人免费网站| 成人免费观看av| 高清在线成人网| 精品在线你懂的| 视频一区欧美精品| 亚洲成人一区在线| 亚洲免费在线视频| 国产精品色在线| 国产免费久久精品| 久久精品欧美一区二区三区不卡| 日韩一区二区在线看片| 91视频com| 成熟亚洲日本毛茸茸凸凹| 奇米影视一区二区三区小说| 丝袜美腿亚洲色图| 亚洲精品中文在线影院| 日韩一区在线播放| 国产精品国产三级国产aⅴ原创| 久久综合久久鬼色中文字| 日韩精品最新网址| 欧美一级高清片在线观看| 欧美久久久久久久久中文字幕| 91成人国产精品| 欧美丝袜丝交足nylons| 欧洲av一区二区嗯嗯嗯啊| 欧洲亚洲国产日韩| 欧美亚洲一区三区| 97精品电影院| 国产毛片精品一区| 成人自拍视频在线| 国产精品一区2区| 国产999精品久久久久久| 成人中文字幕电影| 91片在线免费观看| 在线观看精品一区| 欧美一卡二卡在线| 久久品道一品道久久精品| 日本一区二区三区国色天香| 亚洲bt欧美bt精品777| 日本亚洲免费观看| 国产乱码精品一区二区三| 成人黄色网址在线观看| 色诱视频网站一区| 欧美日韩国产一级片| 不卡电影免费在线播放一区| 成人黄页在线观看| 欧美性大战久久| 91精品国产综合久久婷婷香蕉| 精品裸体舞一区二区三区| 中文字幕成人在线观看| 亚洲男人的天堂网| 日本视频中文字幕一区二区三区| 韩国欧美一区二区| 91片黄在线观看| 欧美一区二区三区播放老司机| 9191国产精品| 久久综合一区二区| 国产目拍亚洲精品99久久精品| 亚洲欧美色图小说| 麻豆精品久久久| 91猫先生在线| 久久久久久亚洲综合影院红桃| 亚洲欧美日韩一区| 久久99国产精品尤物| 色呦呦网站一区| 欧美不卡一二三| 综合激情网...| 麻豆国产91在线播放| 99久久精品费精品国产一区二区 | 99精品视频一区| 91精品国产免费久久综合| 国产欧美精品在线观看| 亚洲一区二区三区小说| 亚洲福利一二三区| 成人av电影观看| 日韩一二三四区| 樱花影视一区二区| 国产福利电影一区二区三区| 在线播放一区二区三区| 最新国产の精品合集bt伙计| 久久99精品久久久久久| 欧美亚洲精品一区| 中文字幕第一区| 天使萌一区二区三区免费观看| 91女人视频在线观看| 久久午夜色播影院免费高清| 婷婷久久综合九色国产成人| 91毛片在线观看| 国产精品高清亚洲| 国产高清亚洲一区| 欧美一区二区观看视频| 亚洲1区2区3区4区| 色综合色狠狠天天综合色| 国产女同性恋一区二区| 韩国欧美国产一区| 欧美一区二区高清| 日日夜夜精品免费视频| 欧美偷拍一区二区| 自拍偷拍亚洲综合| 丁香五精品蜜臀久久久久99网站| 精品999在线播放| 日韩高清一级片| 精品视频一区二区三区免费| 亚洲午夜在线电影| 色综合天天在线| 亚洲成人中文在线| 日韩欧美电影在线| 国产高清精品网站| 亚洲欧美偷拍卡通变态| 欧美日本一区二区三区四区| 日本欧美肥老太交大片| 国产亚洲女人久久久久毛片| 99r国产精品| 石原莉奈在线亚洲二区| 精品久久一二三区| 成人手机在线视频| 亚洲一二三区视频在线观看| 日韩免费成人网| 色综合天天综合网天天看片| 日一区二区三区| 国产欧美日产一区| 欧美日韩国产另类不卡| 黄网站免费久久|