亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? simulationdoc.cpp

?? 這是一個在wince下用evc開發的ad信號采集與顯示以及信號模擬與分析的程序源碼
?? CPP
字號:
// SimulationDoc.cpp : implementation of the CSimulationDoc class
//

#include "stdafx.h"
#include "Simulation.h"

#include "SimulationDoc.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSimulationDoc

IMPLEMENT_DYNCREATE(CSimulationDoc, CDocument)

BEGIN_MESSAGE_MAP(CSimulationDoc, CDocument)
	//{{AFX_MSG_MAP(CSimulationDoc)
		// 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()

/////////////////////////////////////////////////////////////////////////////
// CSimulationDoc construction/destruction

CSimulationDoc::CSimulationDoc()
{
	// TODO: add one-time construction code here
	m_pSRData=NULL;
	m_pWTData=NULL;
	m_pCOData=NULL;
	m_SRDataLen=0;
	m_WTDataLen=0;
	m_CODataLen=0;     
	m_SRMaxValue=0;
	m_SRMinValue=65535;
	m_WTMaxValue=0;
	m_WTMinValue=65535;
	m_COMaxValue=0;
	m_COMinValue=65535;
	m_Interval = 8;//200
	m_pSRShow = NULL;
	m_pWTShow = NULL;
	m_pCOShow = NULL;

	this->m_pSimuCOData=NULL;
	this->m_pSimuSRData=NULL;
	this->m_pSimuWTData=NULL;
	this->m_SRSimuDataLen=0;
	this->m_WTSimuDataLen=0;
	this->m_COSimuDataLen=0;

	m_ReadSRLen=0;
	m_ReadWTLen=0;

	memset(m_UpPoints,0,50*sizeof(long));
	memset(m_DownPoints,0,50*sizeof(long));
	this->m_LenUpPoints=0;
	this->m_LenDownPoints=0;

}

CSimulationDoc::~CSimulationDoc()
{
	if(m_pSRData)
	{
		free(m_pSRData);
		m_pSRData=NULL;
	}
	if(m_pWTData)
	{
		free(m_pWTData);
		m_pWTData=NULL;
	}
	if(m_pCOData)
	{
		free(m_pCOData);
		m_pCOData=NULL;
	}

	if(m_pSRShow)
	{
		free(m_pSRShow);
		m_pSRShow = NULL;
	}

	if(m_pWTShow)
	{
		free(m_pWTShow);
		m_pWTShow = NULL;
	}
	if(m_pCOShow)
	{
		free(m_pCOShow);
		m_pCOShow = NULL;
	}
}

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

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

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CSimulationDoc serialization

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

/////////////////////////////////////////////////////////////////////////////
// CSimulationDoc diagnostics

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

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

/////////////////////////////////////////////////////////////////////////////
// CSimulationDoc commands
/*----------------------------------------------------------------------------
function:		從文件中讀取數據
parameters:
pDataLen		通過指針傳回讀取的數據長度
strFileName		文件名字符串
return:			若正確讀取則返回指向讀取數據的指針,否則返回NULL
author:         唐富華
date:           2004.4.14
-----------------------------------------------------------------------------*/	
unsigned short* CSimulationDoc::ReadDataFromFile(long* pDataLen, CString strFileName)
{
	CFile myFile;
	unsigned short* pData=NULL;
	if(!myFile.Open( strFileName, CFile::modeRead | CFile::typeBinary))
	{
		AfxMessageBox(_T("Could not open the file:")+strFileName);
		return NULL;
	}
	else
	{
		long lFileLen = myFile.GetLength();
		pData = (unsigned short*)malloc(lFileLen);
		if(pData==NULL)
		{
			AfxMessageBox(_T("can't alloc memory when read file:")+strFileName);
			return NULL;
		}
		long len = myFile.ReadHuge(pData,lFileLen);
		myFile.Close();
		long DataLen = lFileLen/sizeof(unsigned short);
		*pDataLen=DataLen;
		return pData;
	}
}

/*----------------------------------------------------------------------------
function:		從數據中獲取最大值
parameters:
pData			指向保存有原始數據的指針
DataLen         數據長度
return:			若數據指針不為空則返回最大值,否則返回0
author:         唐富華
date:           2004.4.14
-----------------------------------------------------------------------------*/	
int CSimulationDoc::GetMaxValue(unsigned short* pData,long DataLen)
{
	int MaxValue=0;
	if(pData==NULL)
	{
		AfxMessageBox(_T("the data pointer is NULL!"));
		return 0;
	}

	for(int i=0;i<DataLen;i++)
	{
		if(pData[i]>MaxValue)
			MaxValue=pData[i];
	}
	return MaxValue;
}

int CSimulationDoc::GetMaxValue(int* pData,long DataLen)
{
	int MaxValue=0;
	if(pData==NULL)
	{
		AfxMessageBox(_T("the data pointer is NULL!"));
		return 0;
	}

	for(int i=0;i<DataLen;i++)
	{
		if(pData[i]>MaxValue)
			MaxValue=pData[i];
	}
	return MaxValue;
}

/*----------------------------------------------------------------------------
function:		根據剪力和重力數據生成合力數據
parameters:	無
return:			若數據指針不為空則返回TRUE,否則返回FALSE
author:         唐富華
date:           2004.4.14
-----------------------------------------------------------------------------*/	
BOOL CSimulationDoc::GetCOData()
{
	if(!m_pSRData||!m_pWTData)
	{
		AfxMessageBox(_T("the data pointer is NULL!"));
		return FALSE;
	}

	if(m_SRDataLen>m_WTDataLen)
		m_CODataLen=m_WTDataLen;
	else
		m_CODataLen=m_SRDataLen;

	if(m_pCOData)
		free(m_pCOData);
	m_pCOData = (int*)malloc(m_CODataLen*sizeof(int));
	if(m_pCOData==NULL)
	{
		AfxMessageBox(_T("can't alloc memory when generate composite force"));
		return FALSE;
	}

	for(int i=0;i<m_CODataLen;i++)
	{
		m_pCOData[i]=m_pSRData[i]+m_pWTData[i];
	}
	return TRUE;
}

/*----------------------------------------------------------------------------
function:		根據間隔大小從原始數據中提取顯示數據 
parameters:	
pData           指向原始數據的指針
len             原始數據的長度
return:			返回要顯示的數據的指針
author:         唐富華
date:           2004.4.30
-----------------------------------------------------------------------------*/	
unsigned short* CSimulationDoc::GetShowData(unsigned short* pData,long len)
{
	if(!pData||len<1)
		return NULL;
	unsigned short* pTemp;
	long datalen=len/m_Interval+1;
	pTemp=(unsigned short*)malloc(datalen*sizeof(unsigned short));
	int m=0;
	for(int k=0;k<len;k++)
	{
		if(k%m_Interval==0)
		{
			pTemp[m]=pData[k];
			m++;
		}
	}
	return pTemp;
}
int* CSimulationDoc::GetShowData(int* pData,long len)
{
	if(!pData||len<1)
		return NULL;
	int* pTemp;
	long datalen=len/m_Interval+1;
	pTemp=(int*)malloc(datalen*sizeof(int));
	int m=0;
	for(int k=0;k<len;k++)
	{
		if(k%m_Interval==0)
		{
			pTemp[m]=pData[k];
			m++;
		}
	}
	return pTemp;
}

/*----------------------------------------------------------------------------
function:		對數組進行排序
parameters:	
pData           數據指針
len             數據長度
return:			無
author:         唐富華
date:           2004.4.16
-----------------------------------------------------------------------------*/	
void CSimulationDoc::Sort(unsigned short* pData,long len)
{
	int k;
	unsigned short t;
	for(int i=0;i<len-1;i++)
	{
		k=i;
		for(int j=i+1;j<len;j++)
		{
			if(pData[j]<pData[k]) k=j;
		}
		t=pData[k];pData[k]=pData[i];pData[i]=t;
	}
}

