📄 mymain.c
字号:
//**********************************************************************************
//杨屹 2002/08/21 第一版
//我的主程序(SNMP网管板)
//联系方法:gdtyy@ri.gdt.com.cn(2003/07/31以前有效)
//**********************************************************************************
//使用方法:
//mymain.h+word.h
//**********************************************************************************
#include <general.h>
//#include <string.h>
//#include <serial.h>
//#include <word.h>
//#include <ethernet.h>
//#include <mymain.h>
//#include <mystring.h>
//#include <myshell.h>
//#include <timer0.h>
//#include <SerEEROM.h>
/*
void CfgHost(WORDTABLE *WordTable);
void CfgGateway(WORDTABLE *WordTable);
void CfgMask(WORDTABLE *WordTable);
void CfgSnmpHost(WORDTABLE *WordTable);
void PrintARPtable(WORDTABLE *WordTable);
void PrintConfig(WORDTABLE *WordTable);
void PingCommand(WORDTABLE *WordTable);
void UDPCommand(WORDTABLE *WordTable);
void CfgMacAddress(WORDTABLE *WordTable);
void ListTxBuf(WORDTABLE *WordTable);
*/
//void maincycle(void);
//long int secondtimer=0;
main()
{
static unsigned char ComTable[MaxComNum][MaxLenCom+1]={"rdp","wrbs","wdx","rdx","wxr","clr","help",
"exit","rxr","erase66","rd66","wd66","rdb66","host","gateway","mask","snmphost","ls",
"lc","ping","udp","macadr","lt"};
int State=StatInputCom;
unsigned char ch;
int ShellEnd=0; /*Shell end flag*/
unsigned char ComBuf[MaxLenComBuf+1]; /*store '\0'*/
int i=-1; /*ComBuf pointer*/
int tem; /*Temp variable*/
int ComMatchFlag=0; /*Command match flag*/
WORDTABLE WordTable;
int Matched=0; /*Match flag*/
InitSerial();
InitSerialBuffer();
initport();
initsck();
ne2000init();
InitArpTable();
InitTxBuf();
userInit();
clrscr();
PrintStr("\t\t***********************************************\n");
PrintStr("\t\t* Welcom to use this program *\n");
PrintStr("\t\t* Author:YangYi 20020715 *\n");
PrintStr("\t\t***********************************************\n\n\n");
/*Login & Password*/
PrintStr("% ");
while(!ShellEnd){
switch(State){
case StatInputCom:{
if(yygetch(&ch)){
if(ch==13) /*Enter return key*/
{
PrintStr("\n");
ComBuf[i+1]='\0';
if(i+1==0) PrintStr("% ");
else
State=StatExeCom;
}
else{
i=i+1;
if((i>=MaxLenComBuf)&&(ch!=8)){
PrintChar(7);
i=MaxLenComBuf-1;
}
else{
if(ch==8){
i=i-2;
if(i<-1) {i=-1;PrintChar(7);}
else{
PrintChar(8);
PrintChar(' ');
PrintChar(8);
}
}
else{
PrintChar(ch);
ComBuf[i]=ch;
}
}
}
break;
}
else{
maincycle();
break;
}
}
case StatExeCom:{
if(GetWord(ComBuf,&WordTable)==1&&WordTable.Num!=0){
yystrlwr(WordTable.wt[0].Str);
for(tem=0;tem<MaxComNum&&!ComMatchFlag;tem++)
if(strcmp(WordTable.wt[0].Str,ComTable[tem])==0) ComMatchFlag=1;
if(ComMatchFlag){
tem--;
switch(tem){
case 0:{DisplayPortValue(&WordTable);break;}
case 1:{WriteBdSel(&WordTable);break;}
case 2:{WriteDataX(&WordTable);break;}
case 3:{ReadDataX(&WordTable);break;}
case 4:{WriteXReg(&WordTable);break;}
case 5:{clrscr();break;}
case 6:{DisplayHelpMenu(&WordTable);break;}
case 7:{
//ShellEnd=1;
PrintStr("This Command is limited!\n");
break;
}
case 8:{ReadXReg(&WordTable);break;}
case 9:{Erase66(&WordTable);break;}
case 10:{Read66(&WordTable);break;}
case 11:{Write66(&WordTable);break;}
case 12:{ReadByte66(&WordTable);break;}
case 13:{CfgHost(&WordTable);break;}
case 14:{CfgGateway(&WordTable);break;}
case 15:{CfgMask(&WordTable);break;}
case 16:{CfgSnmpHost(&WordTable);break;}
case 17:{PrintARPtable(&WordTable);break;}
case 18:{PrintConfig(&WordTable);break;}
case 19:{PingCommand(&WordTable);break;}
case 20:{UDPCommand(&WordTable);break;}
case 21:{CfgMacAddress(&WordTable);break;}
case 22:{ListTxBuf(&WordTable);break;}
}
}
else
PrintStr(" Bad command!\n\n");
}
else{
if(WordTable.Num) PrintStr(" Bad command!\n\n");
}
ComMatchFlag=0;
State=StatInputCom;
if(ShellEnd) {PrintStr("\n\n");}
else PrintStr("% ");
i=-1;
break;
}
default:{
//ShellEnd=1;
PrintStr("System fatal error!\n");
PrintChar(7);PrintChar(7);PrintChar(7);
}
}
}
}
//temp
/*
void maincycle(void)
{
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -