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*/