📄 web.c
字号:
}
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 + -