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

📄 http.c

📁 嵌入式TCP/IP模块
💻 C
📖 第 1 页 / 共 4 页
字号:
               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 + -