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

📄 setcomm.cpp

📁 vc下串口通讯开发程序
💻 CPP
字号:
// setcomm.cpp : implementation file
//

#include "stdafx.h"
#include "TLhzpro.h"
#include "Function.h"
#include "setcomm.h"
#include "myguser.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// Csetcomm dialog


Csetcomm::Csetcomm(CWnd* pParent /*=NULL*/)
	: CDialog(Csetcomm::IDD, pParent)
{
	//{{AFX_DATA_INIT(Csetcomm)
	m_comm="COM1";
	m_baut="9600";
	m_bytesize="8";
	m_parity = _T("E");
	m_stopbits = _T("1");
	//}}AFX_DATA_INIT
}


void Csetcomm::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Csetcomm)
	DDX_CBString(pDX, IDC_COMBO1, m_comm);
	DDX_CBString(pDX, IDC_COMBO2, m_baut);
	DDX_CBString(pDX, IDC_COMBO4, m_bytesize);
	DDX_CBString(pDX, IDC_COMBO3, m_parity);
	DDX_CBString(pDX, IDC_COMBO5, m_stopbits);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Csetcomm, CDialog)
	//{{AFX_MSG_MAP(Csetcomm)
	ON_BN_CLICKED(IDC_SELECTFILE, OnSelectfile)
	ON_BN_CLICKED(IDC_DOWNLOAD, OnDownload)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Csetcomm message handlers






void Csetcomm::OnSelectfile() 
{
	// TODO: Add your control notification handler code here
		CFileDialog dlg(TRUE,"txt","*.txt");
	if(dlg.DoModal()==IDOK)
		{
		 m_filename=dlg.GetPathName();

		 SetDlgItemText(IDC_FILENAME,m_filename);
	}
}

void Csetcomm::OnDownload() 
{
	// TODO: Add your control notification handler code here
  CString mSTR;
	CString  mOpenFilename,mOpenFilenameLog;
	CFile file;
	FILE *rfp;
	rfp=NULL;
	CString mstr1="";;
    int 	m_sCount=0;
	double t1;
	char mchBuf1[18];
	char mchBuf2[6];
	float sj,nE1,nE2;

	GetDlgItemText(IDC_FILENAME,mOpenFilename);
	if (mOpenFilename=="") {
		MessageBox("请选择文件!",NULL,NULL);
		return;
	}
		CString mStr;
   SetDlgItemText(IDC_MESSAGE,"正在下载,请等待...");
	try
	{
		if(rfp!=NULL)
			fclose(rfp);
		rfp=fopen(mOpenFilename,"r+t");
		if (rfp==NULL)
			return ;
        bool mStart=false;
	getcomm();
long mline;
char outbuf[256];
char errbuf[256];
char errcode[10];
memset(outbuf,0,256);
memset(errbuf,0,256);
int checknum=0;//用于检验是否成或计数

		while(TRUE)
		{checknum++;
			if(fscanf(rfp,"%s %s\n",&errbuf,
				          &outbuf)!=EOF)
			{
           CFunction FUN;
	//	CString outStr=	FUN.Gethzdz(errbuf,outbuf);//old
		CString outStr=	FUN.Gethzdz(outbuf);
		CString outError=FUN.GetZmdz(errbuf);
				 //  RecordSysErrlog(mSTR);
		memset(outbuf,0,256); 
		memcpy(outbuf,outStr,outStr.GetLength());
		memset(errcode,0,10); 
		memcpy(errcode,outError,outError.GetLength());
        int result;
	//	result=FUN.Encode(errbuf);//old
		result=FUN.Encode(errcode,outbuf);
        if (result==1)
		{	CString mm;
			mm.Format("%d成功,",checknum);
				mSTR=mm+mSTR;

		}
		else
		{CString mm;
		mm.Format("%d失败,",checknum);
		mSTR=mm+mSTR;
		}

			}
			else
			{
			
				break;
			}
	
		}
	}
		catch(...)
	{    
		#ifdef _DEBUG
		afxDump << "File " << "Record File" << " cannot be opened\n";
		return;
		#endif
	}

	if(rfp!=NULL)
	fclose(rfp);
	 SetDlgItemText(IDC_MESSAGE,"下载完毕!");
	  RecordSysErrlog(mSTR);
	 EndComm(gPLC1ComHandleProc);
}

void Csetcomm::getcomm()
{
	UpdateData(true);
	CComboBox *my;
	m_mcss_comm.comm=m_comm;
	m_mcss_comm.baut=atoi(m_baut);
	m_mcss_comm.ByteSize=atol(m_bytesize);

	my=(CComboBox*)GetDlgItem(IDC_COMBO3);
	m_mcss_comm.Parity=my->GetCurSel();
	my=(CComboBox*)GetDlgItem(IDC_COMBO5);
	m_mcss_comm.StopBits=my->GetCurSel();

    gPLC1ComHandleProc=	InitComPort(m_mcss_comm);	
}

⌨️ 快捷键说明

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