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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fibertestclientview.cpp

?? 用API的串口采集數(shù)據(jù),并且在界面上顯示數(shù)據(jù)
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
	
	delete pPenRed;
	delete pPenBlue;
	delete pPenGreen;
	delete pPenC;
	
	/*#ifdef INPUT_DATA
	if(!m_bIsSetReadPoint)//讀串口
	{
	SetTimer(ID_TIMER_READ_POINT,TIME_DRAW,NULL);
	m_bIsSetReadPoint = true;
	}
	#else
	if(!m_bIsSetDrawPoint)//直接讀數(shù)據(jù)庫
	{
	SetTimer(ID_TIMER_DRAW_POINT,TIME_DRAW,NULL);
	m_bIsSetDrawPoint = true;
	}
#endif*/
	return;
}


void CFiberTestClientView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	
	// Do not call CFormView::OnPaint() for painting messages
	CRect rect;
	CWnd* pWnd = GetDlgItem(IDC_COORD);
	
	pWnd->GetClientRect(&rect);
	// 指針
	pDC = pWnd->GetDC();	
	pWnd->Invalidate();
	pWnd->UpdateWindow();
	//pDC->Rectangle(&rect);
	
	
    //內(nèi)存繪圖
    CBitmap memBitmap;
	CBitmap* pOldBmp = NULL;
	memDC.CreateCompatibleDC(pDC);
	memBitmap.CreateCompatibleBitmap(pDC,rect.right,rect.bottom);
	pOldBmp = memDC.SelectObject(&memBitmap);
	memDC.BitBlt(rect.left,rect.top,rect.right,rect.bottom,pDC,0,0,SRCCOPY);
	
	DrawWave(&memDC);
	
	pDC->BitBlt(rect.left,rect.top,rect.right,rect.bottom,&memDC,0,0,SRCCOPY);
	
	memDC.SelectObject(pOldBmp);
	memDC.DeleteDC();
	memBitmap.DeleteObject();
	m_datatime=GetTime();
	UpdateData(FALSE);
	
}

void CFiberTestClientView::OnChangeYmin() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	if(m_bIsFinishDraw || NULL == m_uPointA)
	{
		UpdateData();
		OnPaint() ;
	}
	else
	{
		UpdateData(FALSE);
		AfxMessageBox("測試過程中不接收設(shè)定!");
	}
}

void CFiberTestClientView::OnChangeYmax() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	if(m_bIsFinishDraw || NULL == m_uPointA)
	{
		UpdateData();
		OnPaint() ;
	}
	else
	{
		UpdateData(FALSE);
		AfxMessageBox("測試過程中不接收設(shè)定!");
	}
}

void CFiberTestClientView::OnChangeTestTime() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CFormView::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	
	if(m_bIsFinishDraw || NULL == m_uPointA)
	{
		UpdateData();
		OnPaint() ;
	}
	else
	{
		UpdateData(FALSE);
		AfxMessageBox("測試過程中不接收設(shè)定!");
	}
}

CString CFiberTestClientView::GetTime()
{
	CString strTime,str,strDate;
	int t;
	CTime time=CTime::GetCurrentTime();
	t=time.GetHour();
	str.Format("%d",t);
	strTime=str;
	t=time.GetMinute();
	str.Format("%d",t);
	strTime=strTime+":"+str;
	t=time.GetSecond();
	str.Format("%d",t);
	strTime=strTime+":"+str;
	t=time.GetYear();
	str.Format("%d",t);
	strDate=str;
	t=time.GetMonth();
	str.Format("%d",t);
	strDate=strDate+"年"+str;
	t=time.GetDay();
	str.Format("%d",t);
	strDate=strDate+"月"+str+"日";
	return(strDate+"  "+strTime);
}



void CFiberTestClientView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	switch(nIDEvent)
	{
	case ID_TIMER_DRAW_POINT:
		DrawPoint();
		break;
	case ID_TIMER_READ_POINT:
		ReadPoint();
		break;
	default:
		break;
	}
	CFormView::OnTimer(nIDEvent);
}


void CFiberTestClientView::DrawPoint()//畫數(shù)據(jù)曲線
{
	//OnPaint();
	static int iTimes=0;
	
	if(m_bIsReTest)
	{
		iTimes = 0;
		m_bIsReTest =false;
		
	}
	if(m_iPointCount <= iTimes)
	{
		KillTimer(ID_TIMER_DRAW_POINT);
		m_bIsFinishDraw = true;
		return ;
	}
	
	CPaintDC dc(this);
	CDC *pMyDC = (GetDlgItem(IDC_COORD))->GetDC();
	
	
	m_IntervalPan = (m_right-20 - m_left)/20;
	if (m_IntervalPan < 1 ) m_IntervalPan =1;
	m_Interval = (m_bottom - m_top-20)/10;
	int iBaseX = m_left;
	//int iStepX = m_IntervalPan*10/150*TIME_DRAW/TIME_BASE;
	int iBaseY = (m_bottom - m_top +2)/2 + m_Interval/2;
	//	int iStepY = m_Interval/2*TIME_DRAW/TIME_BASE;
	
	CPen* pPenRed = new CPen;
	pPenRed->CreatePen(PS_SOLID,1,RGB(255,0,0));
	CGdiObject* pOldPen = pMyDC->SelectObject(pPenRed);	
	int iAx = iBaseX + iTimes*m_IntervalPan*10/150*TIME_DRAW/TIME_BASE*300/m_iPointCount;
	//	int iAy = iBaseY  -  m_uPointA[iTimes]*m_Interval/2;
	int	iAy = m_bottom - m_Interval/4 - (m_bottom - m_top-20)/(m_ymax - m_ymin)*(m_uPointA[iTimes] - m_ymin); 
	static int iOldAX = iAx;
	static int iOldAY = iAy;
	if(iTimes == 0)
	{
		iOldAX = iAx;
		iOldAY = iAy;
		
	}
	TRACE("pointA:%d,%d\n",iAx,iAy);	
	pMyDC->MoveTo(iOldAX,iOldAY);
	pMyDC->LineTo(iAx,iAy);
	iOldAX =iAx;
	iOldAY = iAy;
	m_uDrawedPointA[iTimes] = m_uPointA[iTimes];
	TRACE("iTimes=%d\n",iTimes);
	
	CPen* pPenBlue = new CPen;	
	pPenBlue->CreatePen(PS_SOLID,1,RGB(0,0, 255));
	pMyDC->SelectObject(pPenBlue);	
	int iBx = iBaseX + iTimes*m_IntervalPan*10/150*TIME_DRAW/TIME_BASE*300/m_iPointCount;
	//int iBy = iBaseY  -  m_uPointB[iTimes]*m_Interval/2;
	int iBy = m_bottom - m_Interval/4 - (m_bottom - m_top-20)/(m_ymax - m_ymin)*(m_uPointB[iTimes] - m_ymin);  
	static int iOldBX = iBx;
	static int iOldBY = iBy;
	if(iTimes == 0)
	{
		iOldBX = iBx;
		iOldBY = iBy;
		
	}
	TRACE("pointB:%d,%d\n",iBx,iBy);	
	pMyDC->MoveTo(iOldBX,iOldBY);
	pMyDC->LineTo(iBx,iBy);
	iOldBX =iBx;
	iOldBY = iBy;
	m_uDrawedPointB[iTimes] = m_uPointB[iTimes];
	
	CPen* pPenC = new CPen;	
	pPenC->CreatePen(PS_SOLID,1,RGB(0,0,0));
	pMyDC->SelectObject(pPenC);	
	int iCx = iBaseX + iTimes*m_IntervalPan*10/150*TIME_DRAW/TIME_BASE*300/m_iPointCount;
	//int iCy = iBaseY  -  m_uPointC[iTimes]*m_Interval/2;
	int iCy = m_bottom - m_Interval/4 - (m_bottom - m_top-20)/(m_ymax - m_ymin)*(m_uPointC[iTimes] - m_ymin); 
	//(m_bottom - m_top +2)/2 + m_Interval/2;
	static int iOldCX = iCx;
	static int iOldCY = iCy;
	if(iTimes == 0)
	{
		iOldCX = iCx;
		iOldCY = iCy;
		
	}
	TRACE("pointC:%d,%d\n",iCx,iCy);	
	pMyDC->MoveTo(iOldCX,iOldCY);
	pMyDC->LineTo(iCx,iCy);
	iOldCX =iCx;
	iOldCY = iCy;
	m_uDrawedPointC[iTimes] = m_uPointC[iTimes];
	
	pMyDC->SelectObject(pOldPen);	
	delete pPenRed;
	delete pPenBlue;
	delete pPenC;
	iTimes++;
}

