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

📄 faultdata.cpp

📁 故障测距软件编程
💻 CPP
字号:
// FaultData.cpp : implementation file
//

#include "stdafx.h"
#include "故障测距.h"
#include "FaultData.h"


#include "calculate.h"


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

/////////////////////////////////////////////////////////////////////////////
// CFaultData

IMPLEMENT_DYNCREATE(CFaultData, CFormView)

CFaultData::CFaultData()
	: CFormView(CFaultData::IDD)
{
	//{{AFX_DATA_INIT(CFaultData)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}

CFaultData::~CFaultData()
{
}

void CFaultData::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFaultData)
	DDX_Control(pDX, IDC_HEAD_N, m_HEAD_N);
	DDX_Control(pDX, IDC_HEAD_DEG_UC, m_HEAD_DEG_UC);
	DDX_Control(pDX, IDC_HEAD_DEG_UB, m_HEAD_DEG_UB);
	DDX_Control(pDX, IDC_HEAD_DEG_UA, m_HEAD_DEG_UA);
	DDX_Control(pDX, IDC_HEAD_DEG_IC, m_HEAD_DEG_IC);
	DDX_Control(pDX, IDC_HEAD_DEG_IB, m_HEAD_DEG_IB);
	DDX_Control(pDX, IDC_HEAD_DEG_IA, m_HEAD_DEG_IA);
	DDX_Control(pDX, IDC_HEAD_AMP_UC, m_HEAD_AMP_UC);
	DDX_Control(pDX, IDC_HEAD_AMP_UB, m_HEAD_AMP_UB);
	DDX_Control(pDX, IDC_HEAD_AMP_UA, m_HEAD_AMP_UA);
	DDX_Control(pDX, IDC_HEAD_AMP_IC, m_HEAD_AMP_IC);
	DDX_Control(pDX, IDC_HEAD_AMP_IB, m_HEAD_AMP_IB);
	DDX_Control(pDX, IDC_HEAD_AMP_IA, m_HEAD_AMP_IA);
	DDX_Control(pDX, IDC_END_N, m_END_N);
	DDX_Control(pDX, IDC_END_DEG_UC, m_END_DEG_UC);
	DDX_Control(pDX, IDC_END_DEG_UB, m_END_DEG_UB);
	DDX_Control(pDX, IDC_END_DEG_UA, m_END_DEG_UA);
	DDX_Control(pDX, IDC_END_DEG_IC, m_END_DEG_IC);
	DDX_Control(pDX, IDC_END_DEG_IB, m_END_DEG_IB);
	DDX_Control(pDX, IDC_END_DEG_IA, m_END_DEG_IA);
	DDX_Control(pDX, IDC_END_AMP_UC, m_END_AMP_UC);
	DDX_Control(pDX, IDC_END_AMP_UB, m_END_AMP_UB);
	DDX_Control(pDX, IDC_END_AMP_UA, m_END_AMP_UA);
	DDX_Control(pDX, IDC_END_AMP_IC, m_END_AMP_IC);
	DDX_Control(pDX, IDC_END_AMP_IB, m_END_AMP_IB);
	DDX_Control(pDX, IDC_END_AMP_IA, m_END_AMP_IA);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFaultData, CFormView)
	//{{AFX_MSG_MAP(CFaultData)
	ON_BN_CLICKED(IDC_FAULT_DATA_HEAD, OnFaultDataHead)
	ON_BN_CLICKED(IDC_FAULT_DATA_END, OnFaultDataEnd)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFaultData diagnostics

#ifdef _DEBUG
void CFaultData::AssertValid() const
{
	CFormView::AssertValid();

}

void CFaultData::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);

}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFaultData message handlers

void CFaultData::OnFaultDataHead() //首端数据
{
	FILE *fp ;
	char filename[300] ;
	CString S ;
	int i ;

	CFileDialog fileDlg (TRUE, NULL, NULL,
      OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, "*.dat|*.dat|All files|*.*||", this);  
   
	if( fileDlg.DoModal ()==IDOK )
	{	
		flag_fault_head = HAVE_READ ;
		CString pathName = fileDlg.GetPathName() ;
		strncpy(filename,(LPCTSTR)pathName,sizeof(filename)) ;
		fp = fopen(filename,"r") ;	

		//=====读入首端故障数据=====//
		fscanf(fp,"%d",&(head_data.sample_point)) ;
		S.Format("%d",head_data.sample_point) ;
		m_HEAD_N.SetSel(0,-1) ;
		m_HEAD_N.ReplaceSel(S) ;

		for(i=0;i<head_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ua_head[i])) ;
		for(i=0;i<head_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ub_head[i])) ;
		for(i=0;i<head_data.sample_point;i++)
			fscanf(fp,"%lf",&(Uc_head[i])) ;
		for(i=0;i<head_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ia_head[i])) ;
		for(i=0;i<head_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ib_head[i])) ;
		for(i=0;i<head_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ic_head[i])) ;

		//对首端数据进行FFT
		//ua
		head_data.ua = ::FFT_ZY(Ua_head,head_data.sample_point) ;
		S.Format("%.2lf",head_data.ua.amp) ;
		m_HEAD_AMP_UA.SetSel(0,-1) ;
		m_HEAD_AMP_UA.ReplaceSel(S) ;
		S.Format("%.2lf",head_data.ua.deg) ;
		m_HEAD_DEG_UA.SetSel(0,-1) ;
		m_HEAD_DEG_UA.ReplaceSel(S) ;

		//ub
		head_data.ub = ::FFT_ZY(Ub_head,head_data.sample_point) ;
		S.Format("%.2lf",head_data.ub.amp) ;
		m_HEAD_AMP_UB.SetSel(0,-1) ;
		m_HEAD_AMP_UB.ReplaceSel(S) ;
		S.Format("%.2lf",head_data.ub.deg) ;
		m_HEAD_DEG_UB.SetSel(0,-1) ;
		m_HEAD_DEG_UB.ReplaceSel(S) ;

		//uc
		head_data.uc = ::FFT_ZY(Uc_head,head_data.sample_point) ;
		S.Format("%.2lf",head_data.uc.amp) ;
		m_HEAD_AMP_UC.SetSel(0,-1) ;
		m_HEAD_AMP_UC.ReplaceSel(S) ;
		S.Format("%.2lf",head_data.uc.deg) ;
		m_HEAD_DEG_UC.SetSel(0,-1) ;
		m_HEAD_DEG_UC.ReplaceSel(S) ;

		//Ia
		head_data.ia = ::FFT_ZY(Ia_head,head_data.sample_point) ;
		S.Format("%.2lf",head_data.ia.amp) ;
		m_HEAD_AMP_IA.SetSel(0,-1) ;
		m_HEAD_AMP_IA.ReplaceSel(S) ;
		S.Format("%.2lf",head_data.ia.deg) ;
		m_HEAD_DEG_IA.SetSel(0,-1) ;
		m_HEAD_DEG_IA.ReplaceSel(S) ;

		//Ib
		head_data.ib = ::FFT_ZY(Ib_head,head_data.sample_point) ;
		S.Format("%.2lf",head_data.ib.amp) ;
		m_HEAD_AMP_IB.SetSel(0,-1) ;
		m_HEAD_AMP_IB.ReplaceSel(S) ;
		S.Format("%.2lf",head_data.ib.deg) ;
		m_HEAD_DEG_IB.SetSel(0,-1) ;
		m_HEAD_DEG_IB.ReplaceSel(S) ;

		//Ic
		head_data.ic = ::FFT_ZY(Ic_head,head_data.sample_point) ;
		S.Format("%.2lf",head_data.ic.amp) ;
		m_HEAD_AMP_IC.SetSel(0,-1) ;
		m_HEAD_AMP_IC.ReplaceSel(S) ;
		S.Format("%.2lf",head_data.ic.deg) ;
		m_HEAD_DEG_IC.SetSel(0,-1) ;
		m_HEAD_DEG_IC.ReplaceSel(S) ;


	}
	
	
}

void CFaultData::Initial_data_head()
{
	flag_fault_head = NON_READ ;
}

void CFaultData::Insert_data_head()
{
	CString S ;

	S.Format("%d",head_data.sample_point) ;
	m_HEAD_N.SetSel(0,-1) ;
	m_HEAD_N.ReplaceSel(S) ;

	//ua
	S.Format("%.2lf",head_data.ua.amp) ;
	m_HEAD_AMP_UA.SetSel(0,-1) ;
	m_HEAD_AMP_UA.ReplaceSel(S) ;
	S.Format("%.2lf",head_data.ua.deg) ;
	m_HEAD_DEG_UA.SetSel(0,-1) ;
	m_HEAD_DEG_UA.ReplaceSel(S) ;

	//ub
	S.Format("%.2lf",head_data.ub.amp) ;
	m_HEAD_AMP_UB.SetSel(0,-1) ;
	m_HEAD_AMP_UB.ReplaceSel(S) ;
	S.Format("%.2lf",head_data.ub.deg) ;
	m_HEAD_DEG_UB.SetSel(0,-1) ;
	m_HEAD_DEG_UB.ReplaceSel(S) ;

	//uc
	S.Format("%.2lf",head_data.uc.amp) ;
	m_HEAD_AMP_UC.SetSel(0,-1) ;
	m_HEAD_AMP_UC.ReplaceSel(S) ;
	S.Format("%.2lf",head_data.uc.deg) ;
	m_HEAD_DEG_UC.SetSel(0,-1) ;
	m_HEAD_DEG_UC.ReplaceSel(S) ;

	//Ia
	S.Format("%.2lf",head_data.ia.amp) ;
	m_HEAD_AMP_IA.SetSel(0,-1) ;
	m_HEAD_AMP_IA.ReplaceSel(S) ;
	S.Format("%.2lf",head_data.ia.deg) ;
	m_HEAD_DEG_IA.SetSel(0,-1) ;
	m_HEAD_DEG_IA.ReplaceSel(S) ;

	//Ib
	S.Format("%.2lf",head_data.ib.amp) ;
	m_HEAD_AMP_IB.SetSel(0,-1) ;
	m_HEAD_AMP_IB.ReplaceSel(S) ;
	S.Format("%.2lf",head_data.ib.deg) ;
	m_HEAD_DEG_IB.SetSel(0,-1) ;
	m_HEAD_DEG_IB.ReplaceSel(S) ;

	//Ic
	S.Format("%.2lf",head_data.ic.amp) ;
	m_HEAD_AMP_IC.SetSel(0,-1) ;
	m_HEAD_AMP_IC.ReplaceSel(S) ;
	S.Format("%.2lf",head_data.ic.deg) ;
	m_HEAD_DEG_IC.SetSel(0,-1) ;
	m_HEAD_DEG_IC.ReplaceSel(S) ;

}

void CFaultData::Initial_data_end()
{
	flag_fault_end = NON_READ ;

}

void CFaultData::Insert_data_end()
{
	CString S ;

	S.Format("%d",end_data.sample_point) ;
	m_END_N.SetSel(0,-1) ;
	m_END_N.ReplaceSel(S) ;

	//ua
	S.Format("%.2lf",end_data.ua.amp) ;
	m_END_AMP_UA.SetSel(0,-1) ;
	m_END_AMP_UA.ReplaceSel(S) ;
	S.Format("%.2lf",end_data.ua.deg) ;
	m_END_DEG_UA.SetSel(0,-1) ;
	m_END_DEG_UA.ReplaceSel(S) ;

	//ub
	S.Format("%.2lf",end_data.ub.amp) ;
	m_END_AMP_UB.SetSel(0,-1) ;
	m_END_AMP_UB.ReplaceSel(S) ;
	S.Format("%.2lf",end_data.ub.deg) ;
	m_END_DEG_UB.SetSel(0,-1) ;
	m_END_DEG_UB.ReplaceSel(S) ;

	//uc
	S.Format("%.2lf",end_data.uc.amp) ;
	m_END_AMP_UC.SetSel(0,-1) ;
	m_END_AMP_UC.ReplaceSel(S) ;
	S.Format("%.2lf",end_data.uc.deg) ;
	m_END_DEG_UC.SetSel(0,-1) ;
	m_END_DEG_UC.ReplaceSel(S) ;

	//Ia
	S.Format("%.2lf",end_data.ia.amp) ;
	m_END_AMP_IA.SetSel(0,-1) ;
	m_END_AMP_IA.ReplaceSel(S) ;
	S.Format("%.2lf",end_data.ia.deg) ;
	m_END_DEG_IA.SetSel(0,-1) ;
	m_END_DEG_IA.ReplaceSel(S) ;

	//Ib
	S.Format("%.2lf",end_data.ib.amp) ;
	m_END_AMP_IB.SetSel(0,-1) ;
	m_END_AMP_IB.ReplaceSel(S) ;
	S.Format("%.2lf",end_data.ib.deg) ;
	m_END_DEG_IB.SetSel(0,-1) ;
	m_END_DEG_IB.ReplaceSel(S) ;

	//Ic
	S.Format("%.2lf",end_data.ic.amp) ;
	m_END_AMP_IC.SetSel(0,-1) ;
	m_END_AMP_IC.ReplaceSel(S) ;
	S.Format("%.2lf",end_data.ic.deg) ;
	m_END_DEG_IC.SetSel(0,-1) ;
	m_END_DEG_IC.ReplaceSel(S) ;


}

