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

📄 web.c

📁 采用ajax技术
💻 C
📖 第 1 页 / 共 4 页
字号:
	}
	
	IntToStr((int)t,(char*)ch);
	memcpy(&buf[i],ch,strlen((char*)ch));
}
/*************************************************************************
* 名称:GetMac
* 函数原型:void GetMac(uint8 *dest,uint8 *src)
* 功能:获取Mac
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void GetMac(uint8 *dest,uint8 *src)
{
	uint8 i,nPos = 0,temp[5],n=0;
	memset(temp,0,5);
	
	for(i=0;i<strlen((char*)src);i++)
	{
		if(src[i] != ':')
			temp[nPos++] = src[i];
		else
		{
			dest[n++] = StrToHex((char*)temp);
			nPos=0;
			memset(temp,0,5);
		}
	}
	
	if(strlen((char*)temp)>0)
		dest[n] = StrToHex((char*)temp);

}

/*************************************************************************
* 名称:web_NetSet
* 函数原型:void web_NetSet(http *buf)
* 功能:设置网络信息
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
uint8 web_NetSet()
{
	uint8 buf1[16]={0},i=0;
	memset(buf1,0,16);
	buf1[0] =0xAA;
	
	for(i=0;i<4;i++)
		buf1[i+1] = mGloablCfg.pLocalIp[i];
	
	ISendStr(AT24C01,0x00, buf1, 8);
	DelayNS(5);
	memset(buf1,0,16);
	buf1[0] =0xAA;
	
	for(i=0;i<4;i++)
		buf1[i+1] = mGloablCfg.pLocalSubmark[i];
	
	ISendStr(AT24C01,0x08, buf1, 8);
	DelayNS(5);
	memset(buf1,0,16);
	buf1[0] =0xAA;
	
	for(i=0;i<4;i++)
		buf1[i+1] = mGloablCfg.pLocalGW[i];
	
	ISendStr(AT24C01,0x10, buf1, 8);
	DelayNS(5);
	WDTC = 0x0000001;
	nResetFlag = 0xAA;
	return TRUE;
}
/*************************************************************************
* 名称:web_MacSet
* 函数原型:web_MacSet(uint8 *buf)
* 功能:设置Mac
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void web_MacSet()
{
	uint8 buf1[16]={0},i=0;
	memset(buf1,0,16);
	buf1[0] =0xAA;
	
	for(i=0;i<6;i++)
		buf1[i+1] = mGloablCfg.pLocalMAC[i];
	
	ISendStr(AT24C01,0x18, buf1, 8);
	DelayNS(5);
	WDTC = 0x0000001;
	nResetFlag = 0xAA;
}
/*************************************************************************
* 名称:web_CommTrapSet
* 函数原型:web_CommTrapSet(uint8 *buf)
* 功能:设置Comm Trap
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void web_CommTrapSet()
{
	uint8 buf1[192]={0},i=0;
	memset(buf1,0xAA,8);
	ISendStr(AT24C01,0x60, buf1, 8);
	DelayNS(5);
	memcpy(buf1, (uint8*)&mGlobalInf.pTrapConfig[0][0], 190);
	
	for(i=0;i<25;i++)
	{
		ISendStr(AT24C01,0x70+i*8, (uint8*)&buf1[i*8], 8);
		DelayNS(5);
	}
	
}
/*************************************************************************
* 名称:web_UserInfoSet
* 函数原型:web_UserInfoSet()
* 功能:设置Comm Trap
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void web_UserInfoSet()
{
	uint8 buf1[16]={0};
	memset(buf1,0,16);
	buf1[0] = 0xAA;
	memcpy((char*)&buf1[1],mGlobalInf.pUserName,strlen((char*)mGlobalInf.pUserName));
	ISendStr(AT24C01,0x40, buf1, 16);
	DelayNS(5);
	memset(buf1,0,16);
	buf1[0] = 0xAA;
	memcpy((char*)&buf1[1],mGlobalInf.pUserPw,strlen((char*)mGlobalInf.pUserPw));
	ISendStr(AT24C01,0x50, buf1, 16);
	DelayNS(5);
}
/*************************************************************************
* 名称:RestoreDef
* 函数原型:void RestoreDef()
* 功能:恢复默认值
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void RestoreDef(void)
{
	mGloablCfg.pLocalIp [0]=192;
	mGloablCfg.pLocalIp [1]=168;
	mGloablCfg.pLocalIp [2]=0;	//默认ip 192.168.0.239*/
	mGloablCfg.pLocalIp [3]= 239;

	mGloablCfg.pLocalGW[0]=0xc0;
	mGloablCfg.pLocalGW[1]=0xa8;
	mGloablCfg.pLocalGW[2]=0x00;
	mGloablCfg.pLocalGW[3]=0x01;   //默认网关 192.168.0.1

	mGloablCfg.pLocalSubmark[0]=0xff;
	mGloablCfg.pLocalSubmark[1]=0xff;
	mGloablCfg.pLocalSubmark[2]=0xff;
	mGloablCfg.pLocalSubmark[3]=0x00;   //默认子网掩码 255.255.255.0

	memset((char*)&mGlobalInf.pUserName[0],0,12);
	memset((char*)&mGlobalInf.pUserPw[0],0,12);
	strcpy((char*)&mGlobalInf.pUserName,"admin");		//用户名 default = admin
	strcpy((char*)&mGlobalInf.pUserPw,"admin");	//用户密码 default = admin
	memset((char*)&mGlobalInf.pTrapConfig[0][0],0,190);

	memcpy((char*)&mGlobalInf.pTrapConfig[0][6],"public",6);
	mGlobalInf.pTrapConfig[0][4] = 0;//第5位 0:表示v1  1:表示v2  2:表示v3
	mGlobalInf.pTrapConfig[0][5] = 0;//第6位 0:表示readonly  1:表示write/read
	memcpy((char*)&mGlobalInf.pTrapConfig[1][6],"private",7);
	mGlobalInf.pTrapConfig[1][4] = 0;
	mGlobalInf.pTrapConfig[1][5] = 1;

	//web_UserInfoSet();
	//ModifyParameter(1,0);
	DelayNS(5);
	//web_CommTrapSet();
	DelayNS(5);
	web_NetSet();
	DelayNS(5);
	//web_MacSet();
	nResetFlag = 0xAA;
}
/*************************************************************************
* 名称:web_CommAdd
* 函数原型:void web_CommAdd(http *buf)
* 功能:添加通讯体
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void web_CommAdd(http *buf)
{
	uint8 str[20]={0},temp[20]={0},i=0,len=0;
	memset(str,0,20);
	
	len = strlen((char*)buf[0].value);
	memcpy((char*)str,(char*)buf[0].value,len);
	
	for(i=0;i<10;i++)
	{
		memset(temp,0,20);
		memcpy((char*)temp,(char*)&mGlobalInf.pTrapConfig[i][6],len);
		
		if(strcmp((char*)temp,(char*)str)==0)
			return;
	}

	for(i=0;i<10;i++)
		if(mGlobalInf.pTrapConfig[i][6] == 0 || mGlobalInf.pTrapConfig[i][6] == 255)
			break;
	if(i>= 10) i =0;
	
	memset((char*)&mGlobalInf.pTrapConfig[i][6],0,12);
	memcpy((char*)&mGlobalInf.pTrapConfig[i][6],(char*)buf[0].value,strlen((char*)buf[0].value));
	mGlobalInf.pTrapConfig[i][5] = buf[1].value[0]-48;
}
/*************************************************************************
* 名称:web_CommDel
* 函数原型:void web_CommDel(http *buf)
* 功能:删除通讯体
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void web_CommDel(http *buf)
{
	uint8 str[20]={0},temp[20]={0},i=0,len=0,j=0,comm[20]={0};
	memset(str,0,20);
	memset(comm,0,20);
	
	len = strlen((char*)buf[0].value)-4;
	memcpy((char*)str,(char*)buf[0].value,len);
	GetComm(comm,str);
	
	for(i=0;i<10;i++)
	{
		memset(temp,0,20);
		memcpy((char*)temp,(char*)&mGlobalInf.pTrapConfig[i][6],len);
		
		if(strcmp((char*)temp,(char*)comm)==0)
		{
			for(j=6;j<19;j++)
				mGlobalInf.pTrapConfig[i][j] =0;
			
			break;
		}
	}
}
/*************************************************************************
* 名称:GetComm
* 函数原型:void GetComm(uint8 *dest,uint8 *src)
* 功能:获取Mac
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void GetComm(uint8 *dest,uint8 *src)
{
	uint8 i=0,nPos = 0;
	
	for(i=0;i<strlen((char*)src);i++)
	{
		if(src[i] == '%')
		{
			dest[nPos++] = 0xff;
			i=i+2;
		}
		else
			dest[nPos++] = src[i];
	}
}

/*************************************************************************
* 名称:web_TrapIpAdd
* 函数原型:void web_TrapIpAdd(http *buf)
* 功能:添加Trap ip
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void web_TrapIpAdd(http *buf)
{
	uint8 str[10]={0},temp[5]={0},i=0,j=0;
	memset(str,0,10);
	GetIp((uint8 *)str,(uint8 *)&buf[0].value[0]);
	
	for(i=0;i<10;i++)
	{
		memset(temp,0,5);
		memcpy((char*)temp,(char*)&mGlobalInf.pTrapConfig[i][0],4);
		
		if(temp[0] ==str[0] && temp[1] ==str[1] &&
			temp[2] ==str[2] && temp[3] ==str[3])
			return;
	}

	for(i=0;i<10;i++)
		if(mGlobalInf.pTrapConfig[i][0] == 0 || mGlobalInf.pTrapConfig[i][0] == 255)
			break;
	for(j=0;j<4;j++)
		mGlobalInf.pTrapConfig[i][j] = str[j];
		
	mGlobalInf.pTrapConfig[i][4] = buf[2].value[0]-49;
}

/*************************************************************************
* 名称:web_TrapIpDel
* 函数原型:void web_TrapIpDel(http *buf)
* 功能:删除Trap ip
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void web_TrapIpDel(http *buf)
{
	uint8 str[10]={0},temp[20]={0},i=0,j=0;
	memset(str,0,10);
	memset(temp,0,20);
	
	while(buf[0].value[i] != ':')
	{
		temp[i] = buf[0].value[i];
		i++;
	}
	
	GetIp((uint8 *)str,(uint8 *)temp);
	
	for(i=0;i<10;i++)
	{
		memset(temp,0,20);
		memcpy((char*)temp,(char*)&mGlobalInf.pTrapConfig[i][0],4);
		
		if(temp[0] ==str[0] && temp[1] ==str[1] &&
			temp[2] ==str[2] && temp[3] ==str[3])
		{
			for(j=0;j<4;j++)
				mGlobalInf.pTrapConfig[i][j] = 0;
			
			break;
		}
	}
}
/*************************************************************************
* 名称:GetTrapInfo
* 函数原型:void GetTrapInfo(uint8 *buf)
* 功能:获取网管卡信息
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void GetTrapInfo(uint8 *buf)
{
	uint8 temp[50]={0},i=0,j=0,len=0,ss[10]={0};
	int npos = strlen((char*)&buf);
	
	for(i=0;i<10;i++)
	{
		memset(temp,0,50);
		len=0;
		
		if(mGlobalInf.pTrapConfig[i][0] != 0 && mGlobalInf.pTrapConfig[i][0] != 255)
		{
			for(j=0;j<4;j++)
			{
				IntToStr(mGlobalInf.pTrapConfig[i][j],(char *)ss);
				memcpy((char*)&temp[len],(char*)ss,strlen((char*)ss));
				len = strlen((char*)temp);
				
				if(j<3)
					temp[len++] = '.';
			}
			
			if(mGlobalInf.pTrapConfig[i][4] ==2)
				memcpy((char*)&temp[len],": public, v3 ",13);
			else if(mGlobalInf.pTrapConfig[i][4] ==1)
				memcpy((char*)&temp[len],": public, v2 ",13);
			else
				memcpy((char*)&temp[len],": public, v1 ",13);
			
			npos = strlen((char*)&buf);
			GetResponse((char*)&buf[npos],"trap",(char*)temp);
		}
	}
}
/*************************************************************************
* 名称:GetCommInfo
* 函数原型:void GetCommInfo(uint8 *buf)
* 功能:获取网管卡信息
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void GetCommInfo(uint8 *buf)
{
	uint8 temp[20]={0},i=0,j=0,len=0;
	int npos = strlen((char*)&buf);
	
	for(i=0;i<10;i++)
	{
		memset(temp,0,20);
		len=0;
		
		for(j=6;j<19;j++)
		{
			if(mGlobalInf.pTrapConfig[i][j] >=1 && mGlobalInf.pTrapConfig[i][j] <=126)
				temp[len++] = mGlobalInf.pTrapConfig[i][j];
		}
		
		if(strlen((char*)temp)>0)
		{
			temp[len++] ='_';
			temp[len++] ='_';
			
			if(mGlobalInf.pTrapConfig[i][5] ==1)
			{
				temp[len++] ='R';
				temp[len++] ='W';
			}
			else
			{
				temp[len++] ='R';
				temp[len++] ='O';
			}
			
			npos = strlen((char*)&buf);
			GetResponse((char*)&buf[npos],"comm",(char*)temp);
		}
	}
}

/*************************************************************************
* 名称:GetNetInfo
* 函数原型:void GetNetInfo(uint8 *buf)
* 功能:获取网管卡信息
* 入口参数:
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void GetNetInfo(uint8 *buf)
{
	uint8 buf1[100]={0},temp[10]={0},i=0,len=0;
	int npos=0;
	memset(buf1,0,100);
	len = 0;
	
	for(i=0;i<6;i++)
	{
		HexToStr(mGloablCfg.pLocalMAC[i],(char *)temp);
		memcpy((char*)&buf1[len],(char*)temp,strlen((char*)temp));
		len = strlen((char*)buf1);
		if(i<5)
			buf1[len++] = ':';
	}
	
	npos = strlen((char*)&buf);
	GetResponse((char*)&buf[npos],"mac",(char*)buf1);
	memset(buf1,0,100);
	len = 0;
	
	for(i=0;i<4;i++)
	{
		IntToStr(mGloablCfg.pLocalIp[i],(char *)temp);
		memcpy((char*)&buf1[len],(char*)temp,strlen((char*)temp));
		len = strlen((char*)buf1);
		if(i<3)
			buf1[len++] = '.';
	}
	
	npos = strlen((char*)&buf);
	GetResponse((char*)&buf[npos],"ip",(char*)buf1);
	memset(buf1,0,100);
	len = 0;
	
	for(i=0;i<4;i++)
	{
		IntToStr(mGloablCfg.pLocalSubmark[i],(char *)temp);
		memcpy((char*)&buf1[len],(char*)temp,strlen((char*)temp));
		len = strlen((char*)buf1);
		if(i<3)
			buf1[len++] = '.';
	}
	
	npos = strlen((char*)&buf);
	GetResponse((char*)&buf[npos],"sub",(char*)buf1);
	memset(buf1,0,100);
	len = 0;
	
	for(i=0;i<4;i++)
	{
		IntToStr(mGloablCfg.pLocalGW[i],(char *)temp);
		memcpy((char*)&buf1[len],(char*)temp,strlen((char*)temp));
		len = strlen((char*)buf1);
		if(i<3)
			buf1[len++] = '.';
	}
	
	npos = strlen((char*)&buf);
	GetResponse((char*)&buf[npos],"gw",(char*)buf1);
}
/*************************************************************************
* 名称:GetResponse
* 函数原型:void GetResponse(char *dest,char *src,char *content)
* 功能:获得回应
* 入口参数:src  :源字串  content  :字串内容     dest:目的字串
*
* 出口参数:
* 使用说明:
* 创建日期:
* 作者:Henry
**************************************************************************/
void GetResponse(char *dest,char *src,char *content)
{
	int len =strlen(dest);
	dest[len++] = '<';
	memcpy((char *)&dest[len],src,strlen(src));
	len = strlen(dest);
	dest[len++] = '>';
	memcpy((char*)&dest[len],content,strlen(content));
	len = strlen(dest);
	dest[len++] = '<';
	dest[len++] = '/';
	memcpy((char *)&dest[len],src,strlen(src));
	len = strlen(dest);
	dest[len++] = '>';

⌨️ 快捷键说明

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