void CFiberTestClientView::ReadPoint() //從暫存中讀取數(shù)據(jù),并寫數(shù)據(jù)庫
{
	static int iTimes=0;
	if(m_iPointCount <= iTimes)
	{
		KillTimer(ID_TIMER_READ_POINT);
		return;
	}
	
	//	m_uTempPointA = m_uTempPointB = m_uTempPointC = 8;
	
	//讀暫存
	m_uPointA[iTimes] = m_uTempPointA;
	m_uPointB[iTimes] = m_uTempPointB;
	m_uPointC[iTimes] = m_uTempPointC;

	
	//開啟繪A,B,C曲線的定時(shí)器
	if(!m_bIsSetDrawPoint)
	{
		SetTimer(ID_TIMER_DRAW_POINT,TIME_DRAW,NULL);
		m_bIsSetDrawPoint = true;
	}
}


void CFiberTestClientView::InitData()
{
	if(NULL != m_uPointA && !m_bIsFinishDraw)
	{
		AfxMessageBox("正在測試!");
		return;
	}
	
	if(NULL != m_uPointA && m_bIsFinishDraw)
	{
		if(NULL != m_uPointA)
		{
			delete []m_uPointA;
			m_uPointA = NULL;
		}
    	if(NULL != m_uPointB)
		{
			delete []m_uPointB;
			m_uPointB = NULL;
		}
		if(NULL != m_uPointC)
		{
			delete []m_uPointC;
			m_uPointC = NULL;
		}
		if(NULL != m_uDrawedPointA)
		{
			delete []m_uDrawedPointA;
			m_uDrawedPointA = NULL;
		}
		if(NULL != m_uDrawedPointB)
		{
			delete []m_uDrawedPointB;
			m_uDrawedPointB = NULL;
		}
		if(NULL != m_uDrawedPointC)
		{
			delete []m_uDrawedPointC;
			m_uDrawedPointC = NULL;
		}
		m_bIsSetReadPoint = false;
		m_bIsSetDrawPoint = false;
		m_bIsFinishDraw = false;
		m_bIsReTest =true;
	}
	if(NULL == m_uPointA)
	{
		m_xtime = m_xtime1;
		OnPaint() ;
		m_iPointCount = (m_xtime * 1000)/TIME_DRAW;
		
		m_uPointA = new UINT[m_iPointCount];	//A點(diǎn)的數(shù)據(jù)
		m_uPointB = new UINT[m_iPointCount];	//B....
		m_uPointC = new UINT[m_iPointCount];	//C....
		m_uDrawedPointA = new UINT[m_iPointCount];//已畫過的A點(diǎn)的數(shù)據(jù);
		m_uDrawedPointB = new UINT[m_iPointCount];//........B.......
		m_uDrawedPointC = new UINT[m_iPointCount];//........C.......
		
		for(int i=0; i<m_iPointCount; i++)
		{
			*(m_uPointA+i) = POINT_NULL;
			
		}
		//memcpy(m_uPointB,m_uPointA,m_iPointCount*sizeof(UINT));
		memcpy(m_uPointC,m_uPointA,m_iPointCount*sizeof(UINT));
		memcpy(m_uPointB,m_uPointA,m_iPointCount*sizeof(UINT));
		memcpy(m_uDrawedPointA,m_uPointA,m_iPointCount*sizeof(UINT));
		memcpy(m_uDrawedPointB,m_uPointA,m_iPointCount*sizeof(UINT));
		memcpy(m_uDrawedPointC,m_uPointA,m_iPointCount*sizeof(UINT));
		OnPaint();
		if(NULL != m_uPointA 
			&& NULL != m_uPointB
			&& NULL != m_uPointC
			&& NULL != m_uDrawedPointA
			&& NULL != m_uDrawedPointB
			&& NULL != m_uDrawedPointC)

		{
			Read();
#ifdef INPUT_DATA
			if(!m_bIsSetReadPoint)//讀串口
			{
				SetTimer(ID_TIMER_READ_POINT,TIME_DRAW,NULL);
				m_bIsSetReadPoint = true;
			}
/*#else
			if(!m_bIsSetDrawPoint)//直接讀數(shù)據(jù)庫
			{
				SetTimer(ID_TIMER_DRAW_POINT,TIME_DRAW,NULL);
				m_bIsSetDrawPoint = true;
			}
*/#endif
		}
		else
		{
			AfxMessageBox("內(nèi)存申請失??!");
		}
	}
	
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久av中文字幕片| 最新不卡av在线| 99在线热播精品免费| 奇米在线7777在线精品| 亚洲天堂av一区| 久久久久久久久久美女| 欧美天天综合网| 成人av在线资源网站| 蜜臀av一区二区在线免费观看| 成人欧美一区二区三区| 2020国产成人综合网| 欧美亚洲免费在线一区| 99re在线精品| 国产高清无密码一区二区三区| 午夜免费久久看| 亚洲一区二区在线视频| 亚洲国产精品av| 久久精品网站免费观看| 日韩欧美综合一区| 欧美精选一区二区| 欧美日韩国产一级二级| 91福利在线导航| 99久久精品国产导航| 国产精品一二三四| 极品尤物av久久免费看| 麻豆极品一区二区三区| 亚洲午夜在线电影| 亚洲综合色自拍一区| 中文字幕在线不卡| 中文一区二区在线观看| 国产婷婷色一区二区三区在线| 精品日韩在线一区| 精品欧美久久久| 日韩亚洲欧美综合| 日韩欧美一区二区视频| 欧美精选一区二区| 69堂精品视频| 精品奇米国产一区二区三区| 欧美一区二区二区| 日韩你懂的在线播放| 精品久久99ma| 久久婷婷国产综合精品青草| 精品国产免费人成电影在线观看四季| 精品欧美乱码久久久久久1区2区| 精品捆绑美女sm三区| www欧美成人18+| 日本一区二区不卡视频| 国产精品福利一区| 亚洲免费在线观看| 亚洲成人免费在线| 蜜桃av一区二区三区电影| 久久成人精品无人区| 国产精品12区| 91一区在线观看| 欧美色精品天天在线观看视频| 欧美精品第1页| 精品免费99久久| 国产精品免费丝袜| 亚洲一区二区美女| 奇米影视在线99精品| 国产真实乱对白精彩久久| 国产成人在线视频网址| 99riav久久精品riav| 欧美午夜电影在线播放| 日韩欧美激情在线| 国产日韩精品一区二区三区| 亚洲精品一二三四区| 日韩国产精品久久久久久亚洲| 激情久久五月天| 一本大道久久a久久精品综合| 欧美群妇大交群中文字幕| 欧美成人video| 亚洲视频电影在线| 日本91福利区| 成人动漫一区二区| 欧美精品电影在线播放| 国产欧美日本一区二区三区| 一区二区三区在线观看动漫| 青青草精品视频| youjizz久久| 日韩一区二区三区视频在线观看| 欧美国产一区二区在线观看| 香蕉成人啪国产精品视频综合网 | 91精品视频网| 久久久亚洲午夜电影| 一区二区三区在线视频观看| 久草在线在线精品观看| 色综合久久综合网欧美综合网| 日韩欧美亚洲另类制服综合在线| 国产精品久久久久影院老司| 日韩精品一级二级| 91在线视频免费91| 久久久精品欧美丰满| 亚洲成人三级小说| 99久久99久久精品国产片果冻| 5566中文字幕一区二区电影| 国产精品久99| 精品一区二区综合| 欧美日韩日本视频| 亚洲欧洲精品天堂一级| 麻豆91免费看| 欧美视频在线观看一区| 国产精品福利一区| 国产一区二区三区av电影| 欧美巨大另类极品videosbest | 国产精品自在欧美一区| 欧美日韩在线播| 中文字幕在线一区二区三区| 日本欧美一区二区三区乱码 | 久久婷婷色综合| 日韩高清不卡一区二区| 色综合久久天天| 日本一区二区电影| 麻豆国产91在线播放| 欧美精品九九99久久| 亚洲最大的成人av| 99re热这里只有精品视频| 久久久久久久久久久久久女国产乱| 亚洲成人精品影院| 91九色最新地址| 亚洲人妖av一区二区| 大胆亚洲人体视频| 久久久久久日产精品| 黄色日韩三级电影| 欧美大片拔萝卜| 麻豆国产欧美日韩综合精品二区| 7777精品伊人久久久大香线蕉的 | 亚洲影视资源网| 91日韩在线专区| 亚洲视频一区在线| 97se亚洲国产综合自在线| 国产精品毛片久久久久久| 国产福利91精品一区二区三区| 久久夜色精品国产噜噜av | 日本黄色一区二区| 亚洲人成网站色在线观看| 99久久er热在这里只有精品66| 中文字幕在线一区免费| 99国产精品久久久久久久久久久| 国产精品免费av| 99久久综合精品| 亚洲三级电影网站| 色综合久久中文综合久久牛| 亚洲一区二区欧美| 欧美一区三区二区| 老司机一区二区| 国产亚洲综合性久久久影院| 国产91精品在线观看| 亚洲图片欧美激情| 欧美在线视频日韩| 日本不卡在线视频| 久久久天堂av| 99久久精品免费看国产| 玉足女爽爽91| 在线播放国产精品二区一二区四区| 天堂在线亚洲视频| 久久综合色8888| 99视频在线观看一区三区| 一卡二卡三卡日韩欧美| 欧美精品一卡二卡| 国产美女久久久久| 亚洲欧洲在线观看av| 欧美日本精品一区二区三区| 久久91精品国产91久久小草 | 国产欧美精品一区| 99re66热这里只有精品3直播| 亚洲三级免费观看| 91精品国产综合久久福利| 韩国欧美国产1区| 亚洲少妇30p| 日韩欧美亚洲另类制服综合在线| 国产成人午夜精品影院观看视频 | 国产美女视频一区| 亚洲免费视频中文字幕| 91.麻豆视频| 成人av资源在线| 人妖欧美一区二区| 中文字幕av在线一区二区三区| 欧美综合一区二区| 国产麻豆午夜三级精品| 亚洲一区日韩精品中文字幕| 精品捆绑美女sm三区| 91福利资源站| 国产大片一区二区| 亚洲va国产天堂va久久en| 国产亚洲精品超碰| 欧美久久久久久久久中文字幕| 成人精品视频.| 日本欧美一区二区三区乱码 | 精品一区二区三区在线播放视频| 国产精品乱人伦中文| 欧美一区二区三区白人| 91视频你懂的| 国产乱码精品1区2区3区| 亚洲一二三区不卡| 国产精品美女www爽爽爽| 日韩免费视频一区| 欧美三级视频在线观看| 97精品电影院| 从欧美一区二区三区|