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

📄 simulationdoc.h

📁 这是一个在wince下用evc开发的ad信号采集与显示以及信号模拟与分析的程序源码
💻 H
字号:
// SimulationDoc.h : interface of the CSimulationDoc class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_SIMULATIONDOC_H__4F08F84C_BED3_46B3_A068_C759467159F8__INCLUDED_)
#define AFX_SIMULATIONDOC_H__4F08F84C_BED3_46B3_A068_C759467159F8__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#define BASE_ADDRESS 0x1000h
#define STATE_ADDRESS BASE_ADDRESS+1
#define READ_ADDRESS BASE_ADDRESS+2
#define WRITE_ADDRESS BASE_ADDRESS+3
#define BUFFERREAD_LEN 4000
#define BUFFERSHOW_LEN 800

class CSimulationDoc : public CDocument
{
protected: // create from serialization only
	CSimulationDoc();
	DECLARE_DYNCREATE(CSimulationDoc)

// Attributes
public:
	unsigned short* m_pSRData;			// 指向原始剪力数据的指针
	unsigned short* m_pWTData;			// 指向原始重力数据的指针
	int*			m_pCOData;			// 指向原始合力数据的指针
	long			m_SRDataLen;		// 原始剪力数据长度
	long            m_WTDataLen;		// 原始重力数据长度
	long            m_CODataLen;        // 原始合力数据长度
	int				m_SRMaxValue;		// 原始剪力数据中的最大值
	int				m_SRMinValue;		// 原始剪力数据中的最小值
	int             m_WTMaxValue;		// 原始重力数据中的最大值	
	int             m_WTMinValue;		// 原始重力数据中的最小值
	int             m_COMaxValue;		// 原始合力数据中的最大值
	int             m_COMinValue;		// 原始合力数据中的最小值
	int             m_Interval;         // 显示数据的采样频率
	unsigned short* m_pSRShow;			// 保存要显示的剪力数据
	unsigned short* m_pWTShow;			// 保存要显示的重力数据
	int*            m_pCOShow;			// 保存要显示的合力数据

	unsigned short* m_pSimuSRData;		// 指向模拟的剪力数据的指针
	unsigned short* m_pSimuWTData;      // 指向模拟的重力数据的指针
	int*			m_pSimuCOData;      // 指向模拟的合力数据的指针
	long            m_SRSimuDataLen;	// 模拟的剪力数据的长度
	long            m_WTSimuDataLen;	// 模拟的重力数据的长度
	long            m_COSimuDataLen;	// 模拟的合力数据的长度
	int             m_SRSimuMaxValue;	// 模拟的剪力数据中的最大值
	int             m_WTSimuMaxValue;	// 模拟的重力数据中的最大值
	int             m_COSimuMaxValue;	// 模拟的合力数据中的最大值
	int             m_GroupData[6];     // 用于保存用户输入的动态编组数据
	
	unsigned short  m_ReadSRBuffer[BUFFERREAD_LEN];  //读重力数据缓冲区
	unsigned short  m_ReadWTBuffer[BUFFERREAD_LEN];  //读剪力数据缓冲区
	unsigned short  m_ShowSRBuffer[BUFFERSHOW_LEN];	 //显示重力数据缓冲区
	unsigned short  m_ShowWTBuffer[BUFFERSHOW_LEN];	 //显示剪力数据缓冲区
	int             m_ShowCOBuffer[BUFFERSHOW_LEN];  //显示合力数据缓冲区
	int             m_ReadSRLen;					 //已读取的重力数据的长度
	int             m_ReadWTLen;					 //已读取的剪力数据的长度

	long            m_UpPoints[50];					 //保存合力数据中的上跳点	
	long            m_DownPoints[50];				 //保存合力数据中的下跳点
	int             m_LenUpPoints;					 //保存合力数据中的上跳点数
	int             m_LenDownPoints;				 //保存合力数据中的下跳点数

	
// Operations
public:
	// 根据文件名从文件中读取原始数据,并返回读取的数据指针和数据长度
	unsigned short* ReadDataFromFile(long* pDataLen, CString strFileName);
	
	// 从数据中获取最大值
	int GetMaxValue(int* pData,long DataLen);
	int GetMaxValue(unsigned short* pData,long DataLen);
	
	// 根据原始剪力和重力数据产生合力数据
	BOOL GetCOData();

	//数组排序
	void Sort(unsigned short* pData,long len);

	//窗口大小为5的中值滤波
	void MidValueFilter5(unsigned short* pData,long len);
	
	//窗口大小为任意奇数的平滑滤波
	void SmoothFilter(unsigned short* pData,long len,int window);
	void SmoothFilter(int* pData,long len,int window);

	// 根据间隔大小从原始数据中提取要显示的数据
	unsigned short* GetShowData(unsigned short* pData,long len);
    int* GetShowData(int* pData,long len);

	//按一定的间隔从采集数据缓冲区中提取数据到显示数据缓冲区
	void GetShowDataFromBuffer();

	//根据动态分组和标准数据产生模拟数据
	void GenerateSimuData();

	//将生成的模拟数据传送给模拟信号发生板,产生模拟信号
	void DAConvertion();


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CSimulationDoc)
	public:
	virtual BOOL OnNewDocument();
	virtual void Serialize(CArchive& ar);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CSimulationDoc();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	//{{AFX_MSG(CSimulationDoc)
		// NOTE - the ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SIMULATIONDOC_H__4F08F84C_BED3_46B3_A068_C759467159F8__INCLUDED_)

⌨️ 快捷键说明

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