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

📄 mymain.c

📁 此代码是实现将lwip协议移植于51单片机的测试程序
💻 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 + -