www.pudn.com > TcpIpOn8051.rar > PARA.C


#include "public.h" 
#include "string.h" 
extern mycomp xdata mypara; 
extern IDENTIFY xdata id; 
extern void x24c02_wrcon(BYTE address,BYTE *info,BYTE len); 
extern void x24c02_recon(BYTE address,BYTE *info,BYTE len); 
extern void write_93c46(BYTE address,WORD value); 
extern void write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number); 
extern void clear_write(void); 
extern void delay1(BYTE x); 
void write_nodeid(void); 
void read_nodeid(void); 
void write_ip(void); 
void read_ip(void); 
void write_mask(void); 
void read_mask(void); 
void write_gate(void); 
void read_gate(void); 
void write_port(void); 
void read_port(void); 
void write_agent(void); 
void read_agent(void); 
void write_agentport(void); 
void read_agentport(void); 
void write_para(void); 
void read_para(void); 
void set_node(WORD *mac); 
void set_ip(ip i); 
void set_mask(ip i); 
void set_gate(ip i); 
void set_port(WORD port); 
void set_agent(ip i); 
void set_agentport(WORD port); 
/*------------------------- 
  写2402参数-物理地址 
--------------------------*/ 
void write_id(void) 
{ 
	 	BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x1c; 
        len=0x1f; 
        p=(BYTE *)&id; 
        x24c02_wrcon(addr,p,len); 
} 
 
