⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compare.c~

📁 基于嵌入式linux的命令行接口
💻 C~
📖 第 1 页 / 共 4 页
字号:
        	if(s[ErrorPos] == '\0')
        	{
            		break;
        	}
        	else
       	{
            		if (splitWord(s, retWord, &ErrorPos) ==ERROR)
            		{
                		ErrorPos = ErrorPosTmp;
            		}
            		ppHead = ppHead->son;
        	}
    	}

    	listDeep = 0;
    	ppHeadTmp = ppHead;
    	while(1)
    	{
        	//如果结点的也满足要求
        	nodeStatus = nodeChk(retWord, ppHeadTmp);
        	if ((nodeStatus == WORD_EXIST)||(nodeStatus == VARIABLE_WORD))
        	{
            		ppHeadTmp = nodeJmp(retWord, ppHeadTmp, nodeStatus);
            
            		//0xff表示不是完整的命令,有子关键字
            		if (ppHeadTmp->command_number == 0xff)
            		{
                		GainRemainWords(ppHeadTmp->son);
            		}
            		else
            		{
                		command = &commandList[ppHeadTmp->command_number];
                		printf("\n%s", command->cmdString);
            		}

            		//比较下一个brother结点
            		if (ppHeadTmp->brother == NULL)
            		{
                		break;
            		}
            		ppHeadTmp = ppHeadTmp->brother;
        	}
        	else
        	{
            		//退出
            		break;
        	}
    	}
}


