histdatadoc.cpp

来自「AD 数据采集卡基本的采集界面」· C++ 代码 · 共 102 行

CPP
102
字号
// HistDataDoc.cpp : implementation file
//

#include "stdafx.h"
#include "HistDataDoc.h"

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

/////////////////////////////////////////////////////////////////////////////
// CHistDataDoc

IMPLEMENT_DYNCREATE(CHistDataDoc, CDocument)

CHistDataDoc::CHistDataDoc()
{
	m_Offset=0;
	m_Rate=1;
}

BOOL CHistDataDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;
	return TRUE;
}

CHistDataDoc::~CHistDataDoc()
{
}


BEGIN_MESSAGE_MAP(CHistDataDoc, CDocument)
	//{{AFX_MSG_MAP(CHistDataDoc)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHistDataDoc diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CHistDataDoc serialization

void CHistDataDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CHistDataDoc commands

BOOL CHistDataDoc::OnOpenDocument(LPCTSTR lpszPathName) 
{
	if (!CDocument::OnOpenDocument(lpszPathName))
		return FALSE;
	
	// TODO: Add your specialized creation code here
	
	// 读出头文件信息
	m_File.Open(lpszPathName, PCI2006_modeRead);
	m_File.SeekToBegin();
	m_File.Read((WORD*)&m_Header,sizeof(m_Header));  // 文件信息由HistoryDigitView类将其置在HistoryDataFrame的对话框条上OnInitialUpdate
	m_ChannelCount=m_Header.ChannelCount;
	m_HeaderSize=sizeof(m_Header);
	m_ReadDataSize=(8192-8192%m_ChannelCount);//一次读文件长度
	
	// 读出第一批数据,以首屏显示
	m_File.Seek(m_HeaderSize,CFile::begin);  
	m_File.Read(m_ADBuffer,m_ReadDataSize*2);
	m_FileLength=(ULONG)(m_File.GetLength()/2); // 文件长度(字)
	return TRUE;
}


void CHistDataDoc:: ReadData(void)
{
	m_File.Seek(m_HeaderSize+(m_Offset*2)*m_ChannelCount,CFile::begin);
	m_File.Read(m_ADBuffer,m_ReadDataSize*2);
}

⌨️ 快捷键说明

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