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

📄 smt5kdoc.cpp

📁 一个很好的VC++程序
💻 CPP
字号:
// SMT5KDoc.cpp : implementation of the CSMT5KDoc class
//

#include "stdafx.h"
#include "SMT5K.h"

#include "SMT5KDoc.h"

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

extern  int	gSendCmdTime;

/////////////////////////////////////////////////////////////////////////////
// CSMT5KDoc

IMPLEMENT_DYNCREATE(CSMT5KDoc, CDocument)

BEGIN_MESSAGE_MAP(CSMT5KDoc, CDocument)
	//{{AFX_MSG_MAP(CSMT5KDoc)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSMT5KDoc construction/destruction

CSMT5KDoc::CSMT5KDoc()
{
	// TODO: add one-time construction code here
	int i;
	for(i=0;i<4;i++)
	{
		LPCount[i] = 0;
		EPCount[i] = 0;
		CVCount[i] = 0;
		CACount[i] = 0;
		CVArray[i][0] = 0;
		CAArray[i][0] = 0;
		LPArray[i][0] = 0;
		EPArray[i][0] = 0;
	}
}

CSMT5KDoc::~CSMT5KDoc()
{
}

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

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

	return TRUE;
}

void CSMT5KDoc::ClearData(int AxisNo)
{
		LPCount[AxisNo] = 0;
		EPCount[AxisNo] = 0;
		CVCount[AxisNo] = 0;
		CACount[AxisNo] = 0;

		int i;
		for(i=0;i<1024;i++)  LPArray[AxisNo][i] = 0;
}

void CSMT5KDoc::AddData(int ParamID, int AxisNo, LONG lData)
{
	CString str;

	if(ParamID==0)
	{
		LPArray[AxisNo][LPCount[AxisNo]] = lData;
		LPCount[AxisNo]++;
	}
	
	else if(ParamID==1)
	{
		EPArray[AxisNo][EPCount[AxisNo]] = lData;
		EPCount[AxisNo]++;
	}

	else if(ParamID==2)
	{
		CVArray[AxisNo][CVCount[AxisNo]] = lData;

		if(CVCount[AxisNo]==0)
			TickStart[AxisNo] = gSendCmdTime;
		TimeArray[AxisNo][CVCount[AxisNo]] = gSendCmdTime - TickStart[AxisNo];

		CVCount[AxisNo]++;
	}

	else if(ParamID==3)
	{
		CAArray[AxisNo][CACount[AxisNo]] = lData;
		CACount[AxisNo]++;
	}
}

/////////////////////////////////////////////////////////////////////////////
// CSMT5KDoc serialization

