📄 regioncommdoc.cpp
字号:
// RegionCommDoc.cpp : implementation of the CRegionCommDoc class
//
#include "stdafx.h"
#include "RegionComm.h"
#include "FirstRun.h"
#include "RegionCommDoc.h"
#include "RegionSocket.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "direct.h"
#define ConfigureBoot "c:\hmkkjk"
#define ConfigureFileName "c:\\hmkkjk\\AreaConfigure.txt"
#define DepictLen 40
#define OneConfigureLen 43
/////////////////////////////////////////////////////////////////////////////
// CRegionCommDoc
IMPLEMENT_DYNCREATE(CRegionCommDoc, CDocument)
BEGIN_MESSAGE_MAP(CRegionCommDoc, CDocument)
//{{AFX_MSG_MAP(CRegionCommDoc)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRegionCommDoc construction/destruction
CRegionCommDoc::CRegionCommDoc()
{
}
CRegionCommDoc::~CRegionCommDoc()
{
}
BOOL CRegionCommDoc::OnNewDocument()
{
BOOL bIsFirst = FALSE;
if(NULL==(m_pCommunication = new CCommunication()))
return(FALSE);
if (!CDocument::OnNewDocument())
return FALSE;
// 从注册表中读入相应的系统信息
m_pCommunication->m_cRegionNo=AfxGetApp()->GetProfileInt(CenterServerConfigName,_T("RegionNO"),0);
if(m_pCommunication->m_cRegionNo<=0)
bIsFirst = TRUE;
m_SocketPort = AfxGetApp()->GetProfileInt(CenterServerConfigName,_T("ServerSocketPort"),4000);
if(m_SocketPort<=0)
bIsFirst=TRUE;
m_sServerName=AfxGetApp()->GetProfileString(CenterServerConfigName,_T("ServerMachineName"),"127.0.0.1");
m_sServerIPAddr = AfxGetApp()->GetProfileString(CenterServerConfigName,_T("ServerIPAddress"),"127.0.0.1");
if( (m_sServerName=="") && (m_sServerIPAddr==""))
bIsFirst=TRUE;
//第一次启动程序
if (bIsFirst)
{
if (!OnFirstRun())
{
return FALSE;
}
}
InitAllComSet();
CString str;
//str.Format("区域%d", m_pCommunication->m_cRegionNo);
str="GPS";
SetTitle(str);
return TRUE;
}
BOOL CRegionCommDoc::OnFirstRun()
{
CFirstRun dlg;
if (dlg.DoModal() == IDCANCEL)
return FALSE;
m_pCommunication->m_cRegionNo = BYTE(dlg.m_iRegionNo & 0xFF);
m_sServerName = dlg.m_sServerName;
m_SocketPort = dlg.m_iPortNo;
m_sServerIPAddr = dlg.m_sIPAddr;
AfxGetApp()->WriteProfileString(CenterServerConfigName,_T("ServerMachineName"),m_sServerName);
AfxGetApp()->WriteProfileString(CenterServerConfigName,_T("ServerIPAddress"),m_sServerIPAddr);
AfxGetApp()->WriteProfileInt(CenterServerConfigName,_T("RegionNO"),m_pCommunication->m_cRegionNo);
AfxGetApp()->WriteProfileInt(CenterServerConfigName,_T("ServerSocketPort"),m_SocketPort);
return TRUE;
}
//启动通讯
BOOL CRegionCommDoc::InitManagerView()
{
// 运行CTscComs类
if (!m_pCommunication->Run())
{
return FALSE;
}
m_pCommunication->m_pServerSocket->UpdateProperty(m_sServerName,(long)m_SocketPort,m_sServerIPAddr);
return TRUE;
}
//保存信息到注册表中
void CRegionCommDoc::InitAllComSet()
{
//遍历注册表项目
CString strPort;
int i,nBaudRate;
BYTE cDType,cDNo;
CString sDepict;
for(i=1;i<255;i++)
{
strPort.Format("COM%d",i);
nBaudRate=AfxGetApp()->GetProfileInt("ComSetting",strPort,0);
cDType=AfxGetApp()->GetProfileInt("DTypeSetting",strPort,0);
cDNo=AfxGetApp()->GetProfileInt("DNoSetting",strPort,0);
sDepict=AfxGetApp()->GetProfileString("DepictSettings",strPort,NULL);
if(nBaudRate>0)//波特率大于0才打开
{
m_pCommunication->AddTscCom(i, nBaudRate,cDType,cDNo,sDepict);
}
}
}
void CRegionCommDoc::OnCloseDocument()
{
// TODO: Add your specialized code here and/or call the base class
m_pCommunication->StopAllRunningThread();
delete m_pCommunication;
CDocument::OnCloseDocument();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -