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

📄 generalpage.cpp

📁 lwip tcp/ip 协议栈 adsp BF533 DSP 移植 用 visual dsp++ 编译
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// GeneralPage.cpp : implementation file
//

#include "stdafx.h"
#include "TCPIPplugin.h"
#include "GeneralPage.h"
#include <afxdlgs.h>

#include "ConfigGen.h"
#include "ip.h"
#include "tcp.h"
#include "NetworkIfce0.h"
#include "NetworkIfce1.h"
#include "Debug.h"
#include "Memory.h"
#include "reg.h"

extern IP *g_pIP;
extern TCP *g_pTCP;
extern NetworkIfce0 *g_pNP0;
extern NetworkIfce1 *g_pNP1;
extern Debug *g_pDEBUG;
extern Memory *g_pMEMORY;

char g_config_source[512];
extern char g_last_configfile[];
bool  g_load_complete_display=0;

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

typedef enum V_TYPE
{
	T_MACRO,
	T_MACRO_PROTECT,  // Wraps around #ifndef 
	T_STRING,
	T_OPEN_PAR,
	T_CLOSE_PAR,
	T_NULL			  // just a #define id
};
#define M_ON 1

// Used to enable or disable Network Interface -1 property page.
extern bool g_EnableNI1Page;


// If any property is changed the value will be set to true.
// used in classwizplugin.cpp if user presses ok. 
//
extern bool g_save;

void ConvertBinaryMacToText(const char *bmac, char *tm)
{
	char tt[8];
	int ic;

	tm[0] = 0;
	for (ic=0;ic<6;ic++) {
		sprintf(tt,"%2.2x",(unsigned char)bmac[ic]);
		strcat(tm,tt);
	}
}

int frhex(char ch)
{
	if (('0'<=ch) && (ch<='9')) {
		return ch-'0';
	} else {
		if (('A'<=ch) && (ch<='F')) {
			return ch-'A'+10;
		} else {
			return ch-'a'+10;
		}

	}
}

void ConvertTextMacToBinary(const char *tm, char *bm)
{
	char tmac[32];
	char ch;
	int ic,il;

	strcpy(tmac,"000000000000");
	strcat(tmac,tm);
	il = strlen(tmac);
	il -= 12;     /* il points to first hex pair */
	for (ic=0;ic<6;ic++) {
		ch = tmac[il++];
		bm[ic] = (frhex(ch)<<4) + frhex(tmac[il++]);
	}
}


/////////////////////////////////////////////////////////////////////////////
// GeneralPage property page

IMPLEMENT_DYNCREATE(GeneralPage, CPropertyPage)

GeneralPage::GeneralPage() : CPropertyPage(GeneralPage::IDD)
{
	//{{AFX_DATA_INIT(GeneralPage)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	InitDefaultGeneralSettings();
}

GeneralPage::~GeneralPage()
{
}

void GeneralPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(GeneralPage)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP

	CButton *pButtonGenerateFiles = (CButton*)GetDlgItem(IDC_BUTTON_ADDPROJECT);

	if(pButtonGenerateFiles)
			pButtonGenerateFiles->EnableWindow(FALSE);

	if(stricmp(g_last_configfile,"") && !g_load_complete_display)
	{
		CStatic  *pEdit_ConfigFile = (CStatic*)GetDlgItem(IDC_EDIT_CONFIG_FILE);
		SetFileName(g_last_configfile);
		strcpy(g_config_source,g_last_configfile);
		g_load_complete_display = 1;
	}
	PopulateGeneralPageSettings();

	if(stricmp(g_last_configfile,"") && (pButtonGenerateFiles))
			pButtonGenerateFiles->EnableWindow(TRUE);

	CButton *pSaveButton = (CButton*)GetDlgItem(IDC_BUTTON_SAVEAS);
	if(g_save == true)
		pSaveButton->EnableWindow(TRUE);
	else
		pSaveButton->EnableWindow(FALSE);

	if(m_multiple_networks == true) 
		g_EnableNI1Page = true;
	else
		g_EnableNI1Page = false;

}