void CSMT5KDoc::Serialize(CArchive& ar)
{
	CString strLine;
	const CFile* pFile = ar.GetFile();
	CString strFileName = pFile->GetFileName();
	int i;
	int SampleCount;
	
	strFileName.MakeLower();

	if (ar.IsStoring())
	{
		// TODO: add storing code here
		//LP
		if(strFileName=="lpx.txt")
			for(i=0;i<LPCount[0];i++)
			{
			strLine.Format("%d\n",LPArray[0][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="lpy.txt")
			for(i=0;i<LPCount[1];i++)
			{
			strLine.Format("%d\n",LPArray[1][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="lpz.txt")
			for(i=0;i<LPCount[2];i++)
			{
			strLine.Format("%d\n",LPArray[2][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="lpu.txt")
			for(i=0;i<LPCount[3];i++)
			{
			strLine.Format("%d\n",LPArray[3][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		// EP
		else if(strFileName=="epx.txt")
			for(i=0;i<EPCount[0];i++)
			{
			strLine.Format("%d\n",EPArray[0][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="epy.txt")
			for(i=0;i<EPCount[1];i++)
			{
			strLine.Format("%d\n",EPArray[1][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="epz.txt")
			for(i=0;i<EPCount[2];i++)
			{
			strLine.Format("%d\n",EPArray[2][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="epu.txt")
			for(i=0;i<EPCount[3];i++)
			{
			strLine.Format("%d\n",EPArray[3][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		// CV
		else if(strFileName=="cvx.txt")
			for(i=0;i<CVCount[0];i++)
			{
			strLine.Format("%d\n",CVArray[0][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="cvy.txt")
			for(i=0;i<CVCount[1];i++)
			{
			strLine.Format("%d\n",CVArray[1][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="cvz.txt")
			for(i=0;i<CVCount[2];i++)
			{
			strLine.Format("%d\n",CVArray[2][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="cvu.txt")
			for(i=0;i<CVCount[3];i++)
			{
			strLine.Format("%d\n",CVArray[3][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		// CA
		else if(strFileName=="cax.txt")
			for(i=0;i<CACount[0];i++)
			{
			strLine.Format("%d\n",CAArray[0][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="cay.txt")
			for(i=0;i<CACount[1];i++)
			{
			strLine.Format("%d\n",CAArray[1][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="caz.txt")
			for(i=0;i<CACount[2];i++)
			{
			strLine.Format("%d\n",CAArray[2][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="cau.txt")
			for(i=0;i<CACount[3];i++)
			{
			strLine.Format("%d\n",CAArray[3][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		else if(strFileName=="allx.txt")
		{
			strLine.Format("       LP(X)       CV(X)       CA(X)       Time(ms)\t\t(%d Samples)\n",LPCount[0]);
			ar.WriteString((LPCTSTR)strLine);
			for(i=0;i<LPCount[0];i++)
			{
			strLine.Format("%10d\t%10d\t%10d\t%10d\n",LPArray[0][i],CVArray[0][i],CAArray[0][i],TimeArray[0][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		}
		else if(strFileName=="ally.txt")
		{
			strLine.Format("       LP(Y)       CV(Y)       CA(Y)       Time(ms)\t\t(%d Samples)\n",LPCount[1]);
			ar.WriteString((LPCTSTR)strLine);
			for(i=0;i<LPCount[1];i++)
			{
			strLine.Format("%10d\t%10d\t%10d\t%10d\n",LPArray[1][i],CVArray[1][i],CAArray[1][i],TimeArray[1][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		}
		else if(strFileName=="allz.txt")
		{
			strLine.Format("       LP(Z)       CV(Z)       CA(Z)       Time(ms)\t\t(%d Samples)\n",LPCount[2]);
			ar.WriteString((LPCTSTR)strLine);
			for(i=0;i<LPCount[2];i++)
			{
			strLine.Format("%10d\t%10d\t%10d\t%10d\n",LPArray[2][i],CVArray[2][i],CAArray[2][i],TimeArray[2][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		}
		else if(strFileName=="allu.txt")
		{
			strLine.Format("       LP(U)       CV(U)       CA(U)       Time(ms)\t\t(%d Samples)\n",LPCount[3]);
			ar.WriteString((LPCTSTR)strLine);
			for(i=0;i<LPCount[3];i++)
			{
			strLine.Format("%10d\t%10d\t%10d\t%10d\n",LPArray[3][i],CVArray[3][i],CAArray[3][i],TimeArray[3][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		}
		else if(strFileName=="ipl.txt")
		{
			strLine.Format("       LP(X)       LP(Y)       LP(Z)       LP(U)\n");
			ar.WriteString((LPCTSTR)strLine);
			
			SampleCount = max(max(LPCount[0],LPCount[1]),max(LPCount[2],LPCount[3]));
			
			for(i=0;i<SampleCount;i++)
			{
			strLine.Format("%10d\t%10d\t%10d\t%10d\n",LPArray[0][i],LPArray[1][i],LPArray[2][i],LPArray[3][i]);
			ar.WriteString((LPCTSTR)strLine);
			}
		}
	}
	else
	{
		// TODO: add loading code here
		if(strFileName=="lpx.txt")
			while(ar.ReadString(strLine))
				AfxMessageBox(strLine);
	}
}

/////////////////////////////////////////////////////////////////////////////
// CSMT5KDoc diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CSMT5KDoc commands

⌨️ 快捷键说明

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