375 lines
6.0 KiB
C
375 lines
6.0 KiB
C
#include "stdafx.h"
|
|
#include "netpara.h"
|
|
#include "gprs.h"
|
|
|
|
|
|
extern int net_connect_first;
|
|
extern afn04_F3_st comm_04F3_param;
|
|
|
|
/*
|
|
网络参数
|
|
*/
|
|
|
|
struct netpara_struct
|
|
{
|
|
u8 type;
|
|
u8 ip1[4]; //主ip
|
|
u16 port1;
|
|
u8 ip2[4]; //备用ip
|
|
u16 port2;
|
|
u8 ip3[4]; //网关
|
|
u16 port3;
|
|
u8 ip4[4]; //代理服务器
|
|
u16 port4;
|
|
|
|
u8 apn[16];
|
|
u8 localip[4]; //本地ip
|
|
u16 localport; //本地端口
|
|
u8 mask[4]; //子网掩码
|
|
u8 localmac[6]; //mac地址
|
|
};
|
|
|
|
static struct netpara_struct netpara;
|
|
|
|
u8 netpara_gettype()
|
|
{
|
|
return netpara.type;
|
|
}
|
|
|
|
//主ip
|
|
u8 * netpara_getip1()
|
|
{
|
|
return netpara.ip1;
|
|
}
|
|
|
|
u16 netpara_getport1()
|
|
{
|
|
return netpara.port1;
|
|
}
|
|
|
|
//备用ip
|
|
u8 * netpara_getip2()
|
|
{
|
|
return netpara.ip2;
|
|
}
|
|
|
|
u16 netpara_getport2()
|
|
{
|
|
return netpara.port2;
|
|
}
|
|
|
|
//网关
|
|
u8 * netpara_getip3()
|
|
{
|
|
return netpara.ip3;
|
|
}
|
|
|
|
u16 netpara_getport3()
|
|
{
|
|
return netpara.port3;
|
|
}
|
|
|
|
//代理服务器
|
|
u8 * netpara_getip4()
|
|
{
|
|
return netpara.ip4;
|
|
}
|
|
|
|
u16 netpara_getport4()
|
|
{
|
|
return netpara.port4;
|
|
}
|
|
|
|
//apn
|
|
u8 * netpara_getapn()
|
|
{
|
|
return netpara.apn;
|
|
}
|
|
|
|
|
|
//本地
|
|
u8 * netpara_getlocalip()
|
|
{
|
|
return netpara.localip;
|
|
}
|
|
|
|
u16 netpara_getlocalport()
|
|
{
|
|
return netpara.localport;
|
|
}
|
|
|
|
u8 * netpara_getmask()
|
|
{
|
|
return netpara.mask;
|
|
}
|
|
|
|
u8 * netpara_getlocalmac()
|
|
{
|
|
return netpara.localmac;
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////
|
|
//设置
|
|
void netpara_settype(u8 type)
|
|
{
|
|
netpara.type = type;
|
|
}
|
|
|
|
//主ip
|
|
void netpara_setip1(u8 * ip1)
|
|
{
|
|
memmove(netpara.ip1,ip1,4);
|
|
}
|
|
|
|
void netpara_setport1(u16 port1)
|
|
{
|
|
netpara.port1 = port1;
|
|
}
|
|
|
|
//备用ip
|
|
void netpara_setip2(u8 * ip2)
|
|
{
|
|
memmove(netpara.ip2,ip2,4);
|
|
}
|
|
|
|
void netpara_setport2(u16 port2)
|
|
{
|
|
netpara.port2 = port2;
|
|
}
|
|
|
|
//网关
|
|
void netpara_setip3(u8 * ip3)
|
|
{
|
|
memmove(netpara.ip3,ip3,4);
|
|
}
|
|
|
|
void netpara_setport3(u16 port3)
|
|
{
|
|
netpara.port3 = port3;
|
|
}
|
|
|
|
//代理服务器
|
|
void netpara_setip4(u8 * ip4)
|
|
{
|
|
memmove(netpara.ip4,ip4,4);
|
|
}
|
|
|
|
void netpara_setport4(u16 port4)
|
|
{
|
|
netpara.port4 = port4;
|
|
}
|
|
|
|
void netpara_setapn(u8 * apn)
|
|
{
|
|
memmove(netpara.apn,apn,16);
|
|
}
|
|
|
|
//本地
|
|
void netpara_setlocalip(u8 * localip)
|
|
{
|
|
memmove(netpara.localip,localip,4);
|
|
}
|
|
|
|
void netpara_setlocalport(u16 port)
|
|
{
|
|
netpara.localport = port;
|
|
}
|
|
|
|
void netpara_setmask(u8 * mask)
|
|
{
|
|
memmove(netpara.mask,mask,4);
|
|
}
|
|
|
|
void netpara_setlocalmac(u8 * mac)
|
|
{
|
|
memmove(netpara.localmac,mac,6);
|
|
}
|
|
|
|
|
|
void netpara_setval(u8 *val)
|
|
{
|
|
|
|
//0
|
|
//1 2 3 4 5 6 ip1
|
|
//7 8 9 10 11 12 ip2
|
|
//13 14 15 16 17 18 ip3
|
|
//19 20 21 22 23 24 ip4
|
|
//25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
|
//41 42 43 44 45 46
|
|
//47 48 49 50
|
|
//51 52 53 54 55 56
|
|
|
|
u16 port = 0;
|
|
netpara_settype(val[0]);
|
|
|
|
port = (val[6]<<8)|val[5];
|
|
netpara_setip1(&val[1]);
|
|
netpara_setport1(port);
|
|
|
|
port = (val[12]<<8)|val[11];
|
|
netpara_setip2(&val[7]);
|
|
netpara_setport2(port);
|
|
|
|
port = (val[18]<<8)|val[17];
|
|
netpara_setip3(&val[13]);
|
|
netpara_setport3(port);
|
|
|
|
port = (val[24]<<8)|val[23];
|
|
netpara_setip4(&val[19]);
|
|
netpara_setport4(port);
|
|
|
|
netpara_setapn(&val[25]);
|
|
|
|
|
|
port = (val[46]<<8)|val[45];
|
|
netpara_setlocalip(&val[41]);
|
|
netpara_setlocalport(port);
|
|
|
|
netpara_setmask(&val[47]);
|
|
netpara_setlocalmac(&val[51]);
|
|
|
|
//*
|
|
//
|
|
comm_04F3_param.primary.ip1 = netpara.ip1[0];
|
|
comm_04F3_param.primary.ip2 = netpara.ip1[1];
|
|
comm_04F3_param.primary.ip3 = netpara.ip1[2];
|
|
comm_04F3_param.primary.ip4 = netpara.ip1[3];
|
|
comm_04F3_param.primary.port = netpara.port1;
|
|
comm_04F3_param.reserve.ip1 = netpara.ip2[0];;
|
|
comm_04F3_param.reserve.ip2 = netpara.ip2[1];
|
|
comm_04F3_param.reserve.ip3 = netpara.ip2[2];
|
|
comm_04F3_param.reserve.ip4 = netpara.ip2[3];
|
|
comm_04F3_param.reserve.port = netpara.port2;
|
|
memcpy(comm_04F3_param.APN, netpara.apn, sizeof(netpara.apn));
|
|
|
|
|
|
|
|
//*/
|
|
}
|
|
|
|
|
|
void net_para_save()
|
|
{
|
|
/*
|
|
ipflag.ip3 = 1;//延时更新ip
|
|
ipflag.ipchange = 1;
|
|
//M3761_Param_To_UIP();
|
|
|
|
//NET 重新连接
|
|
net_connect_first = 0;
|
|
|
|
|
|
//GPRS 重新连接
|
|
gprs_init_flag= 0;
|
|
gprs_connect_flag = 0;
|
|
gprs_socket_flag = 0;
|
|
|
|
system_save();
|
|
*/
|
|
|
|
|
|
ipport_write();
|
|
|
|
ipport_init();
|
|
|
|
|
|
|
|
}
|
|
|
|
void netpara_getval(u8 *val)
|
|
{
|
|
|
|
//0
|
|
//1 2 3 4 5 6 ip1
|
|
//7 8 9 10 11 12 ip2
|
|
//13 14 15 16 17 18 ip3
|
|
//19 20 21 22 23 24 ip4
|
|
//25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
|
//41 42 43 44 45 46
|
|
//47 48 49 50
|
|
//51 52 53 54 55 56
|
|
|
|
//11 + 3 = 14 + 57 = 71 = 0x47
|
|
|
|
netpara.ip1[0] = comm_04F3_param.primary.ip1;
|
|
netpara.ip1[1] =comm_04F3_param.primary.ip2;
|
|
netpara.ip1[2] = comm_04F3_param.primary.ip3;
|
|
netpara.ip1[3] =comm_04F3_param.primary.ip4 ;
|
|
netpara.port1 = comm_04F3_param.primary.port;
|
|
netpara.ip2[0] = comm_04F3_param.reserve.ip1;;
|
|
netpara.ip2[1] = comm_04F3_param.reserve.ip2;
|
|
netpara.ip2[2] =comm_04F3_param.reserve.ip3 ;
|
|
netpara.ip2[3] = comm_04F3_param.reserve.ip4;
|
|
netpara.port2 = comm_04F3_param.reserve.port;
|
|
memcpy(netpara.apn,comm_04F3_param.APN , sizeof(netpara.apn));
|
|
|
|
u16 port = 0;
|
|
u8 * p = NULL;
|
|
val[0] = netpara_gettype();
|
|
|
|
p = netpara_getip1();
|
|
memmove(&val[1],p,4);
|
|
port = netpara_getport1();
|
|
val[5] = port&0xFF;
|
|
val[6] = (port>>8)&0xFF;
|
|
|
|
|
|
|
|
p = netpara_getip2();
|
|
memmove(&val[7],p,4);
|
|
port = netpara_getport2();
|
|
val[11] = port&0xFF;
|
|
val[12] = (port>>8)&0xFF;
|
|
|
|
p = netpara_getip3();
|
|
memmove(&val[13],p,4);
|
|
port = netpara_getport3();
|
|
val[17] = port&0xFF;
|
|
val[18] = (port>>8)&0xFF;
|
|
|
|
|
|
p = netpara_getip4();
|
|
memmove(&val[19],p,4);
|
|
port = netpara_getport4();
|
|
val[23] = port&0xFF;
|
|
val[24] = (port>>8)&0xFF;
|
|
|
|
p = netpara_getapn();
|
|
memmove(&val[25],p,16);
|
|
|
|
|
|
|
|
p = netpara_getlocalip();
|
|
memmove(&val[41],p,4);
|
|
port = netpara_getlocalport();
|
|
val[45] = port&0xFF;
|
|
val[46] = (port>>8)&0xFF;
|
|
|
|
|
|
|
|
p = netpara_getmask();
|
|
memmove(&val[47],p,4);
|
|
|
|
p = netpara_getlocalmac();
|
|
memmove(&val[51],p,6);
|
|
}
|
|
|
|
|
|
void netpara_write()
|
|
{
|
|
}
|
|
|
|
void netpara_read()
|
|
{
|
|
}
|
|
|
|
|
|
|
|
|
|
|