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

📄 configgen.cpp

📁 lwip tcp/ip 协议栈 adsp BF533 DSP 移植 用 visual dsp++ 编译
💻 CPP
📖 第 1 页 / 共 2 页
字号:
////////////////////////////////////////////////////////////////////////////////////////
//
// This file contains the helper functions to create,save,process the source and header
// files that are generated.
//
#include "stdafx.h"
#include "TCPIPplugin.h"
#include "classtemplate.h"

#include <afxdlgs.h>
#include "resource.h"

#include "generalpage.h"
#include "NetworkIfce0.h"
#include "NetworkIfce1.h"
#include "ip.h"
#include "tcp.h"
#include "debug.h"
#include "configgen.h"

static char protocol_sec[]   = "Protocols";
static char stats_sec[]		 = "Stats";
static char ip_sec[]         = "Ip";
static char tcp_sec[]        = "Tcp";
static char nw0_sec[]        = "NWIfce0";
static char nw1_sec[]        = "NWIfce1";
static char debug_sec[]      = "Debug";
static char trace_sec[]      = "Trace";
static char memory_sec[]        = "Memory";

#define INT_TO_BOOL(_val) ((_val) ? (true) : (false))


void ConvertBinaryMacToText(const char *bmac, char *tm);
void ConvertTextMacToBinary(const char *tm, char *bm);



// configuration header memory must 
bool LoadConfigHeaderData(char *cfg_filename,ConfigHeaderStruct *cfg_header_struct)
{
	char tbuf[80];
	char *end_ptr;

	///////////////////////////////////////////////////////////
	// Protocols (General Property Page)
	//
	GetPrivateProfileString(protocol_sec,"Protocol_ALL",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->proto_all = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(protocol_sec,"Protocol_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->proto_tcp = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(protocol_sec,"Protocol_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->proto_udp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(protocol_sec,"Protocol_ICMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->proto_icmp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(protocol_sec,"Protocol_DHCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->proto_dhcp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	////////////////////////////////////////////////////////////////
	// Statistics
	//
	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(stats_sec,"Stats_ALL",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->stats_all = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(stats_sec,"Stats_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->stats_tcp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(stats_sec,"Stats_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->stats_udp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(stats_sec,"Stats_ICMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->stats_icmp = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(stats_sec,"Stats_IP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->stats_ip = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(stats_sec,"Stats_LINK",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->stats_link = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));



	//////////////////////////////////////////////////////////////////
	// IP Options (IP Property Page)
	//
	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(ip_sec,"IP_forward",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->ip_forward = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(ip_sec,"IP_fragmentation",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->ip_fragmentation = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(ip_sec,"IP_options",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->ip_options = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(ip_sec,"IP_reassembly",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->ip_reassembly = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(ip_sec,"IP_multiple_networks",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->multiple_networks = INT_TO_BOOL(strtol(tbuf,&end_ptr,10));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(ip_sec,"IP_num_networks",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->num_networks = strtol(tbuf,&end_ptr,10);

	//////////////////////////////////////////////////////////////////
	// TCP options (TCP Property Page)
	//
	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(tcp_sec,"TCP_Mss",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->tcp_mss = strtol(tbuf,&end_ptr,10);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(tcp_sec,"TCP_WndSz",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->tcp_wndsz = strtol(tbuf,&end_ptr,10);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(tcp_sec,"TCP_NoUdpConn",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->no_udp_conn = strtol(tbuf,&end_ptr,10);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(tcp_sec,"TCP_NoTcpConn",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->no_tcp_conn = strtol(tbuf,&end_ptr,10);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(tcp_sec,"TCP_NoListenConn",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->no_listen_conn= strtol(tbuf,&end_ptr,10);
	
	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(tcp_sec,"TCP_NoSockets",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->no_sockets = strtol(tbuf,&end_ptr,10);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(tcp_sec,"TCP_ArpTBSz",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->arp_tbsz = strtol(tbuf,&end_ptr,10);
	
	
	/////////////////////////////////////////////////////////////////
	//
	// Debug Options (Debug Property Page)
	//
	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_ALL",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_all = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_APILIB",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_apilib = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_tcp = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_udp = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_IP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_ip = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_SOCKETS",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_sockets = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_MEM",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_mem = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(debug_sec,"Debug_MEMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->debug_memp = INT_TO_BOOL(atoi(tbuf));


	//////// Tracing ////////////////////////////////////////////////
	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(trace_sec,"TraceEnable",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->trace_enable = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(trace_sec,"Trace_TCP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->tcp_pkt_dump = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(trace_sec,"Trace_UDP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->udp_pkt_dump = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(trace_sec,"Trace_IP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->ip_pkt_dump = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(trace_sec,"Trace_ICMP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->icmp_pkt_dump = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(trace_sec,"Trace_ARP",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->arp_pkt_dump = INT_TO_BOOL(atoi(tbuf));

	//////////////////////////////////////////////////////////////
	//	Memory
	//
	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(memory_sec,"Mem_Pool_Start_Addr",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->pool_start_addr= strtol(tbuf,&end_ptr,10);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(memory_sec,"Mem_Pool_Size",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->pool_size= strtol(tbuf,&end_ptr,10);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(memory_sec,"Mem_Alignment",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->mem_alignment = atoi(tbuf);
	

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(memory_sec,"Mem_Ram_Size",NULL,tbuf,sizeof(tbuf),cfg_filename);
	cfg_header_struct->ram_size = atoi(tbuf);

	return true;
}

bool LoadConfigSourceData(char *cfg_filename,ConfigSourceStruct *cfg_source_struct)
{
	network_ifce *pNwIfce;
	char tbuf[80];
	char *end_ptr;

	// Fill interface 0
	pNwIfce = &cfg_source_struct->nw_ifces[0];

	if(!pNwIfce) return false;

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_usedhcp",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->use_dhcp = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_ipaddr",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->ip_addr = strtoul(tbuf,&end_ptr,16);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_subnetmask",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->subnet_mask = strtoul(tbuf,&end_ptr,16);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_gateway",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->default_gateway = strtoul(tbuf,&end_ptr,16);


	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_rxbufs",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->rx_bufs = atoi(tbuf);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_rxbufsz",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->rx_buf_sz = atoi(tbuf);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_txbufs",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->tx_bufs = atoi(tbuf);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_txbufsz",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->tx_buf_sz = atoi(tbuf);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw0_sec,"NI0_macaddr",NULL,tbuf,sizeof(tbuf),cfg_filename);
	tbuf[12] = '\0';
	ConvertTextMacToBinary(tbuf,pNwIfce->mac_addr);



	///////////////////////////////////////////

	pNwIfce = &cfg_source_struct->nw_ifces[1];

	if(!pNwIfce) return false;

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw1_sec,"NI1_usedhcp",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->use_dhcp = INT_TO_BOOL(atoi(tbuf));

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw1_sec,"NI1_ipaddr",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->ip_addr = strtoul(tbuf,&end_ptr,16);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw1_sec,"NI1_subnetmask",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->subnet_mask = strtoul(tbuf,&end_ptr,16);

	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw1_sec,"NI1_gateway",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->default_gateway = strtoul(tbuf,&end_ptr,16);


	memset(tbuf,0,sizeof(tbuf));
	GetPrivateProfileString(nw1_sec,"NI1_rxbufs",NULL,tbuf,sizeof(tbuf),cfg_filename);
	pNwIfce->rx_bufs = atoi(tbuf);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -