Files
HBshuiwuConcentrator/yw/netpara.c
2025-12-15 16:07:49 +08:00

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()
{
}