/*******************************************************************************
函数:cmdSchedule
功能:任务调度
参数:
    输入--command_number:命令号
    输出--
返回:
描述:
*******************************************************************************/
UINT8 cmdSchedule(UINT8 command_number)
{
    	//UINT32 numberLong;
    	UINT16 number = 0;
    	UINT32 ports = 0;
    	//UINT8 flg;
    	//UINT8 arrryData[6];

    	const struct  cmd_entry *command;

    	command = &commandList[command_number];

    	//如果当前用户为SuperUsrName才允许测试命令的使用
    	if ((strcmp(userLogin, SuperUsrName) != 0)&&(command->cmdEna == 0))
    	{
         	command_number = 0xff;
    	}
        
    	switch(command_number)
    	{
        	/* clear */
        	/* 清屏*/
        	case CMD_CLEAR:
            	clear();
            	break;

        	/* help */
        	/* 帮助*/
        	case CMD_HELP:
            		sysHelp();
            		break;

        	/* list */
        	/* 显示所有的命令*/
        	case CMD_LIST:
            	list();
            	break;

        	/* logout */
        	/* 用户退出*/
        	case CMD_LOGOUT:
            	return LOGOUT;

        	/* reset */
        	/* 交换机复位,恢复所有的默认配置,并重启*/
        	case CMD_RESET:
            	printf("CMD_RESET\n");
            	break;

        	/* show message */
        	/* 显示系统信息*/
        	case CMD_SH_SYS_MESS:
            	sysMsgShow();
            	break;

        	/* config broadstorm [on] [off]*/
        	/* 设置广播抑制*/
        	case CMD_BCS_CONF:
            	number = strToNum(variable_string[0]);
            	//numberLong = strToNum(variable_string[1]);
            	//setBroadcast(number);
            	break;

        	/* config logout_time [value] */
        	/* 配置用户超时时间*/
        	case CMD_IDLE_SET:
            	number = strToNum(variable_string[0]);
            	setLogoutTime(number);
            	break;

        	/* create vlan [vlannumber] */
        	/* 创建新的vlan*/
        	case CMD_VLAN_CREATE:
            	number = strToNum(variable_string[0]);
            	//vlanCreate(number);
				printf("CMD_VLAN_CREATE\n");
            	break;

        	/* delete vlan [all|vlannumber] */
        	/* 删除vlan*/
       		case CMD_VLAN_DEL:
				printf("CMD_VLAN_DEL\n");
				break;

        	/* show vlan [all|vlannumber] */
        	/* 显示vlan信息*/
			case CMD_VLAN_SHOW:
				printf("CMD_VLAN_SHOW\n");
				break;

        	/* config port [all|portlist] enable [enable|disable] */
        	/* 允许或禁止端口*/
        	case CMD_PORT_ENA:
            	printf("CMD_PORT_ENA\n");
            	break;

        	/* show port [all|portlist] status */
        	/* 显示端口信息*/
        	case CMD_PORT_SHOW:
            	printf("CMD_PORT_SHOW\n");
            	break;

        	/* config port [all|portlist] speed [100|10] */
        	/* 配置端口速率*/
        	case CMD_PORT_SPEED:
            	printf("CMD_PORT_SPEED\n");
            	break;

        	/* config port [all|portlist] duplex [full|half] */
        	/* 配置端口双工*/
        	case CMD_PORT_DUP:
            	printf("CMD_PORT_DUP\n");
            	break;

        	/* config port [all|portlist] auto [enable|disable] */
        	/* 端口自动速率和双工检测的允许或禁止*/
        	case CMD_PORT_AUTO:
            	printf("CMD_PORT_AUTO\n");
            	break;

#if 0 /*这个功能没有使用*/
        	/* config port [all|portlist] lock [enable|disable] */
        	case CMD_PORT_LOCK:			
				printf("\r\nwys 这个功能这个版本没有实现。\r\n");	
            	break;
#endif
        	/* config port [all|portlist] flow [enable|disable] */
        	case CMD_PORT_FLOW:
            	printf("CMD_PORT_FLOW\n");
            	break;

        	/* config port [all|portlist] tag [tag|untag] */
        	case CMD_PORT_TAG:
            	printf("CMD_PORT_TAG\n");
            	break;

        	/* config port [all|portlist] pvid [pvidnumber]; */
        	/* 配置端口的pvid*/
        	case CMD_PORT_PVID:
            	printf("CMD_PORT_PVID\n");
            	break;

#if 0 /*这个功能没有使用*/
        	/* config port [all|portlist] priority [portbase|vlan|tos] */
        	case CMD_PORT_PRIOR:
				printf("\r\nwys 这个功能这个版本没有实现。\r\n");	
            	break;
#endif					

#if 0 /*这个功能没有使用*/
        	/* config port [all|portlist] portbase_priority [high|low] */
        	case CMD_PORT_BASE_PRI:
				printf("\r\nwys 这个功能这个版本没有实现。\r\n");		
            	break;
#endif

#if 0 /*这个功能没有使用*/
        	/* config port [7-8|15-16] trunk [enable|disable] */
        	case CMD_TRUNK_EN:
				printf("\r\nwys 这个功能这个版本没有实现。\r\n");		
            	break;
#endif
        	/* config vlan [vlannumber] [add|delete] port [all|portlist] */
        	/* 在vlan中添加端口*/
        	case CMD_VLAN_SET_PORT:
            	printf("CMD_VLAN_SET_PORT\n");
            	break;

        	/* config agingtime [times] */
        	/* 配置老化时间*/
        	case CMD_AGING_TIME_SET:
            	printf("CMD_AGING_TIME_SET\n");
            	break;

        	/* show regValue [address] */
        	/* 交换芯片的寄存器的读操作*/
        	case CMD_MACR_SHOW:
            	printf("CMD_MACR_SHOW\n");
            	break;

        	/* write regvalue [address] [value] */
        	/* 交换芯片的寄存器的写操作*/
        	case CMD_MACR_WRITE:
            	printf("CMD_MACR_WRITE\n");
            	break;

        	/* show phyregvalue [port] [address] */
        	/* 物理芯片的寄存器的读操作*/
        	case CMD_PHYR_SHOW:
            	printf("CMD_PHYR_SHOW\n");
            	break;

        	/* write phyregvalue [port] [address] [value] */
        	/* 物理芯片的寄存器的写操作*/
        	case CMD_PHYR_WRITE:
            	printf("CMD_PHYR_WRITE\n");
            	break;

        	/* config vlan [vlannumber] [add|delete] tag [all|taglist] */
        	/* 在特定vlan中的存在的端口修改该端口的tag状态*/
        	case CMD_VLAN_SET_TAG:
            	printf("CMD_VLAN_SET_TAG\n");
            	break;

#if 0 /*这个功能没有使用*/
        		/* load new os */
        		/* 升级新的操作系统*/
        	case CMD_LOAD_OS:
            	printf("\r\nwys 这个版本现在不支持这个功能\r\n");
            	break;
#endif
        	/* show mac_address */
        	/* 显示指定类型的mac地址*/
        	case CMD_FDB:
            	printf("CMD_FDB\n");
            	break;

        	/* modify host mac_address [xx:xx:xx:xx:xx:xx] */
        	/* 修改交换芯片的mac地址*/
        	case CMD_HOSTMAC_SET:
            	printf("CMD_HOSTMAC_SET\n");
            	break;

        	/* eeprom test [address] [data] */
        	/* 外部EEPROM的读写操作*/
        	case CMD_EE_TEST:
            	printf("CMD_EE_TEST\n");
            	break;

        	/* eeprom write [address] [data] */
        	/* 外部EEPROM的写操作*/
        	case CMD_EE_WRITE:
            	printf("CMD_EE_WRITE\n");
           		break;

        	/* eeprom read [address] */
        	/* 外部EEPROM的读操作*/
        	case CMD_EE_READ:
            	printf("CMD_EE_READ\n");
            	break;

        	/* eeprom delay [time] */
        	/* 外部EEPROM的延时时间设置*/
        	case CMD_EE_DELAY:
            	number = strToNum(variable_string[0]);
            	printf("CMD_EE_DELAY\n");
            	break;

        	/* eeprom erase all */
        	/* 外部EEPROM的擦除*/
        	case CMD_EE_ERASE:
            	printf("CMD_EE_ERASE\n");
            	break;

        	/* save */
        	/* 交换机配置的保存*/
        	case CMD_SAVE:
				printf("CMD_SAVE\n");
            	break;
            
        	/* reboot */
        	/* 交换机的重启*/
        	case CMD_REBOOT:
           		//reboot();
				printf("CMD_REBOOT\n");
            	break;
            
        	/*  show all macreg */
        	/* 显示所有的mac寄存器*/
        	case CMD_MACR_SHOW_ALL:
           		printf("CMD_MACR_SHOW_ALL\n");
            	break;
            
        	/* mac insert [xx-xx-xx-xx-xx-xx] [port] [FID]*/
        	/* 往MAC表手动添加一个地址*/
        	case CMD_MACADDR_INSERT:	
    			commonMsgPrint(17,TRUE);
				printf("CMD_MACADDR_INSERT\n");
				break;					
        	/*show all [port] phyreg*/
        	/*显示端口port的所有寄存器*/
        	case CMD_PHYREG_SHOW:
            	number = strToNum(variable_string[0]);
            	printf("CMD_PHYREG_SHOW\n");
            	break;

        	case CMD_DEBUG_ENA:
            	printf("CMD_DEBUG_ENA\n");
            	break;
        
        	/*globe pvid [pvid]*/
        	case CMD_GLBPVID_SET:
            	printf("CMD_GLBPVID_SET\n");
            	break;

        	/*isolate [uplinkport]*/
        	case CMD_ISOLATE:
            	printf("CMD_ISOLATE\n");
            	break;

        	/*config switchname*/
        	case CMD_SWITCHNAME_SET:
            	printf("CMD_SWITCHNAME_SET\n");
            	break;

        	/*config gnlink [enable|disable]*/
        	case CMD_GNLINK_ENABLE:
            	printf("CMD_GNLINK_ENABLE\n");
            	break;
            
        	//config user [name]
        	case CMD_USER_CONFIG:
            	printf("CMD_USER_CONFIG\n");
            	break;

        	/* 删除指定类型的mac地址*/
        	case CMD_MAC_DEL:
            	printf("CMD_MAC_DEL\n");
            	break;

        	/* 测试所有链接上的端口*/
        	case CMD_PORT_TEST:
            	printf("CMD_PORT_TEST\n");
            	break;
					
#if 0 /*不能使用,否则会影响绑定*/
        	/* 测试所有链接上的端口*/
        	case CMD_HUB:
           		number = enableJudge(variable_string[0]);
            		if (number == NONE_BOTH_ABLE)
            		{
                		commonMsgPrint(17,TRUE);
            		}
            		else
            		{
                		macLrnEna((UINT8)number);
            		}
            		break;
#endif
            
        	default:
            		commonMsgPrint(19,TRUE);
	            	break;
    	}
		
    	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -