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

📄 fft_projectdoc.cpp

📁 用VC++实现串口通信
💻 CPP
字号:
// FFT_PROJECTDoc.cpp : implementation of the CFFT_PROJECTDoc class
//

#include "stdafx.h"
#include "FFT_PROJECT.h"
#include "DataTRAN.h"
#include "FFT_PROJECTDoc.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFFT_PROJECTDoc

IMPLEMENT_DYNCREATE(CFFT_PROJECTDoc, CDocument)

BEGIN_MESSAGE_MAP(CFFT_PROJECTDoc, CDocument)
	//{{AFX_MSG_MAP(CFFT_PROJECTDoc)
	ON_COMMAND(ID_TRANSLATE, OnTranslate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFFT_PROJECTDoc construction/destruction

CFFT_PROJECTDoc::CFFT_PROJECTDoc()
{
	// TODO: add one-time construction code here
int i;
for(i=0;i<1024;i++)  //清空接收数组,为第一次接收数组做准备;
origindata[i]=0;     
receivedata=_T("");  // 清空接收字符串,为第一次接收数组做准备;
com1_baud="9600";      //  默认COM1的波特率为9600;
com1_databits="8";     //  默认COM1的传输数据为8位;
com1_datastopbits="1"; //  默认COM1的数据停止位为1位;
com2_baud="9600";      //  默认COM2的波特率为9600;
com2_databits="8";     //  默认COM2的传输数据为8位;
com2_datastopbits="1";  // 默认COM2的数据停止位为1位;
datareceived=false;   // 设置是否接收啦数据的标志;
datatyle=1;           // 初始接收数据的形式为ASII;
Com1Open=false;       // 程序开始关闭COM2;
Com2Open=false;       //程序开始关闭COM2;
endChar=false;        // 接收标志设置为逻辑非;
nFttLength=16;        //默认FTT变换的长度为32点;
nFttFinshed=false;    //设置标志FTT完成为空;
nCount=0;            //初始数据的长度为0;
colorset=0;            //背景色的设置;
desnCount=4;           //蝶形的级数;
nShowFtt=true;        //显示频谱的标志;
nShowsignal=false;     //显示信号的标志;
nShowrate=30;          //显示视图的比例;
showallrate=false;    //单独缩放频谱;
com1_dataparity="NONE";
com2_dataparity="NONE";
prenFttLength=16;      //前一次的变换长度;
newchang=false;
//blackcolor=RGB(0,0,0);

//pdlg=NULL;     
}

CFFT_PROJECTDoc::~CFFT_PROJECTDoc()
{ //delete pdlg;
}

BOOL CFFT_PROJECTDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CFFT_PROJECTDoc serialization

void CFFT_PROJECTDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
		for(int i=0;i<1024;i++)
		origindata[i]=0;	
char c;

CString strtemp;//临时字符串,为转化成浮点数坐准备;
int len=0;
while(1)
{ar>>c;
if(c=='e'||c=='E')//结束字符跳出;
break;
if(c=='s'||c=='S')//开始字符忽略,是传输协议中加的标志字符;
continue;
if(c!=' ')//如果没把一个数据接受完,继续加入字符串; 
strtemp+=c;
 else    //一个浮点数的字符串类型全部取到,进行转化并把临时字符串清空为下个数据坐准备;
{ origindata[len++]=atof(strtemp);
      //AfxMessageBox(pDoc->strtemp);
      strtemp=_T("");
 }
}
origindata[len++]=atof(strtemp);
nCount=len;
datareceived=true;
nFttFinshed=false;
//AfxMessageBox("数据已输入");
CMainFrame *pframe;
pframe=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CStatusBar *pstatus=&pframe->m_wndStatusBar;
int nIndex=pstatus->CommandToIndex(ID_INDICATOR_DATAIN );
pstatus->SetPaneInfo(nIndex,ID_INDICATOR_DATAIN ,SBPS_NORMAL,80);
pstatus->SetPaneText(nIndex,"数据接收好");
}
}

/////////////////////////////////////////////////////////////////////////////
// CFFT_PROJECTDoc diagnostics

#ifdef _DEBUG
void CFFT_PROJECTDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CFFT_PROJECTDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFFT_PROJECTDoc commands

void CFFT_PROJECTDoc::OnTranslate() 
{
/*	// TODO: Add your command handler code here
 if(!(Com1Open||Com2Open))	
 {AfxMessageBox("目前还没打开任何串口,请选择一个串口");
return;}
 if(pdlg==NULL)
 {pdlg=new CDataTRAN(this);
 pdlg->Create(CDataTRAN::IDD,this);
 pdlg->ShowWindow();}
 if(Com1Open)
 { pdlg.m_mscomm2.SetPortOpen(false);
    pdlg.m_mscomm1.SetCommPort(1);
	pdlg.m_mscomm1.SetInputMode(datatyle);
	pdlg.m_mscomm1.SetInBufferSize(1024);
	pdlg.m_mscomm1.SetOutBufferSize(512);
    pdlg.m_mscomm1.SetSettings("com1_baud,n, com1_databits,com2_datastopbits");
    pdlg.m_mscomm1.SetRThreshold(1);
	pdlg.m_mscomm1.SetPortOpen(true);
	pdlg.m_mscomm1.SetInputLen(0);
	pdlg.m_mscomm1.GetInput();
	pdlg.m_mscomm1.SetPortOpen(false);	
	pdlg.m_mscomm1.SetCommPort(0);
//AfxMessageBox("串口1打开");
// pdlg.DoModal();
	
 }
if(Com2Open)
 {	pdlg.m_mscomm1.SetPortOpen(false);
	pdlg.m_mscomm2.SetCommPort(2);
	pdlg.m_mscomm2.SetInputMode(datatyle);
	pdlg.m_mscomm2.SetInBufferSize(1024);
	pdlg.m_mscomm2.SetOutBufferSize(512);
    pdlg.m_mscomm2.SetSettings("com2_baud,n, com2_databits,com2_datastopbits");
    pdlg.m_mscomm2.SetRThreshold(1);
	pdlg.m_mscomm2.SetPortOpen(true);
	pdlg.m_mscomm2.SetInputLen(0);
	pdlg.m_mscomm2.GetInput();
	pdlg.m_mscomm2.SetPortOpen(false);	
	pdlg.m_mscomm2.SetCommPort(0);

}*/
}

⌨️ 快捷键说明

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