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

📄 main.c

📁 这是一个在在Dynamic C环境下实现的设备web服务器的建立
💻 C
字号:
#class auto

#ifdef FREQ_184320
	#define		FREQ_9600				60
	#define		FREQ_19200				30
#else
	#define		FREQ_9600				36
	#define		FREQ_19200				18
#endif

#define HTTP_MAXSERVERS 1
#define MAX_TCP_SOCKET_BUFFERS 1



#define USE_ETHERNET    				0x01
//#define HTTP_SOCK_BUF_SIZE          4096
//#define USE_HTTP_DIGEST_AUTHENTICATION 				1
#define HTTP_MAXBUFFER                       0x2000
#define FORM_ERROR_BUF 			     2048
#define TCPCONFIG 	  0

#define LOCAL_IP	"192.192.4.12"
#define LOCAL_NETMASK	"255.255.255.0"
#define LOCAL_GATEWAY	"192.192.4.1"

/********************************
 * End of configuration section *
 ********************************/

#define TIMEZONE        -8


#memmap xmem
//#ifdef _RAM_
//	#use "HuaHTFTP.lib"
//	#use "BootRom.c"
//#endif


#use "dcrtcp.lib"
#use "http.lib"

#use "WRIDBLOCK.LIB"
#use "TimerB.c"
#use "Variables.c"
#use "Funcs.c"
#use "Chip.c"
#use "Store.c"
#use "Cgi.c"
#use "Arp.c"

#define DISABLE_DNS
//#define DISABLE_UDP


#ximport "D:/Dowork/myweb/index.htm"    	       index_html
#ximport "D:/Dowork/myweb/leftFrame.htm"    leftFrame_html
#ximport "D:/Dowork/myweb/EqInfo.shtml"    EqInfo_html
//#ximport "D:/Dowork/myweb/Ethinfo.htm"    	 Ethinfo_html
#ximport "D:/Dowork/myweb/E1info.htm"    	 E1info_html
#ximport "D:/Dowork/myweb/Password.htm"     Password_html
#ximport "D:/Dowork/myweb/SetEthinfo.htm"   SetEthinfo_html
#ximport "D:/Dowork/myweb/SetE1Lb.htm"      SetE1Lb_html
#ximport "D:/Dowork/myweb/SetE1info.htm"    SetE1info_html
#ximport "D:/Dowork/myweb/hh.htm"           hh_html
#ximport "D:/Dowork/myweb/Defpara.htm"      Defpara_html
#ximport "D:/Dowork/myweb/Reboot.htm"       Reboot_html
#ximport "D:/Dowork/myweb/test.htm"         test_html
#ximport "D:/Dowork/myweb/pic/r.gif"            r_gif
#ximport "D:/Dowork/myweb/pic/rn.gif"           rn_gif
#ximport "D:/Dowork/myweb/pic/b.gif"            b_gif
#ximport "D:/Dowork/myweb/pic/bn.gif"           bn_gif


SSPEC_MIMETABLE_START
   SSPEC_MIME_FUNC(".shtml", "text/html", shtml_handler),
   SSPEC_MIME(".html", "text/html"),
   SSPEC_MIME(".gif", "image/gif"),
	SSPEC_MIME(".jpg", "image/jpg"),
   SSPEC_MIME(".cgi", "")
SSPEC_MIMETABLE_END


extern char			bios_divider19200;
extern char			freq_divider;