BEGIN_MESSAGE_MAP(GeneralPage, CPropertyPage)
	//{{AFX_MSG_MAP(GeneralPage)
	ON_BN_CLICKED(IDC_CHECK_PROTO_ALL, OnCheckProtoAll)
	ON_BN_CLICKED(IDC_CHECK_ALL_STAT, OnCheckAllStat)
	ON_BN_CLICKED(IDC_CHECK_PROTO_TCP, OnCheckProtoTcp)
	ON_BN_CLICKED(IDC_CHECK_PROTO_UDP, OnCheckProtoUdp)
	ON_BN_CLICKED(IDC_CHECK_PROTO_ICMP, OnCheckProtoIcmp)
	ON_BN_CLICKED(IDC_CHECK_PROTO_DHCP, OnCheckProtoDhcp)
	ON_BN_CLICKED(IDC_CHECK_TCP_STAT, OnCheckTcpStat)
	ON_BN_CLICKED(IDC_CHECK_UDP_STAT, OnCheckUdpStat)
	ON_BN_CLICKED(IDC_CHECK_IP_STAT, OnCheckIpStat)
	ON_BN_CLICKED(IDC_CHECK_ICMP_STAT, OnCheckIcmpStat)
	ON_BN_CLICKED(IDC_CHECK_LINK_STAT, OnCheckLinkStat)
	ON_BN_CLICKED(IDC_BUTTON_OPEN, OnButtonOpen)
	ON_BN_CLICKED(IDC_BUTTON_SAVE, OnButtonSave)
	ON_EN_CHANGE(IDC_EDIT_CONFIG_FILE, OnChangeEditConfigFile)
	ON_BN_CLICKED(IDC_BUTTON_SAVEAS, OnButtonSaveas)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// GeneralPage message handlers

void GeneralPage::OnCheckProtoAll() 
{
	CButton *pButton_ProtocolAll= (CButton*)GetDlgItem(IDC_CHECK_PROTO_ALL);
	bool o_proto_all = m_proto_all;

	if(pButton_ProtocolAll != NULL)
	{
		if(pButton_ProtocolAll->GetCheck() == BST_CHECKED)
		{
			// TCP
			CButton *pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_TCP);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			// UDP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_UDP);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			// ICMP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_ICMP);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			// DHCP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_DHCP);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			m_proto_all = true;
			m_proto_tcp = true;
			m_proto_udp = true;
			m_proto_icmp = true;
			m_proto_dhcp = true;

		}
		else
		{
			// TCP
			CButton *pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_TCP);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			// UDP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_UDP);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			// ICMP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_ICMP);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			// DHCP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_PROTO_DHCP);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			m_proto_all  = false;
			m_proto_tcp  = false;
			m_proto_udp  = false;
			m_proto_icmp = false;
			m_proto_dhcp = false;

		}

		(o_proto_all != m_proto_all) ? g_save = true : 0;
		EnableSaveButton();
	}	
}

void GeneralPage::OnCheckAllStat() 
{
	CButton *pButton_ProtocolAll= (CButton*)GetDlgItem(IDC_CHECK_ALL_STAT);
	bool o_stats_all = m_stats_all;

	if(pButton_ProtocolAll != NULL)
	{
		if(pButton_ProtocolAll->GetCheck() == BST_CHECKED)
		{
			// TCP
			CButton *pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_TCP_STAT);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			// UDP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_UDP_STAT);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			// IP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_IP_STAT);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			// ICMP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_ICMP_STAT);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			// LINK
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_LINK_STAT);
			pButton_tempProto->SetCheck(TRUE);
			pButton_tempProto->EnableWindow(FALSE);

			m_stats_all  = true;
			m_stats_tcp  = true;
			m_stats_udp  = true;
			m_stats_ip   = true;
			m_stats_icmp = true;
			m_stats_link = true;

		}
		else
		{
			// TCP
			CButton *pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_TCP_STAT);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			// UDP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_UDP_STAT);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			// IP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_IP_STAT);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			// ICMP
			pButton_tempProto= (CButton*)GetDlgItem(IDC_CHECK_ICMP_STAT);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);

			// LINK
			pButton_tempProto = (CButton*)GetDlgItem(IDC_CHECK_LINK_STAT);
			pButton_tempProto->SetCheck(FALSE);
			pButton_tempProto->EnableWindow(TRUE);


			m_stats_all  = false;
			m_stats_tcp  = false;
			m_stats_udp  = false;
			m_stats_ip   = false;
			m_stats_icmp = false;
			m_stats_link = false;

		}

		(o_stats_all != m_stats_all) ? g_save = true : 0;
		EnableSaveButton();
	}

}