/*----------------------------------------------------------------------------
function:		窗口大小為5的中值濾波
parameters:	
pData           原始數據指針
len             數據長度
return:			無
author:         唐富華
date:           2004.4.16
-----------------------------------------------------------------------------*/	
void CSimulationDoc::MidValueFilter5(unsigned short* pData,long len)
{
	if(pData == NULL || len <= 0)
		return;
	unsigned short* pTemp;
	pTemp = (unsigned short*)malloc(len*sizeof(unsigned short));
	memcpy(pTemp,pData,len*sizeof(unsigned short));
	unsigned short window[5];
	for(int i=2;i<len-2;i++)
	{
		memcpy(window,pTemp+(i-2),5*sizeof(unsigned short));
		Sort(window,5);
		pData[i]=window[2];
	}
	free(pTemp);
}

/*----------------------------------------------------------------------------
function:		窗口大小為任意奇數的平滑濾波
parameters:	
pData           原始數據指針
len             數據長度
window          平滑窗口大小
return:			無
author:         唐富華
date:           2004.5.26
-----------------------------------------------------------------------------*/	
void CSimulationDoc::SmoothFilter(unsigned short* pData,long len,int window)
{
	if(pData == NULL || len <= 0||window<1)
		return;
	unsigned short* pTemp;
	pTemp = (unsigned short*)malloc(len*sizeof(unsigned short));
	memcpy(pTemp,pData,len*sizeof(unsigned short));
	for(int i=(window-1)/2;i<len-(window-1)/2;i++)
	{
		int sum=0;
		for(int j=-(window-1)/2;j<=(window-1)/2;j++)
		{
			sum+=pTemp[i+j];
		}
		pData[i]=sum/window;
	}
	free(pTemp);
}
void CSimulationDoc::SmoothFilter(int* pData,long len,int window)
{
	if(pData == NULL || len <= 0||window<1)
		return;
	int* pTemp;
	pTemp = (int*)malloc(len*sizeof(int));
	memcpy(pTemp,pData,len*sizeof(int));
	for(int i=(window-1)/2;i<len-(window-1)/2;i++)
	{
		int sum=0;
		for(int j=-(window-1)/2;j<=(window-1)/2;j++)
		{
			sum+=pTemp[i+j];
		}
		pData[i]=sum/window;
	}
	free(pTemp);
}

/*----------------------------------------------------------------------------
function:		按一定的間隔從采集數據緩沖區中提取數據到顯示數據緩沖區
parameters:	無
return:			無
author:         唐富華
date:           2004.5.26
-----------------------------------------------------------------------------*/	
void CSimulationDoc::GetShowDataFromBuffer()
{
	int interval=BUFFERREAD_LEN/BUFFERSHOW_LEN;
	
	memset(m_ShowSRBuffer,0,BUFFERSHOW_LEN*sizeof(unsigned short));
	memset(m_ShowWTBuffer,0,BUFFERSHOW_LEN*sizeof(unsigned short));
	memset(m_ShowCOBuffer,0,BUFFERSHOW_LEN*sizeof(int));

	for(int i=0,j=0;i<BUFFERREAD_LEN;i++)
	{
		if(i%interval==0)
		{
			m_ShowSRBuffer[j]=m_ReadSRBuffer[i];
			m_ShowWTBuffer[j]=m_ReadWTBuffer[i];
			m_ShowCOBuffer[j]=m_ShowSRBuffer[j]+m_ShowWTBuffer[j];
			j++;
		}
	}
}
/*----------------------------------------------------------------------------
function:		根據動態分組和標準數據產生模擬數據
parameters:	無
return:			無
author:         唐富華
date:           2004.5.28
-----------------------------------------------------------------------------*/	
void CSimulationDoc::GenerateSimuData()
{

}