SSPEC_RESOURCETABLE_START
	SSPEC_RESOURCE_XMEMFILE("/index.html", index_html),
   SSPEC_RESOURCE_XMEMFILE("leftFrame.htm",  leftFrame_html),
   SSPEC_RESOURCE_XMEMFILE("EqInfo.shtml", EqInfo_html),
   SSPEC_RESOURCE_XMEMFILE("test.htm", test_html),
	SSPEC_RESOURCE_XMEMFILE("E1info.htm",    E1info_html),
	SSPEC_RESOURCE_XMEMFILE("Password.htm",  Password_html),
	SSPEC_RESOURCE_XMEMFILE("SetEthinfo.htm", SetEthinfo_html),
   SSPEC_RESOURCE_XMEMFILE("SetE1Lb.htm",  SetE1Lb_html),
   SSPEC_RESOURCE_XMEMFILE("SetE1info.htm",  SetE1info_html),
   SSPEC_RESOURCE_XMEMFILE("/Admin/hh.htm",  hh_html),
   SSPEC_RESOURCE_XMEMFILE("Defpara.htm",  Defpara_html),
   SSPEC_RESOURCE_XMEMFILE("Reboot.htm",  Reboot_html),
   SSPEC_RESOURCE_XMEMFILE("/r.gif", r_gif),
   SSPEC_RESOURCE_XMEMFILE("/rn.gif", rn_gif),
   SSPEC_RESOURCE_XMEMFILE("/b.gif", b_gif),
   SSPEC_RESOURCE_XMEMFILE("/bn.gif", bn_gif),
   SSPEC_RESOURCE_FUNCTION("/Admin/AdRet.cgi",AdRetCgi),
   SSPEC_RESOURCE_FUNCTION("/Reboot.cgi",RebootCgi),
   SSPEC_RESOURCE_FUNCTION("/Defpara.cgi",DefparaCgi),
   SSPEC_RESOURCE_FUNCTION("/SetEth.cgi", SetEthCgi),
   SSPEC_RESOURCE_FUNCTION("/SetLb.cgi",SetLbCgi),
   SSPEC_RESOURCE_FUNCTION("/SetE1info1.cgi",SetE1info1Cgi),
   SSPEC_RESOURCE_FUNCTION("/SetE1info2.cgi",SetE1info2Cgi),
   SSPEC_RESOURCE_FUNCTION("/SetE1info3.cgi",SetE1info3Cgi),
   SSPEC_RESOURCE_FUNCTION("/ChPwd.cgi",ChPwdCgi),

   SSPEC_RESOURCE_ROOTVAR("Logo", &LogoPic, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("g_HardwareVer", &g_HardwareVer, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("g_SoftVer", &g_SoftVer, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("ucIPAddr", &g_DispAddrInfo.ip[0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("ucMask", &g_DispAddrInfo.netmask[0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("ucGateway", &g_DispAddrInfo.gateway[0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("ucMacAddr", &g_DispAddrInfo.macaddress[0], PTR16, "%s"),

  ///////////////////////////For Advance Para/////////////////////////////////////
   SSPEC_RESOURCE_ROOTVAR("Oem0", &AdvanPara.OemUser[0][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Oem1", &AdvanPara.OemUser[1][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Oem2", &AdvanPara.OemUser[2][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Oem3", &AdvanPara.OemUser[3][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Maddr", &AdvanPara.EqMac[0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("IpTl",  &(AdvanPara.SetTtl), INT8, "%d"),
   SSPEC_RESOURCE_ROOTVAR("FrmTyp", &AdvanPara.EthFrmType, INT16, "%04X"),
   SSPEC_RESOURCE_ROOTVAR("EnpFlg", &AdvanPara.EnpFlg, INT16, "%04X"),
   SSPEC_RESOURCE_ROOTVAR("SrcU",  &AdvanPara.SrcPort, INT16, "%04X"),
   SSPEC_RESOURCE_ROOTVAR("DstU", &AdvanPara.DstPort, INT16, "%04X"),
   SSPEC_RESOURCE_ROOTVAR("EnpPro", &(AdvanPara.Protocol), INT8, "%02X"),
   SSPEC_RESOURCE_ROOTVAR("Fitl", &(AdvanPara.Filter), INT8, "%d"),


   ////////////////////////////////////////////////////////////////////
   //SSPEC_RESOURCE_ROOTVAR("FirUpLink", &FirstUp.Link[0], PTR16, "%s"),
   //SSPEC_RESOURCE_ROOTVAR("FirDataLink", &FirstData.Link[0], PTR16, "%s"),
   //SSPEC_RESOURCE_ROOTVAR("SedDataLink", &SecondData.Link[0], PTR16, "%s"),
   //SSPEC_RESOURCE_ROOTVAR("FirUpModel", &FirstUp.Model[0], PTR16, "%s"),
   //SSPEC_RESOURCE_ROOTVAR("FirDataModel", &FirstData.Model[0], PTR16, "%s"),
   //SSPEC_RESOURCE_ROOTVAR("SedDataModel", &SecondData.Model[0], PTR16, "%s"),
   //SSPEC_RESOURCE_ROOTVAR("FirUpSpeed", &FirstUp.Speed, INT8, "%d"),
   //SSPEC_RESOURCE_ROOTVAR("FirDataSpeed", &FirstData.Speed, INT8, "%d"),
   //SSPEC_RESOURCE_ROOTVAR("SedDataSpeed", &SecondData.Speed, INT8, "%d"),
   SSPEC_RESOURCE_ROOTVAR("LOS0", &E1State[0].Los, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("LOS1", &E1State[1].Los, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("LOS2", &E1State[2].Los, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("LOS3", &E1State[3].Los, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("AIS0", &E1State[0].Ais, PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("AIS1", &E1State[1].Ais, PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("AIS2", &E1State[2].Ais, PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("AIS3", &E1State[3].Ais, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("LLB0", &E1State[0].Llb, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("LLB1", &E1State[1].Llb, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("LLB2", &E1State[2].Llb, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("LLB3", &E1State[3].Llb, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("RLB0", &E1State[0].Rlb, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("RLB1", &E1State[1].Rlb, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("RLB2", &E1State[2].Rlb, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("RLB3", &E1State[3].Rlb, PTR16, "%s"),

   SSPEC_RESOURCE_ROOTVAR("CL0", &E1State[0].CtrlL, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("CL1", &E1State[1].CtrlL, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("CL2", &E1State[2].CtrlL, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("CL3", &E1State[3].CtrlL, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("CR0", &E1State[0].CtrlR, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("CR1", &E1State[1].CtrlR, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("CR2", &E1State[2].CtrlR, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("CR3", &E1State[3].CtrlR, PTR16, "%s"),

    SSPEC_RESOURCE_ROOTVAR("Eq_IP0", &NetworkCfg.DstIp[0], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_IP1", &NetworkCfg.DstIp[1], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_IP2", &NetworkCfg.DstIp[2], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_IP3", &NetworkCfg.DstIp[3], INT8, "%d"),
	 SSPEC_RESOURCE_ROOTVAR("Eq_Mk0", &NetworkCfg.Mask[0], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_Mk1", &NetworkCfg.Mask[1], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_Mk2", &NetworkCfg.Mask[2], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_Mk3", &NetworkCfg.Mask[3], INT8, "%d"),
	 SSPEC_RESOURCE_ROOTVAR("Eq_Gy0", &NetworkCfg.Gateway[0], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_Gy1", &NetworkCfg.Gateway[1], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_Gy2", &NetworkCfg.Gateway[2], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("Eq_Gy3", &NetworkCfg.Gateway[3], INT8, "%d"),

   SSPEC_RESOURCE_ROOTVAR("Enable0", &DispE1Para1[0].Enable, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Enable1", &DispE1Para1[1].Enable, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Enable2", &DispE1Para1[2].Enable, PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Enable3", &DispE1Para1[3].Enable, PTR16, "%s"),

   SSPEC_RESOURCE_ROOTVAR("Map0_0", &DispE1Para1[0].Port[0][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map0_1", &DispE1Para1[0].Port[1][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map0_2", &DispE1Para1[0].Port[2][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map0_3", &DispE1Para1[0].Port[3][0], PTR16, "%s"),

   SSPEC_RESOURCE_ROOTVAR("Map1_0", &DispE1Para1[1].Port[0][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map1_1", &DispE1Para1[1].Port[1][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map1_2", &DispE1Para1[1].Port[2][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map1_3", &DispE1Para1[1].Port[3][0], PTR16, "%s"),

   SSPEC_RESOURCE_ROOTVAR("Map2_0", &DispE1Para1[2].Port[0][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map2_1", &DispE1Para1[2].Port[1][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map2_2", &DispE1Para1[2].Port[2][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map2_3", &DispE1Para1[2].Port[3][0], PTR16, "%s"),

   SSPEC_RESOURCE_ROOTVAR("Map3_0", &DispE1Para1[3].Port[0][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map3_1", &DispE1Para1[3].Port[1][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map3_2", &DispE1Para1[3].Port[2][0], PTR16, "%s"),
   SSPEC_RESOURCE_ROOTVAR("Map3_3", &DispE1Para1[3].Port[3][0], PTR16, "%s"),

	SSPEC_RESOURCE_ROOTVAR("IP0_0", &DispE1Para1[0].DstIp[0], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP0_1", &DispE1Para1[0].DstIp[1], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP0_2", &DispE1Para1[0].DstIp[2], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP0_3", &DispE1Para1[0].DstIp[3], INT8, "%d"),

	SSPEC_RESOURCE_ROOTVAR("IP1_0", &DispE1Para1[1].DstIp[0], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP1_1", &DispE1Para1[1].DstIp[1], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP1_2", &DispE1Para1[1].DstIp[2], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP1_3", &DispE1Para1[1].DstIp[3], INT8, "%d"),

	SSPEC_RESOURCE_ROOTVAR("IP2_0", &DispE1Para1[2].DstIp[0], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP2_1", &DispE1Para1[2].DstIp[1], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP2_2", &DispE1Para1[2].DstIp[2], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP2_3", &DispE1Para1[2].DstIp[3], INT8, "%d"),

	SSPEC_RESOURCE_ROOTVAR("IP3_0", &DispE1Para1[3].DstIp[0], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP3_1", &DispE1Para1[3].DstIp[1], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP3_2", &DispE1Para1[3].DstIp[2], INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("IP3_3", &DispE1Para1[3].DstIp[3], INT8, "%d"),

	SSPEC_RESOURCE_ROOTVAR("AClk0", &DispE1Para2[0].ClkMod[0][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("AClk1", &DispE1Para2[0].ClkMod[1][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("BClk0", &DispE1Para2[1].ClkMod[0][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("BClk1", &DispE1Para2[1].ClkMod[1][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("CClk0", &DispE1Para2[2].ClkMod[0][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("CClk1", &DispE1Para2[2].ClkMod[1][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("DClk0", &DispE1Para2[3].ClkMod[0][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("DClk1", &DispE1Para2[3].ClkMod[1][0], PTR16, "%s"),


	SSPEC_RESOURCE_ROOTVAR("CacLen0", &DispE1Para2[0].JitBuf, INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("CacLen1", &DispE1Para2[1].JitBuf, INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("CacLen2", &DispE1Para2[2].JitBuf, INT8, "%d"),
	SSPEC_RESOURCE_ROOTVAR("CacLen3", &DispE1Para2[3].JitBuf, INT8, "%d"),


	SSPEC_RESOURCE_ROOTVAR("EnVl0", &DispE1Para2[0].Vlan, PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EnVl1", &DispE1Para2[1].Vlan, PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EnVl2", &DispE1Para2[2].Vlan, PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EnVl3", &DispE1Para2[3].Vlan, PTR16, "%s"),

	SSPEC_RESOURCE_ROOTVAR("VId0", &DispE1Para2[0].V_ID, INT16, "%04x"),
	SSPEC_RESOURCE_ROOTVAR("VId1", &DispE1Para2[1].V_ID, INT16, "%04x"),
	SSPEC_RESOURCE_ROOTVAR("VId2", &DispE1Para2[2].V_ID, INT16, "%04x"),
	SSPEC_RESOURCE_ROOTVAR("VId3", &DispE1Para2[3].V_ID, INT16, "%04x"),

	SSPEC_RESOURCE_ROOTVAR("EnLev0", &DispE1Para3.EnLev[0][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EnLev1", &DispE1Para3.EnLev[1][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EnLev2", &DispE1Para3.EnLev[2][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EnLev3", &DispE1Para3.EnLev[3][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EnLev4", &DispE1Para3.EnLev[4][0], PTR16, "%s"),

	SSPEC_RESOURCE_ROOTVAR("EorT0", &DispE1Para3.E1orT1[0][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("EorT1", &DispE1Para3.E1orT1[1][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("IpOk0", &DispE1Para3.EnIp[0][0], PTR16, "%s"),
	SSPEC_RESOURCE_ROOTVAR("IpOk1", &DispE1Para3.EnIp[1][0], PTR16, "%s"),

	SSPEC_RESOURCE_ROOTVAR("IpTos", &DispE1Para3.uiTos, INT8, "%02x"),
	SSPEC_RESOURCE_ROOTVAR("Uband", &DispE1Para3.uiUp, INT16, "%u"),

	SSPEC_RESOURCE_ROOTVAR("Len", &Test.LenCode, INT16, "%u"),
	SSPEC_RESOURCE_ROOTVAR("Unnor", &Test.Unnormal, INT16, "%u"),
  	SSPEC_RESOURCE_ROOTVAR("Nor", &Test.Normal, INT16, "%u")



SSPEC_RESOURCETABLE_END

const void (* g_Tasks[]) ( )	= 	{
										Updata,
										RefCgi,
										//Alarm,
										ChkPlectrum										
									};

void main()
{
	unsigned char		ucTaskIndx,i;

	#GLOBAL_INIT
	{
	   freq_divider       = FREQ_9600;
	   bios_divider19200 = FREQ_19200;
	}

    ucTaskIndx=0;

   InitSystem();

   DefVarsInit();

   InitPurview();

   WriteIDBlock(0xFF20);

   sock_init();

   SetAddr();

   http_init();

   tcp_reserveport(80);

   CfgFpga();

   while (1)
   {
		ucTaskIndx = (ucTaskIndx + 1) % (sizeof(g_Tasks)/sizeof(g_Tasks[0]));
		g_Tasks[ucTaskIndx]( );

 		http_handler();
    }
}


⌨️ 快捷键说明

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