📄 http.c
字号:
for(a=0;a<21;a++)
{
if(Temp[a]!=Newpw[a])
{
send( 0,(uint8 *)httpweb ,sizeof(httpweb), 0 );
if(ReceiveCheck()==FALSE)
return;
send( 0,(uint8 *)webWriteP ,sizeof(webWriteP), 0 );
ReceiveCheck(); //密码更改不成功,请打开写保护
return;
}
}
send( 0,(uint8 *)httpweb ,sizeof(httpweb), 0 );
if(ReceiveCheck()==FALSE)
return;
send( 0,(uint8 *)webpwsu ,sizeof(webpwsu), 0 );
ReceiveCheck(); //密码更改成功
}
}
}
/*===============================================================
改变MAC地址 界面
===============================================================*/
/****************************************************************/
void ChangeMacMenu(void)
{
send( 0,(uint8 *)httpweb ,sizeof(httpweb), 0 );
if(ReceiveCheck()==TURE)
send( 0,(uint8 *)webmac ,sizeof(webmac), 0 );
ReceiveCheck();
}
/*==============================================================
改变MAC地址
===============================================================*/
void ChangedMacAddr(uint8 *p)
{
uint8 a,b,i;
uint8 Temp[32];
uint8 Temp1[32];
uint16 j;
i=1;
for(j=0;j<1500;j++)
{
if(*p=='T'&&*(p+1)==(i+0x30)&&*(p+2)=='=')
{
p+=3;
if(i==7)
{
for(i=6;i<26;i++)
Temp[i]=*p++; //收取密码
if(Temp[6]=='C'&&Temp[7]=='V'&&Temp[8]=='T'
&&Temp[9]=='1'&&Temp[10]=='0'&&Temp[11]=='0')
{
WriteEEprom(Temp,MACADDRESS,6);
ReadEEprom(Temp1,MACADDRESS,6);
for(i=0;i<6;i++)
{
if(Temp1[i]!=Temp[i])
{
send( 0,(uint8 *)webWriteP ,sizeof(webWriteP), 0 );
ReceiveCheck();
return; //请打开写保护
}
}
send( 0,(uint8 *)ConfigSu ,sizeof(ConfigSu), 0 );
ReceiveCheck();
return; //写MAC地址成功
}
else
{
send( 0,(uint8 *)MACIn ,sizeof(MACIn), 0 );
ReceiveCheck();
return; //写MAC地址的密码不正确
}
}
a=ASCIItoDec(*p);p++;
b=ASCIItoDec(*p);p++;
a&=0x0f;
b&=0x0f;
a<<=4;
a|=b;
Temp[i-1]=a; //取MAC
i++;
}
p++;
}
}
/****************************************************************/
void SetConfigMenu (uint8 *p) //PC 设置参数
{
uint8 t,*ptr;
uint16 i;
uint32 baudrate;
uint8 Temp[32];
for(i=0;i<1500;i++)
{
if(*p=='T'&&*(p+1)=='1'&&*(p+2)=='=')
{
p+=3;
HexTemp=p;
mynetp.myip[0]=ASCIItoHex(HexTemp);
mynetp.myip[1]=ASCIItoHex(HexTemp);
mynetp.myip[2]=ASCIItoHex(HexTemp);
mynetp.myip[3]=ASCIItoHex(HexTemp);
}
else if(*p=='T'&&*(p+1)=='2'&&*(p+2)=='=')
{
p+=3;
HexTemp=p;
mynetp.submark[0]=ASCIItoHex(HexTemp);
mynetp.submark[1]=ASCIItoHex(HexTemp);
mynetp.submark[2]=ASCIItoHex(HexTemp);
mynetp.submark[3]=ASCIItoHex(HexTemp);
}
else if(*p=='T'&&*(p+1)=='3'&&*(p+2)=='=')
{
p+=3;
HexTemp=p;
mynetp.gateway[0]=ASCIItoHex(HexTemp);
mynetp.gateway[1]=ASCIItoHex(HexTemp);
mynetp.gateway[2]=ASCIItoHex(HexTemp);
mynetp.gateway[3]=ASCIItoHex(HexTemp);
}
/* if(*p=='T'&&*(p+1)=='4'&&*(p+2)=='=')
{
}*/
else if(*p=='T'&&*(p+1)=='5'&&*(p+2)=='=')
{
p+=3;
HexTemp=p;
mynetp.myport=ASCIIto2Hex(HexTemp);
}
else if(*p=='T'&&*(p+1)=='6'&&*(p+2)=='=')
{
p+=3;
HexTemp=p;
mynetp.remoteip[0]=ASCIItoHex(HexTemp);
mynetp.remoteip[1]=ASCIItoHex(HexTemp);
mynetp.remoteip[2]=ASCIItoHex(HexTemp);
mynetp.remoteip[3]=ASCIItoHex(HexTemp);
}
else if(*p=='T'&&*(p+1)=='7'&&*(p+2)=='=')
{
p+=3;
HexTemp=p;
mynetp.remoteport=ASCIIto2Hex(HexTemp);
}
else if(*p=='D'&&*(p+1)=='1'&&*(p+2)=='=')
{
p+=3;
if(*p=='U')
mynetp.workmode=3;
else
{
p+=4;
if(*p=='S')
mynetp.workmode=1;
else
mynetp.workmode=2;
}
}
else if(*p=='D'&&*(p+1)=='2'&&*(p+2)=='=')
{
p+=3;
if(*p!='&')
{
t=*p++;
t=ASCIItoDec(t);
baudrate=t;
}
if(*p!='&')
{
t=*p++;
t=ASCIItoDec(t);
baudrate=baudrate<<4;
baudrate+=t;
}
if(*p!='&')
{
t=*p++;
t=ASCIItoDec(t);
baudrate=baudrate<<4;
baudrate+=t;
}
if(*p!='&')
{
t=*p++;
t=ASCIItoDec(t);
baudrate=baudrate<<4;
baudrate+=t;
}
if(*p!='&')
{
t=*p++;
t=ASCIItoDec(t);
baudrate=baudrate<<4;
baudrate+=t;
}
if(*p!='&')
{
t=*p++;
t=ASCIItoDec(t);
baudrate=baudrate<<4;
baudrate+=t;
}
mynetp.baudrate=baudrate;
}
else if(*p=='D'&&*(p+1)=='3'&&*(p+2)=='=')
{
p+=3;
t=*p++;
mynetp.bit=ASCIItoDec(t);
}
else if(*p=='D'&&*(p+1)=='4'&&*(p+2)=='=')
{
p+=3;
switch(*p)
{
case 'O':
mynetp.parity=1;
break;
case 'E':
mynetp.parity=2;
break;
case 'N':
mynetp.parity=0;
break;
default:
mynetp.parity=0;
break;
}
p++;
}
else if(*p=='D'&&*(p+1)=='5'&&*(p+2)=='=')
{
p+=5; //stopbit
if(*p=='0')
mynetp.stopbit=0x1;
else
mynetp.stopbit=0x2;
break;
}
else
p++;
}
WriteEEprom(&mynetp.myip[0],NETPARAMETER,8);
WriteEEprom(&mynetp.myip[0]+8,(NETPARAMETER+8),8);
WriteEEprom(&mynetp.myip[0]+16,(NETPARAMETER+16),8);
WriteEEprom(&mynetp.myip[0]+24,(NETPARAMETER+24),8);
ReadEEprom(Temp,NETPARAMETER,16);
ReadEEprom(&Temp[16],(NETPARAMETER+16),16);
ptr=&mynetp.myip[0];
for(i=0;i<32;i++)
{
if(*ptr++!=Temp[i])
{
send( 0,(uint8 *)webWriteP ,sizeof(webWriteP), 0 );
ReceiveCheck();
return;
}
}
send( 0,(uint8 *)ConfigSu ,sizeof(ConfigSu), 0 );
ReceiveCheck();
}
/*******************************************************/
uint16 ASCIIto2Hex (uint8 *p)
{
uint8 i;
uint16 a,b,c,d,e,f;
a=0;b=0;c=0;d=0;e=0;
if(*p!='&')
{
i=*p++;
a=ASCIItoDec(i);
}
if(*p!='&')
{
i=*p++;
b=ASCIItoDec(i);
a=a*10;
}
if(*p!='&')
{
i=*p++;
c=ASCIItoDec(i);
a=a*10;
b=b*10;
}
if(*p!='&')
{
i=*p++;
d=ASCIItoDec(i);
a=a*10;
b=b*10;
c=c*10;
}
if(*p!='&')
{
i=*p++;
e=ASCIItoDec(i);
a=a*10;
b=b*10;
c=c*10;
d=d*10;
}
if(*p=='&')
p++;
HexTemp=p;
f=a+b+c+d+e;
return(f);
}
/*******************************************************/
uint8 ASCIItoHex (uint8 *p)
{
uint8 a,b,c,d;
a=0;b=0;c=0;
if(*p!='.'&& *p!='&')
{
a=*p++;
a=ASCIItoDec(a);
}
if(*p!='.'&& *p!='&')
{
b=*p++;
b=ASCIItoDec(b);
a=a*10;
}
if(*p!='.'&& *p!='&')
{
c=*p++;
c=ASCIItoDec(c);
a=a*10;
b=b*10;
}
if(*p=='.')
p++;
HexTemp=p;
d=a+b+c;
return(d);
}
/*******************************************************/
uint8 ASCIItoDec (uint8 i)
{
if(i>0x39)
i-=0x37;
else
i-=0x30;
return (i);
}
/*===========================================================================*/
//设置主界面
/******************************************************/
void SendMainMenu(uint8 *p)
{
uint16 i,j;
uint8 a,x;
uint8 Temp[1400];
uint8 Temp1[32];
for(j=0;j<1400;j++)
{
if(*p=='T'&&*(p+1)=='1'&& *(p+2)=='=')
{
p+=3;x=0;
while(*p!=0x26)
{
Temp1[x]=*p;
p++;
x++;
}
Temp1[x]=0x0d;
break;
}
p++;//移动指针
}
send( 0,(uint8 *)httpweb ,sizeof(httpweb), 0 );
if(ReceiveCheck()==FALSE)
return;
ReadEEprom(Temp,PASSWORD,20);
ReadEEprom(&Temp[16],PASSWORD+16,5);
if(Testwritep()==TURE)
{
for(a=0;a<21;a++)
{
if(Temp[a]!=Temp1[a]) //密码不相等
{
j=sizeof(web1);
i=0;
while(j)
{
if(web1[i]=='m'&&web1[i+1]=='s'&&web1[i+2]=='g'&&web1[i+3]=='=')
{
Temp[i]=web1[i];i++;j--;
Temp[i]=web1[i];i++;j--;
Temp[i]=web1[i];i++;j--;
Temp[i]=web1[i];i++;j--;
Temp[i]='1';i++;j--;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -