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

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

?? serialcheckview.cpp

?? 這是《Visual C++串口通訊技術與工程實踐》這本書的配套光盤
?? CPP
字號:
// SerialCheckView.cpp : implementation of the CSerialCheckView class
//

#include "stdafx.h"
#include "SerialCheck.h"

#include "SerialCheckDoc.h"
#include "SerialCheckView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSerialCheckView

IMPLEMENT_DYNCREATE(CSerialCheckView, CFormView)

BEGIN_EVENTSINK_MAP(CSerialCheckView, CFormView)
	ON_EVENT(CSerialCheckView, ID_COMMCTRL, 1, OnCommMscomm, VTS_NONE)
END_EVENTSINK_MAP()

BEGIN_MESSAGE_MAP(CSerialCheckView, CFormView)
	//{{AFX_MSG_MAP(CSerialCheckView)
	ON_BN_CLICKED(IDC_CHANGE, OnChange)
	ON_BN_CLICKED(IDC_AUTO, OnAuto)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSerialCheckView construction/destruction

CSerialCheckView::CSerialCheckView()
	: CFormView(CSerialCheckView::IDD)
{
	//{{AFX_DATA_INIT(CSerialCheckView)
	m_strReceiveChar = _T("");
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	bValid = FALSE;
	N = 0;
}

CSerialCheckView::~CSerialCheckView()
{
}

void CSerialCheckView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSerialCheckView)
	DDX_Control(pDX, IDC_AUTO, m_ctrlAuto);
	DDX_Control(pDX, IDC_CHANGE, m_ctrlChange);
	DDX_Text(pDX, IDC_RESULT, m_strReceiveChar);
	//}}AFX_DATA_MAP
}

BOOL CSerialCheckView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CSerialCheckView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	DWORD style=WS_VISIBLE|WS_CHILD;
	if (!m_Com.Create(NULL,style,CRect(0,0,0,0),this,ID_COMMCTRL))
	{
		TRACE0("Failed to create OLE Communications Control\r\n");
	    return; //fail to create  
	}
	
	// TODO: Add extra initialization here
	m_Com.SetCommPort(1); //選擇COM1
	m_Com.SetInBufferSize(1024); //設置輸入緩沖區的大小,Bytes
	m_Com.SetOutBufferSize(512); //設置輸入緩沖區的大小,Bytes
	m_Com.SetRThreshold(1); 
	m_Com.SetInputMode(1);

	m_Com.SetSettings("9600,n,8,1");

	if(!m_Com.GetPortOpen()) //打開串口   
	{
		m_Com.SetPortOpen(TRUE);
	}
	else
		AfxMessageBox("串口1已被占用,請選擇其他串口");

}

/////////////////////////////////////////////////////////////////////////////
// CSerialCheckView printing

BOOL CSerialCheckView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CSerialCheckView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CSerialCheckView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

void CSerialCheckView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
	// TODO: add customized printing code here
}

/////////////////////////////////////////////////////////////////////////////
// CSerialCheckView diagnostics

#ifdef _DEBUG
void CSerialCheckView::AssertValid() const
{
	CFormView::AssertValid();
}

void CSerialCheckView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CSerialCheckDoc* CSerialCheckView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CSerialCheckDoc)));
	return (CSerialCheckDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSerialCheckView message handlers
//MSComm控件的OnComm事件處理過程。和其他的OnComm處理過程一樣,這里也采用分支事 件//方式,圖過是接收時間,則顯示到接收顯示文本框中,這些信息包括本機Modem返回信息,以及遠程計算//機傳送的數據。
void CSerialCheckView::OnCommMscomm()
{
    int k, nEvent, i;
	
    nEvent = m_Com.GetCommEvent();

	switch(nEvent)
	{
	case 2:  //收到大于RTHresshold個字符
		switch(N)
		{
		case 1:
			OutputResult("bps = 9600, data = 8:");
			break;
		case 2:
			OutputResult("bps = 9600, data = 7:");
			break;
		case 3:
			OutputResult("bps = 9600, data = 6:");
			break;
		case 4:
			OutputResult("bps = 9600, data = 5:");
			break;
		case 5:
			OutputResult("bps = 4800, data = 8:");
			break;
		case 6:
			OutputResult("bps = 4800, data = 7:");
			break;
		case 7:
			OutputResult("bps = 4800, data = 6:");
			break;
		case 8:
			OutputResult("bps = 4800, data = 5:");
			break;
		case 9:
			OutputResult("bps = 2400, data = 8:");
			break;
		case 10:
			OutputResult("bps = 2400, data = 7:");
			break;
		case 11:
			OutputResult("bps = 2400, data = 6:");
			break;
		case 12:
			OutputResult("bps = 2400, data = 5:");
			break;
		case 13:
			OutputResult("bps = 1200, data = 8:");
			break;
		case 14:
			OutputResult("bps = 1200, data = 7:");
			break;
		case 15:
			OutputResult("bps = 1200, data = 6:");
			break;
		case 16:
			OutputResult("bps = 1200, data = 5:");
			break;
		}
		break;
	case 3:  //CTS線狀態發生了變化
		break;
	case 4:  //DSR線狀態發生了變化
		break;
	case 5:  //CD線狀態發生了變化
		break;
	case 6:  //Ring Indicator發生變化
		break;
	}    

	
	
	UpdateData(FALSE);
}

void CSerialCheckView::OutputResult(CString strTemp)
{
	VARIANT variant_inp;
	COleSafeArray safearray_inp;
	LONG len,k;
	BYTE rxdata[2048]; //設置BYTE數組 An 8-bit integerthat is not signed.
	CString strtemp, str = _T("");

	
	variant_inp = m_Com.GetInput();   //讀緩沖區
	safearray_inp = variant_inp;  //VARIANT型變量轉換為ColeSafeArray型變量
	len=safearray_inp.GetOneDimSize(); //得到有效數據長度
	for(k=0;k<len;k++)
		safearray_inp.GetElement(&k,rxdata+k);//轉換為BYTE型數組
	for(k=0;k<len;k++)             //將數組轉換為Cstring型變量
	{
		BYTE bt=*(char*)(rxdata+k);      //字符型
							
		strtemp.Format("%c",bt); //將字符送入臨時變量strtemp存放

		str = str + strtemp;    //加入接收編輯框對應字符串    
	}
		
	m_strReceiveChar = m_strReceiveChar + strTemp + " 輸入字符 " + str + "\r\n";
}

void CSerialCheckView::OnChange() 
{
	// TODO: Add your control notification handler code here
	if(m_Com.GetPortOpen()) //打開串口   
		m_Com.SetPortOpen(FALSE);	
	
	m_Com.SetCommPort(1); //選擇COM1
	m_Com.SetInBufferSize(1024); //設置輸入緩沖區的大小,Bytes
	m_Com.SetOutBufferSize(512); //設置輸入緩沖區的大小,Bytes
	m_Com.SetRThreshold(1); 
	m_Com.SetInputMode(1);

	N++;

	switch(N)
	{
	case 1:
		m_Com.SetSettings("9600,n,8,1");
		break;
	case 2:
		m_Com.SetSettings("9600,n,7,1");
		break;
	case 3:
		m_Com.SetSettings("9600,n,6,1");
		break;
	case 4:
		m_Com.SetSettings("9600,n,5,1");
		break;
	case 5:
		m_Com.SetSettings("4800,n,8,1");
		break;
	case 6:
		m_Com.SetSettings("4800,n,7,1");
		break;
	case 7:
		m_Com.SetSettings("4800,n,6,1");
		break;
	case 8:
		m_Com.SetSettings("4800,n,5,1");
		break;
	case 9:
		m_Com.SetSettings("2400,n,8,1");
		break;
	case 10:
		m_Com.SetSettings("2400,n,7,1");
		break;
	case 11:
		m_Com.SetSettings("2400,n,6,1");
		break;
	case 12:
		m_Com.SetSettings("2400,n,5,1");
		break;
	case 13:
		m_Com.SetSettings("1200,n,8,1");
		break;
	case 14:
		m_Com.SetSettings("1200,n,7,1");
		break;
	case 15:
		m_Com.SetSettings("1200,n,6,1");
		break;
	case 16:
		m_Com.SetSettings("1200,n,5,1");
		break;
	case 17:
		N = 0;
		m_strReceiveChar = "";
		break;
	}	

	m_Com.SetPortOpen(TRUE);
	UpdateData(FALSE);
		
	CString strTemp;
	if(N == 0)
		strTemp.Format("人工更改配置");
	else
		strTemp.Format("人工更改(模式%d)", N);
	m_ctrlChange.SetWindowText(strTemp);	
}

void CSerialCheckView::OnAuto() 
{
	// TODO: Add your control notification handler code here
	N = 0;
	bValid = !bValid;
	m_strReceiveChar = "";
	UpdateData(FALSE);
	
	if(bValid)
	{
		m_ctrlAuto.SetWindowText("停止自動");
		SetTimer(1, 5000, NULL);
	}
	else
	{
		m_ctrlAuto.SetWindowText("自動模式(1s)");
		KillTimer(1);
	}		
	
	m_ctrlChange.SetWindowText("人工更改配置");	
}

void CSerialCheckView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(m_Com.GetPortOpen()) //打開串口   
		m_Com.SetPortOpen(FALSE);	
	
	m_Com.SetCommPort(1); //選擇COM1
	m_Com.SetInBufferSize(1024); //設置輸入緩沖區的大小,Bytes
	m_Com.SetOutBufferSize(512); //設置輸入緩沖區的大小,Bytes
	m_Com.SetRThreshold(1); 
	m_Com.SetInputMode(1);


	N++;	
	switch(N)
	{
	case 1:
		m_Com.SetSettings("9600,n,8,1");
		break;
	case 2:
		m_Com.SetSettings("9600,n,7,1");
		break;
	case 3:
		m_Com.SetSettings("9600,n,6,1");
		break;
	case 4:
		m_Com.SetSettings("9600,n,5,1");
		break;
	case 5:
		m_Com.SetSettings("4800,n,8,1");
		break;
	case 6:
		m_Com.SetSettings("4800,n,7,1");
		break;
	case 7:
		m_Com.SetSettings("4800,n,6,1");
		break;
	case 8:
		m_Com.SetSettings("4800,n,5,1");
		break;
	case 9:
		m_Com.SetSettings("2400,n,8,1");
		break;
	case 10:
		m_Com.SetSettings("2400,n,7,1");
		break;
	case 11:
		m_Com.SetSettings("2400,n,6,1");
		break;
	case 12:
		m_Com.SetSettings("2400,n,5,1");
		break;
	case 13:
		m_Com.SetSettings("1200,n,8,1");
		break;
	case 14:
		m_Com.SetSettings("1200,n,7,1");
		break;
	case 15:
		m_Com.SetSettings("1200,n,6,1");
		break;
	case 16:
		m_Com.SetSettings("1200,n,5,1");
		break;
	case 17:		
		N = 0;
		break;
	}	

	m_Com.SetPortOpen(TRUE);

	CString strTemp;
	strTemp.Format("停止自動(模式%d)", N);
	m_ctrlAuto.SetWindowText(strTemp);

	CFormView::OnTimer(nIDEvent);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频在线观看一区二区| 色婷婷久久久亚洲一区二区三区 | 亚洲图片另类小说| 久久久久久久国产精品影院| 日韩精品一区二区三区三区免费 | 在线观看91视频| 91麻豆福利精品推荐| 91亚洲午夜精品久久久久久| 国产一区二区三区免费在线观看| 紧缚捆绑精品一区二区| 国产一二精品视频| 国产不卡免费视频| 99视频在线精品| 色综合婷婷久久| 欧美日韩另类国产亚洲欧美一级| 欧美伊人久久久久久久久影院 | 韩国在线一区二区| 久久精品国产99国产精品| 美女视频黄a大片欧美| 日本欧美一区二区在线观看| 寂寞少妇一区二区三区| 成人午夜在线视频| 欧洲av在线精品| 日韩欧美在线网站| www日韩大片| 综合精品久久久| 亚洲成av人片在线观看无码| 国产资源在线一区| 色视频一区二区| 在线综合视频播放| 国产日韩视频一区二区三区| 亚洲日本免费电影| 天堂一区二区在线| 不卡一区二区三区四区| 欧美精品在欧美一区二区少妇| 欧美成人激情免费网| 国产精品国产三级国产普通话99| 亚洲成人你懂的| 国产69精品久久99不卡| 欧美疯狂做受xxxx富婆| 国产精品久久久久影院| 美女一区二区在线观看| 91麻豆6部合集magnet| 日韩精品自拍偷拍| 最新久久zyz资源站| 奇米影视7777精品一区二区| av一区二区三区四区| 日韩免费在线观看| 一区二区免费在线播放| 国产二区国产一区在线观看 | 日韩精品一区第一页| 高清av一区二区| 欧美高清性hdvideosex| 中文字幕视频一区| 国产精品亚洲第一区在线暖暖韩国| 色天使久久综合网天天| 国产日韩精品视频一区| 久久精品999| 欧美一区二区三区不卡| 亚洲一区二区三区国产| 成人高清视频在线| 久久久久综合网| 奇米在线7777在线精品 | 狠狠色丁香婷婷综合| 91久久国产最好的精华液| 国产日韩欧美一区二区三区乱码| 久久99深爱久久99精品| 在线观看一区日韩| 亚洲女同女同女同女同女同69| 国产福利一区二区三区视频在线| 精品成人一区二区| 韩国一区二区三区| 久久精品一区二区三区四区| 激情深爱一区二区| 2021久久国产精品不只是精品| 日本不卡一二三区黄网| 7777女厕盗摄久久久| 五月天中文字幕一区二区| 欧洲色大大久久| 亚洲一区二区三区视频在线播放| 色婷婷av一区二区| 亚洲国产一区二区三区青草影视| 欧美三级电影精品| 亚洲国产欧美在线人成| 欧美精品乱码久久久久久按摩| 一区二区三区四区蜜桃| 欧美日韩精品三区| 日韩精品一二三区| 精品久久久久99| 风间由美一区二区三区在线观看| 欧美国产日本视频| 91国偷自产一区二区开放时间 | 91极品美女在线| 亚洲国产精品嫩草影院| 欧美色图第一页| 日本 国产 欧美色综合| 精品成人一区二区三区四区| 韩日欧美一区二区三区| 亚洲国产高清不卡| 91免费版在线看| 青青草97国产精品免费观看无弹窗版| 日韩午夜中文字幕| 成人一区二区三区视频| 亚洲成年人网站在线观看| 日韩三级视频中文字幕| 国产丶欧美丶日本不卡视频| 中文字幕一区二区三中文字幕| 日本福利一区二区| 久久综合综合久久综合| 日本一区二区三区dvd视频在线| 色噜噜狠狠成人中文综合 | 欧美国产精品劲爆| 在线观看亚洲专区| 黄色精品一二区| 亚洲精品成人在线| 精品日韩99亚洲| 日本精品一区二区三区高清 | 亚洲综合免费观看高清完整版在线 | 欧美激情综合在线| 在线日韩国产精品| 国产高清精品在线| 日韩精品国产精品| 国产精品乱码妇女bbbb| 欧美人动与zoxxxx乱| 粉嫩av一区二区三区在线播放| 天天综合色天天| 亚洲日本va在线观看| 久久久蜜臀国产一区二区| 欧美一级黄色片| 色先锋资源久久综合| 国产成人精品www牛牛影视| 日韩精品视频网| 亚洲精品va在线观看| 亚洲国产成人在线| 精品久久久久99| 欧美一区二区啪啪| 欧美日韩的一区二区| 91国产精品成人| 91片黄在线观看| 成人自拍视频在线观看| 国产一区啦啦啦在线观看| 婷婷六月综合网| 天堂成人国产精品一区| 亚洲猫色日本管| 亚洲人成网站精品片在线观看| 日本一区二区三区四区| 国产日韩欧美激情| 亚洲精品在线电影| 精品久久久三级丝袜| 欧美一区在线视频| 欧美精品久久99久久在免费线 | 亚洲欧美二区三区| 日韩一区欧美小说| 国产精品美女久久福利网站| 国产蜜臀av在线一区二区三区| 国产视频一区在线播放| 国产精品视频一二三| 中文字幕一区二区三区四区 | 成人av资源在线观看| av亚洲精华国产精华精华| 成人av资源下载| 色国产综合视频| 欧美美女bb生活片| 久久综合狠狠综合| 久久只精品国产| 成人免费在线播放视频| 最好看的中文字幕久久| 一区二区三区小说| 午夜激情综合网| 美日韩一区二区| 国产精品综合av一区二区国产馆| 国产成人亚洲精品狼色在线| 北条麻妃一区二区三区| 日本高清不卡视频| 日韩免费成人网| 中文字幕不卡在线观看| 夜夜亚洲天天久久| 久久99国产精品麻豆| 成人一区在线看| 欧美日本精品一区二区三区| 精品国产3级a| 亚洲欧美另类在线| 日产国产高清一区二区三区| 国产精品99久| 欧美日韩国产系列| 精品久久久久久最新网址| 亚洲三级在线免费观看| 日韩精品亚洲一区二区三区免费| 国产专区综合网| 一本到不卡免费一区二区| 日韩三级在线观看| 一区二区三区 在线观看视频| 精品一二三四区| 色综合天天综合| 久久综合色婷婷| 丝袜美腿高跟呻吟高潮一区| 成熟亚洲日本毛茸茸凸凹| 欧美日韩国产精选| 18欧美亚洲精品| 韩国av一区二区三区四区|