📄 compare.c~
字号:
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 + -