📄 fft_projectdoc.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 + -