////////////////////////////////////////////////////////////////////
// Protocol - TCP
//
void GeneralPage::OnCheckProtoTcp() 
{
	// TODO: Add your control notification handler code here
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_PROTO_TCP);
	bool o_proto_tcp = m_proto_tcp;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_proto_tcp = true : m_proto_tcp = false;

	(o_proto_tcp != m_proto_tcp) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Protocol - UDP
//
void GeneralPage::OnCheckProtoUdp() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_PROTO_UDP);
	bool o_proto_udp = m_proto_udp;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_proto_udp = true : m_proto_udp = false;

	(o_proto_udp != m_proto_udp) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Protocol - ICMP
//
void GeneralPage::OnCheckProtoIcmp() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_PROTO_ICMP);
	bool o_proto_icmp = m_proto_icmp;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_proto_icmp = true : m_proto_icmp = false;	

	(o_proto_icmp != m_proto_icmp) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Protocol - DHCP
//
void GeneralPage::OnCheckProtoDhcp() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_PROTO_DHCP);
	bool o_proto_dhcp = m_proto_dhcp;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_proto_dhcp = true : m_proto_dhcp = false;

	(o_proto_dhcp != m_proto_dhcp) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Stats - TCP
//
void GeneralPage::OnCheckTcpStat() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_TCP_STAT);
	bool o_stats_tcp = m_stats_tcp;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_stats_tcp = true : m_stats_tcp = false;

	(o_stats_tcp != m_stats_tcp) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Stats - UDP
//
void GeneralPage::OnCheckUdpStat() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_UDP_STAT);
	bool o_stats_udp = m_stats_udp;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_stats_udp = true : m_stats_udp = false;

	(o_stats_udp != m_stats_udp) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Stats - IP
//
void GeneralPage::OnCheckIpStat() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_IP_STAT);
	bool o_stats_ip = m_stats_ip;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_stats_ip = true : m_stats_ip = false;

	(o_stats_ip != m_stats_ip) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Stats - ICMP
//
void GeneralPage::OnCheckIcmpStat() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_ICMP_STAT);
	bool o_stats_icmp = m_stats_icmp;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ? m_stats_icmp = true :m_stats_icmp = false;

	(o_stats_icmp != m_stats_icmp) ? g_save = true : 0;
	EnableSaveButton();
}

////////////////////////////////////////////////////////////////////
// Stats - Link
//
void GeneralPage::OnCheckLinkStat() 
{
	CButton *pButton_Protocol= (CButton*)GetDlgItem(IDC_CHECK_LINK_STAT);
	bool o_stats_link= m_stats_link;

	if(pButton_Protocol != NULL)
		(pButton_Protocol->GetCheck() == BST_CHECKED) ?	m_stats_link = true : m_stats_link = false;

	(o_stats_link !=  m_stats_link) ? g_save = true : 0;
}

void GeneralPage::OnButtonOpen() 
{
	CButton *pButton_Open     = (CButton*)GetDlgItem(IDC_BUTTON_OPEN);
	CStatic  *pEdit_ConfigFile = (CStatic*)GetDlgItem(IDC_EDIT_CONFIG_FILE);
	static char *filter = "TCP/IP Configuration file (*.tcp)\x00*.tcp;\x00\x00";
	char filename[512];
	OPENFILENAME ofn;
	char *filepart=NULL;

	AFX_MANAGE_STATE(AfxGetStaticModuleState());


	memset(&ofn,0, sizeof(ofn));
	pEdit_ConfigFile->GetWindowText(filename,sizeof(filename));

		ofn.lStructSize = sizeof(ofn);
		ofn.lpstrFilter = filter;
		ofn.lpstrFile = filename;
		ofn.nMaxFile = sizeof(filename);
		ofn.lpstrTitle = "Open TCP/IP configuration file";
		ofn.Flags = OFN_FILEMUSTEXIST|OFN_HIDEREADONLY;

		if(GetOpenFileName(&ofn))
		{
			strcpy(filename,ofn.lpstrFile);
		
		}
		else
			return;

		strcpy(m_ConfigFile,filename);
			
		SetFileName(filename);
		strcpy(g_config_source,filename);
		ConfigHeaderStruct *cfg_load_header = (ConfigHeaderStruct*)malloc(sizeof(ConfigHeaderStruct));
		ConfigSourceStruct *cfg_source = (ConfigSourceStruct*)malloc(sizeof(ConfigSourceStruct));
		
		LoadConfigHeaderData(filename,cfg_load_header);
		LoadConfigSourceData(filename,cfg_source);

⌨️ 快捷键说明

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