void read_id(void) 
{ 
		BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x1c; 
        len=0x1E; 
        p=(BYTE *)&id; 
        x24c02_recon(addr,p,len);		 
} 
void write_nodeid(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x00; 
        len=0x06; 
        p=(BYTE *)&mypara; 
        x24c02_wrcon(addr,p,len); 
//		write24c02(p,addr,len); 
//        write_93c46(0x02,mypara.mynodeid[0].word); 
//        write_93c46(0x03,mypara.mynodeid[1].word); 
//        write_93c46(0x04,mypara.mynodeid[2].word); 
} 
/*------------------------------------------ 
  读24c02参数-物理地址 
-------------------------------------------*/ 
void read_nodeid(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x00; 
        len=0x06; 
        p=(BYTE *)&mypara.mynodeid[0]; 
        x24c02_recon(addr,p,len); 
} 
/*------------------------- 
  写2402参数-ip地址 
--------------------------*/ 
void write_ip(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x06; 
        len=0x04; 
        p=(BYTE *)&mypara.myip; 
        x24c02_wrcon(addr,p,len); 
//		write24c02(p,addr,len); 
 
} 
/*------------------------------------------ 
  读24c02参数-ip地址 
-------------------------------------------*/ 
void read_ip(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
		WORD i; 
        addr=0x06; 
        len=0x04; 
        p=(BYTE *)&mypara.myip; 
        x24c02_recon(addr,p,len); 
} 
/*------------------------- 
  写2402参数-子网掩码 
--------------------------*/ 
void write_mask(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x0a; 
        len=0x04; 
        p=(BYTE *)&mypara.mymask; 
        x24c02_wrcon(addr,p,len); 
} 
/*------------------------------------------ 
  读24c02参数-子网掩码 
-------------------------------------------*/ 
void read_mask(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x0a; 
        len=0x04; 
        p=(BYTE *)&mypara.mymask; 
        x24c02_recon(addr,p,len); 
} 
/*------------------------- 
  写2402参数-网关 
--------------------------*/ 
void write_gate(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x0e; 
        len=0x04; 
        p=(BYTE *)&mypara.mygate; 
        x24c02_wrcon(addr,p,len); 
} 
/*------------------------------------------ 
  读24c02参数-网关 
-------------------------------------------*/ 
void read_gate(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x0e; 
        len=0x04; 
        p=(BYTE *)&mypara.mygate; 
        x24c02_recon(addr,p,len); 
} 
/*------------------------- 
  写2402参数-TCP or UDP端口 
--------------------------*/ 
void write_port(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x12; 
        len=0x02; 
        p=(BYTE *)&mypara.port; 
        x24c02_wrcon(addr,p,len); 
} 
/*------------------------------------------ 
  读24c02参数-TCP or UDP端口 
-------------------------------------------*/ 
void read_port(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x12; 
        len=0x02; 
        p=(BYTE *)&mypara.port; 
        x24c02_recon(addr,p,len); 
} 
/*------------------------- 
  写2402参数-代理 
--------------------------*/ 
void write_agent(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x14; 
        len=0x04; 
        p=(BYTE *)&mypara.myagent; 
        x24c02_wrcon(addr,p,len); 
} 
/*------------------------------------------ 
  读24c02参数-代理 
-------------------------------------------*/ 
void read_agent(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x14; 
        len=0x04; 
        p=(BYTE *)&mypara.myagent; 
        x24c02_recon(addr,p,len); 
} 
/*------------------------- 
  写2402参数-代理端口 
--------------------------*/ 
void write_agentport(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x18; 
        len=0x02; 
        p=(BYTE *)&mypara.myagentport; 
        x24c02_wrcon(addr,p,len); 
} 
/*------------------------------------------ 
  读24c02参数-代理端口 
-------------------------------------------*/ 
void read_agentport(void) 
{ 
        BYTE addr; 
        BYTE *p; 
        BYTE len; 
        addr=0x18; 
        len=0x02; 
        p=(BYTE *)&mypara.myagentport; 
        x24c02_recon(addr,p,len); 
} 
/*------------------------------------------ 
  写24c02全部参数 
-------------------------------------------*/ 
void write_para(void) 
{ 
        write_nodeid(); 
        write_ip(); 
        write_mask(); 
        write_gate(); 
        write_port(); 
        write_agent(); 
        write_agentport(); 
} 
/*------------------------------------------ 
  读24c02全部参数 
-------------------------------------------*/ 
void read_para(void) 
{ 
		WORD default_mac[3] = {0x0103,0x4C50,0x1EAC}; 
		BYTE bcast[6]={0xff,0xff,0xff,0xff,0xff,0xff}; 
 	    BYTE name[15]; 
		memset(name,0xff,15) ;  
//		clear_write(); 
 
	   	read_nodeid();		//读取本机的网卡物理地址	 
		//如果mac未设置,设置mac 0x00,0xE0,0x4C,0x50,0x1E,0xAC 
		if (!memcmp(mypara.mynodeid,bcast,6))  
			set_node(default_mac); 
	   
		read_ip();		//读取本机的ip 
 
		//如果IP未设置,设置IP为 192.168.0.2 
		if (mypara.myip==0xFFFFFFFF || mypara.myip==0x0) 
			mypara.myip=0xc0a80102; 
	 
	   	read_mask();	//读取本机的子网掩码	 
		//如果IP掩码未设置,设置IP掩码为 255.255.255.0 
		if (mypara.mymask==0xffffffff ||mypara.mymask==0x00)	 
			mypara.mymask = 0xffffff00; 
	 
		 read_gate();	//读取本机的缺省网关的ip				 
		//如果IP网关未设置,设置IP网关为 0.0.0.0(不存在网关) 
		if (mypara.mygate==0xffffffff)	 
			mypara.mygate=0xc0a80103; 
 
        read_port(); 
        read_agent(); 
        read_agentport(); 
		read_id(); 
		if (!memcmp(id.username,name,15)) 
			strcpy(id.username,"aggie"); 
		if (!memcmp(id.password,name,15)) 
			strcpy(id.password,"aggie"); 
 
} 
/*------------------------------------------ 
  设置物理地址 
-------------------------------------------*/ 
void set_node(WORD *mac) 
{ 
        mypara.mynodeid[0].word=*mac; 
        mac++; 
        mypara.mynodeid[1].word=*mac; 
        mac++; 
        mypara.mynodeid[2].word=*mac; 
} 
/*------------------------------------------ 
  设置ip地址 
-------------------------------------------*/ 
void set_ip(ip i) 
{ 
        mypara.myip=i; 
} 
/*------------------------------------------ 
  设置子网掩码 
-------------------------------------------*/ 
void set_mask(ip i) 
{ 
        mypara.mymask=i; 
} 
/*------------------------------------------ 
  设置网关 
-------------------------------------------*/ 
void set_gate(ip i) 
{ 
        mypara.mygate=i; 
} 
/*------------------------------------------ 
  设置TCP or UDP端口 
-------------------------------------------*/ 
void set_port(WORD port) 
{ 
        mypara.port=port; 
} 
/*------------------------------------------ 
  设置代理服务器 
-------------------------------------------*/ 
void set_agent(ip i) 
{ 
        mypara.myagent=i; 
} 
/*------------------------------------------ 
  设置代理服务器端口 
-------------------------------------------*/ 
void set_agentport(WORD port) 
{ 
        mypara.myagentport=port; 
} 
 
/*EOF*/