void CFaultData::OnFaultDataEnd() 
{
	FILE *fp ;
	char filename[300] ;
	CString S ;
	int i ;

	CFileDialog fileDlg (TRUE, NULL, NULL,
      OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, "*.dat|*.dat|All files|*.*||", this);  
   
	if( fileDlg.DoModal ()==IDOK )
	{		
		flag_fault_end = HAVE_READ ;
		CString pathName = fileDlg.GetPathName() ;
		strncpy(filename,(LPCTSTR)pathName,sizeof(filename)) ;
		fp = fopen(filename,"r") ;	

		//=====读入末端故障数据=====//
		fscanf(fp,"%d",&(end_data.sample_point)) ;
		S.Format("%d",end_data.sample_point) ;
		m_END_N.SetSel(0,-1) ;
		m_END_N.ReplaceSel(S) ;

		for(i=0;i<end_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ua_end[i])) ;
		for(i=0;i<end_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ub_end[i])) ;
		for(i=0;i<end_data.sample_point;i++)
			fscanf(fp,"%lf",&(Uc_end[i])) ;
		for(i=0;i<end_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ia_end[i])) ;
		for(i=0;i<end_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ib_end[i])) ;
		for(i=0;i<end_data.sample_point;i++)
			fscanf(fp,"%lf",&(Ic_end[i])) ;

		//对末端数据进行FFT
		//ua
		end_data.ua = ::FFT_ZY(Ua_end,end_data.sample_point) ;
		S.Format("%.2lf",end_data.ua.amp) ;
		m_END_AMP_UA.SetSel(0,-1) ;
		m_END_AMP_UA.ReplaceSel(S) ;
		S.Format("%.2lf",end_data.ua.deg) ;
		m_END_DEG_UA.SetSel(0,-1) ;
		m_END_DEG_UA.ReplaceSel(S) ;

		//ub
		end_data.ub = ::FFT_ZY(Ub_end,end_data.sample_point) ;
		S.Format("%.2lf",end_data.ub.amp) ;
		m_END_AMP_UB.SetSel(0,-1) ;
		m_END_AMP_UB.ReplaceSel(S) ;
		S.Format("%.2lf",end_data.ub.deg) ;
		m_END_DEG_UB.SetSel(0,-1) ;
		m_END_DEG_UB.ReplaceSel(S) ;

		//uc
		end_data.uc = ::FFT_ZY(Uc_end,end_data.sample_point) ;
		S.Format("%.2lf",end_data.uc.amp) ;
		m_END_AMP_UC.SetSel(0,-1) ;
		m_END_AMP_UC.ReplaceSel(S) ;
		S.Format("%.2lf",end_data.uc.deg) ;
		m_END_DEG_UC.SetSel(0,-1) ;
		m_END_DEG_UC.ReplaceSel(S) ;

		//Ia
		end_data.ia = ::FFT_ZY(Ia_end,end_data.sample_point) ;
		S.Format("%.2lf",end_data.ia.amp) ;
		m_END_AMP_IA.SetSel(0,-1) ;
		m_END_AMP_IA.ReplaceSel(S) ;
		S.Format("%.2lf",end_data.ia.deg) ;
		m_END_DEG_IA.SetSel(0,-1) ;
		m_END_DEG_IA.ReplaceSel(S) ;

		//Ib
		end_data.ib = ::FFT_ZY(Ib_end,end_data.sample_point) ;
		S.Format("%.2lf",end_data.ib.amp) ;
		m_END_AMP_IB.SetSel(0,-1) ;
		m_END_AMP_IB.ReplaceSel(S) ;
		S.Format("%.2lf",end_data.ib.deg) ;
		m_END_DEG_IB.SetSel(0,-1) ;
		m_END_DEG_IB.ReplaceSel(S) ;

		//Ic
		end_data.ic = ::FFT_ZY(Ic_end,end_data.sample_point) ;
		S.Format("%.2lf",end_data.ic.amp) ;
		m_END_AMP_IC.SetSel(0,-1) ;
		m_END_AMP_IC.ReplaceSel(S) ;
		S.Format("%.2lf",end_data.ic.deg) ;
		m_END_DEG_IC.SetSel(0,-1) ;
		m_END_DEG_IC.ReplaceSel(S) ;


	}
	
	
}

void CFaultData::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	if(flag_fault_head==NON_READ)
		//参数初始化
		CFaultData::Initial_data_head() ;
	else if(flag_fault_head==HAVE_READ)
		//载入已经读入的数据
		CFaultData::Insert_data_head() ;

	if(flag_fault_end==NON_READ)
		//参数初始化
		CFaultData::Initial_data_end() ;
	else if(flag_fault_end==HAVE_READ)
		//载入已经读入的数据
		CFaultData::Insert_data_end() ;

}

⌨️ 快捷键说明

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