/*----------------------------------------------------------------------------
function:		將生成的模擬數據傳送給模擬信號發生板,產生模擬信號
parameters:	無
return:			無
author:         唐富華
date:           2004.5.28
-----------------------------------------------------------------------------*/	
void CSimulationDoc::DAConvertion()
{
	//查詢模擬數據是否已經產生
	if(!this->m_pSimuCOData||!this->m_pSimuSRData||!this->m_pSimuWTData)
	{
		return;
	}

	//查詢模擬信號發生板是否準備就緒


	//將已生成的模擬數據傳送給到模擬信號發生板的FIFO
	unsigned short data;
	for(int i=0;i<this->m_SRSimuDataLen;i++)
	{
		//先傳送16位的剪力數據
		data = this->m_pSimuSRData[i];
		_asm
		{
			mov ax,data
			mov dx,1004h
			out dx,ax
		}

		//接著傳送16位的重力數據
		data=this->m_pSimuWTData[i];
		_asm
		{
			mov ax,data
			mov dx,1004h
			out dx,ax
		}

		//不知是否需要延時

	}

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品处破学生在线二十三| 成人免费看片app下载| 欧美日韩精品欧美日韩精品一| 亚洲人成亚洲人成在线观看图片| 成人av资源在线| 亚洲欧洲日产国产综合网| av中文字幕亚洲| 亚洲精品视频观看| 欧美日韩亚洲不卡| 五月婷婷另类国产| 日韩一级二级三级精品视频| 美女视频黄免费的久久 | 久久99久久99小草精品免视看| 555www色欧美视频| 六月丁香婷婷色狠狠久久| 久久综合色一综合色88| 国产suv一区二区三区88区| 国产精品视频你懂的| 91在线观看免费视频| 亚洲自拍欧美精品| 欧美一区二区私人影院日本| 国产一区二区不卡老阿姨| 国产日产欧美一区| 色综合久久久久久久久久久| 午夜精品福利在线| 精品99999| 91欧美一区二区| 午夜视频在线观看一区| 亚洲精品一区二区三区在线观看| 成人综合在线观看| 亚洲高清视频在线| 久久免费的精品国产v∧| 99re视频精品| 日韩成人一级片| 国产精品无人区| 欧美福利一区二区| 国产成人99久久亚洲综合精品| 亚洲另类在线一区| 精品成人佐山爱一区二区| 99亚偷拍自图区亚洲| 日本 国产 欧美色综合| 国产精品免费看片| 欧美区视频在线观看| 国产精品99久久久| 亚洲精品老司机| 久久九九影视网| 欧美日韩精品二区第二页| 国产99精品视频| 香蕉影视欧美成人| 国产精品国产三级国产aⅴ入口 | 亚洲一二三四久久| 久久久久国产精品麻豆| 欧美三电影在线| 国产成人aaa| 免费在线观看不卡| 一区二区三区四区乱视频| 26uuu精品一区二区在线观看| 91网站黄www| 国产精品中文欧美| 蜜桃视频一区二区三区在线观看| 综合欧美一区二区三区| 精品毛片乱码1区2区3区| 欧美性猛片xxxx免费看久爱| 成人免费视频视频在线观看免费| 日韩国产欧美在线视频| 亚洲欧美日韩中文字幕一区二区三区| 精品国精品国产| 在线不卡a资源高清| 色久综合一二码| 丁香激情综合五月| 久久99久久99精品免视看婷婷| 亚洲综合区在线| 中文字幕视频一区二区三区久| 精品国产乱码久久久久久影片| 欧美日韩综合在线免费观看| 色吊一区二区三区| 91猫先生在线| 波多野结衣中文字幕一区| 国产精品一区二区果冻传媒| 精久久久久久久久久久| 日本亚洲电影天堂| 日日夜夜免费精品| 亚洲国产精品一区二区久久恐怖片| 亚洲欧洲色图综合| **欧美大码日韩| 亚洲欧洲精品一区二区三区不卡| 久久久精品国产免费观看同学| 精品国产成人在线影院| 欧美成人精精品一区二区频| 日韩午夜精品电影| 日韩精品最新网址| 日韩欧美久久久| 精品国产三级a在线观看| 欧美成人精品1314www| 精品日产卡一卡二卡麻豆| 精品美女在线观看| 欧美精品一区二区三区久久久| 久久丝袜美腿综合| 国产日韩欧美精品一区| 日本一区二区三区四区 | 中文字幕一区三区| 国产精品麻豆99久久久久久| 国产精品国产三级国产普通话蜜臀 | 国产自产2019最新不卡| 国产一区二区三区免费| 福利视频网站一区二区三区| 国产欧美一区二区三区沐欲| 成人app网站| 波多野结衣的一区二区三区| 色国产综合视频| 欧美一区2区视频在线观看| 精品国产1区二区| 国产精品成人在线观看| 亚洲图片有声小说| 蜜桃视频在线观看一区二区| 国产成a人无v码亚洲福利| 色拍拍在线精品视频8848| 欧美人与禽zozo性伦| 精品伦理精品一区| 亚洲视频免费在线观看| 亚洲成人免费影院| 国产精品一区二区三区99| www.色精品| 制服丝袜av成人在线看| 日本一区二区三级电影在线观看 | 亚洲国产日韩a在线播放性色| 免费国产亚洲视频| av不卡一区二区三区| 欧美日韩电影在线| 国产欧美一区二区精品仙草咪| 日韩美女视频一区二区 | 樱桃视频在线观看一区| 美女视频黄频大全不卡视频在线播放| 粉嫩一区二区三区在线看| 欧美日韩精品欧美日韩精品| 久久精品日韩一区二区三区| 亚洲午夜私人影院| 国产精品羞羞答答xxdd| 欧美主播一区二区三区美女| 久久久亚洲国产美女国产盗摄| 依依成人综合视频| 国产99久久久久久免费看农村| 欧美日韩国产影片| 国产精品久久久久天堂| 免费精品视频最新在线| 在线看不卡av| 国产精品伦理在线| 精品一区二区日韩| 欧美日韩国产综合一区二区三区| 中文字幕欧美国产| 久久99国产精品麻豆| 欧美三级视频在线观看| 1区2区3区欧美| 国产成a人亚洲精| 日韩一级免费一区| 亚洲国产精品影院| 一本色道久久综合亚洲91| 久久久亚洲精品一区二区三区| 日本亚洲三级在线| 欧美丝袜丝交足nylons| 日韩美女视频19| 成人一区二区视频| 久久久久久久久99精品| 蜜臀久久99精品久久久画质超高清| 91国内精品野花午夜精品| 国产精品久久久久国产精品日日| 国产成人精品免费视频网站| 欧美成人福利视频| 久久成人免费电影| 日韩一区二区免费在线电影| 婷婷夜色潮精品综合在线| 色猫猫国产区一区二在线视频| 18成人在线观看| 91在线观看污| 亚洲日本一区二区三区| 91色在线porny| 日韩毛片精品高清免费| 97久久超碰精品国产| 自拍偷在线精品自拍偷无码专区 | 99re66热这里只有精品3直播| 欧美国产精品v| av网站一区二区三区| 国产精品久久久久久久久免费丝袜| 国产精品综合一区二区三区| 久久久久免费观看| 国产成人日日夜夜| 国产精品色眯眯| 99久久99久久久精品齐齐| 亚洲日本va在线观看| 色94色欧美sute亚洲线路二| 一区二区在线看| 欧美日韩视频在线观看一区二区三区 | 国产日韩精品一区二区三区在线| 国产伦精一区二区三区| 国产婷婷一区二区| 99久久综合狠狠综合久久| 亚洲人成网站影音先锋播放| 精品视频在线免费| 久久99久久久久久久久久久| 国产欧美一区二区在线|