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

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

?? rs485commdlg.cpp

?? RS485的同步通信和異步通信程序
?? CPP
字號:
// RS485CommDlg.cpp : implementation file
//

#include "stdafx.h"
#include "RS485Comm.h"
#include "RS485CommDlg.h"

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

HANDLE hCom;  //全局變量,串口句柄


/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRS485CommDlg dialog

CRS485CommDlg::CRS485CommDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CRS485CommDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CRS485CommDlg)
	m_disp = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CRS485CommDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRS485CommDlg)
	DDX_Text(pDX, IDC_DISP, m_disp);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CRS485CommDlg, CDialog)
	//{{AFX_MSG_MAP(CRS485CommDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_SEND, OnSend)
	ON_BN_CLICKED(IDC_RECEIVE, OnReceive)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRS485CommDlg message handlers

BOOL CRS485CommDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here

	hCom=CreateFile("COM1",//COM1口
		GENERIC_READ|GENERIC_WRITE, //允許讀和寫
		0, //獨占方式
		NULL,
		OPEN_EXISTING, //打開而不是創建
		FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, //重疊方式
		NULL);
	if(hCom==(HANDLE)-1)
	{
		AfxMessageBox("打開COM失敗!");
		return FALSE;
	}

	SetupComm(hCom,100,100); //輸入緩沖區和輸出緩沖區的大小都是100

	COMMTIMEOUTS TimeOuts;
	//設定讀超時
	TimeOuts.ReadIntervalTimeout=MAXDWORD;
	TimeOuts.ReadTotalTimeoutMultiplier=0;
	TimeOuts.ReadTotalTimeoutConstant=0;
	//在讀一次輸入緩沖區的內容后讀操作就立即返回,
	//而不管是否讀入了要求的字符。


	//設定寫超時
	TimeOuts.WriteTotalTimeoutMultiplier=100;
	TimeOuts.WriteTotalTimeoutConstant=500;
	SetCommTimeouts(hCom,&TimeOuts); //設置超時

	DCB dcb;
	GetCommState(hCom,&dcb);
	dcb.BaudRate=9600; //波特率為9600
	dcb.ByteSize=8; //每個字節有8位
	dcb.Parity=NOPARITY; //無奇偶校驗位
	dcb.StopBits=TWOSTOPBITS; //兩個停止位
	SetCommState(hCom,&dcb);

	PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR);

	


	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CRS485CommDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CRS485CommDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CRS485CommDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CRS485CommDlg::OnSend() 
{
	// TODO: Add your control notification handler code here
	OVERLAPPED m_osWrite;
	memset(&m_osWrite,0,sizeof(OVERLAPPED));
	m_osWrite.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);


	char lpOutBuffer[7];
	memset(lpOutBuffer,'\0',7);
	lpOutBuffer[0]='\x11';
	lpOutBuffer[1]='0';
	lpOutBuffer[2]='0';
	lpOutBuffer[3]='1';
	lpOutBuffer[4]='0';
	lpOutBuffer[5]='1';
	lpOutBuffer[6]='\x03';
	
	DWORD dwBytesWrite=7;
	COMSTAT ComStat;
	DWORD dwErrorFlags;
	BOOL bWriteStat;
	ClearCommError(hCom,&dwErrorFlags,&ComStat);
	bWriteStat=WriteFile(hCom,lpOutBuffer,
		dwBytesWrite,& dwBytesWrite,&m_osWrite);

	if(!bWriteStat)
	{
		if(GetLastError()==ERROR_IO_PENDING)
		{
			WaitForSingleObject(m_osWrite.hEvent,1000);
		}
	}

}

void CRS485CommDlg::OnReceive() 
{
	// TODO: Add your control notification handler code here
	OVERLAPPED m_osRead;
	memset(&m_osRead,0,sizeof(OVERLAPPED));
	m_osRead.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);

	COMSTAT ComStat;
	DWORD dwErrorFlags;
	
	char str[100];
	memset(str,'\0',100);
	DWORD dwBytesRead=100;//讀取的字節數
	BOOL bReadStat;

	ClearCommError(hCom,&dwErrorFlags,&ComStat);
	dwBytesRead=min(dwBytesRead, (DWORD)ComStat.cbInQue);
	bReadStat=ReadFile(hCom,str,
		dwBytesRead,&dwBytesRead,&m_osRead);
	if(!bReadStat)
	{
		if(GetLastError()==ERROR_IO_PENDING)
	    //GetLastError()函數返回ERROR_IO_PENDING,表明串口正在進行讀操作
		{
			WaitForSingleObject(m_osRead.hEvent,2000);
		    //使用WaitForSingleObject函數等待,直到讀操作完成或延時已達到2秒鐘
		    //當串口讀操作進行完畢后,m_osRead的hEvent事件會變為有信號
		}
	}

	PurgeComm(hCom, PURGE_TXABORT|
		PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
	m_disp=str;
	UpdateData(FALSE);
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色中文字幕| 成人性生交大片| 欧美久久久久久久久久| 樱桃国产成人精品视频| 欧美在线你懂得| 日韩福利电影在线观看| 日韩一区二区三区视频| 日韩国产精品久久久久久亚洲| 91精品国产高清一区二区三区| 久久国产精品99久久人人澡| 精品欧美乱码久久久久久1区2区| 国产一区二区福利视频| 国产精品国产三级国产三级人妇| 91一区二区在线| 婷婷丁香久久五月婷婷| 精品国产91洋老外米糕| 中文字幕一区视频| 欧美四级电影网| 久久99精品国产91久久来源| 日本一区二区三区高清不卡 | 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩精品在线一区| 国产一区二区三区在线观看免费视频 | 欧美日韩国产一级片| 久久激情五月婷婷| 国产精品电影院| 欧美少妇bbb| 国产成人精品一区二区三区网站观看 | 亚洲成a人片在线观看中文| 欧美成人综合网站| 91亚洲精品久久久蜜桃网站| 日本不卡一二三区黄网| 中文字幕久久午夜不卡| 欧美精品tushy高清| 成人美女视频在线看| 视频一区视频二区中文字幕| 中文字幕精品三区| 欧美精品乱人伦久久久久久| 国产一区二区伦理片| 亚洲成a人在线观看| 欧美激情综合在线| 欧美一区二区三区免费视频 | 久久不见久久见中文字幕免费| 亚洲少妇最新在线视频| 日韩欧美卡一卡二| 91亚洲国产成人精品一区二区三| 久久疯狂做爰流白浆xx| 亚洲一区在线免费观看| 日韩成人av影视| 处破女av一区二区| 久久99热国产| 亚洲国产你懂的| 成人免费一区二区三区在线观看| 欧美一级在线视频| 欧美综合久久久| 99久久精品国产观看| 精品亚洲porn| 婷婷六月综合亚洲| 亚洲国产日产av| 亚洲精品日日夜夜| 中文字幕一区二区三区av| 精品国产91乱码一区二区三区| 欧美老肥妇做.爰bbww视频| 不卡av在线免费观看| 国产精品自产自拍| 极品少妇一区二区| 青青草精品视频| 视频一区二区不卡| 性做久久久久久免费观看欧美| 一区二区三区日本| 一区二区三区四区蜜桃| 一区二区欧美在线观看| 亚洲激情自拍偷拍| 一区二区三区四区中文字幕| 亚洲欧美国产三级| 亚洲色图色小说| 亚洲免费在线观看| 欧美亚洲一区二区在线观看| 成人app网站| 91同城在线观看| 99re热这里只有精品免费视频| 99精品久久只有精品| 一本色道久久综合亚洲aⅴ蜜桃| 99精品欧美一区二区三区小说| 日韩一区二区三区免费看| 性做久久久久久免费观看欧美| 亚洲欧洲99久久| 欧美日韩精品久久久| 欧美日韩综合色| 欧美人与性动xxxx| 欧美精品自拍偷拍动漫精品| 欧美日韩国产另类不卡| 欧美日韩一区在线观看| 91.xcao| 欧美视频你懂的| 日韩三级伦理片妻子的秘密按摩| 精品国产免费视频| 国产日韩欧美在线一区| 亚洲三级电影全部在线观看高清| 亚洲精品视频在线观看网站| 亚洲成人av一区二区| 免费看日韩精品| 国产一区二区三区视频在线播放| 国产不卡视频在线播放| 91丨porny丨国产| 欧美综合一区二区三区| 欧美电影精品一区二区| 日本一区二区视频在线| 中文字幕亚洲欧美在线不卡| 欧美三级韩国三级日本一级| 99精品视频免费在线观看| 久久亚洲一级片| 久久久久久久电影| 亚洲日穴在线视频| 日韩精品一二三| 国产成人8x视频一区二区| 色综合激情五月| 日韩视频免费观看高清完整版 | 色狠狠一区二区| 欧美日韩一区二区三区在线 | 亚洲女厕所小便bbb| 婷婷中文字幕综合| 成人午夜激情影院| 欧美疯狂做受xxxx富婆| 欧美韩日一区二区三区| 亚洲国产一区二区在线播放| 国产福利一区在线| 欧美老年两性高潮| 亚洲少妇30p| 国产精品一区二区久久精品爱涩 | 精品久久免费看| 亚洲激情五月婷婷| 国产乱人伦偷精品视频免下载| 日本二三区不卡| 国产精品无码永久免费888| 日韩av电影免费观看高清完整版 | 欧美日本一区二区三区| 欧美在线999| 日韩一级完整毛片| 亚洲人成7777| 极品瑜伽女神91| 欧美酷刑日本凌虐凌虐| 一本色道久久综合亚洲91| 亚洲与欧洲av电影| 欧美一区二区日韩| 亚洲伦理在线免费看| 国产麻豆成人传媒免费观看| 欧美日韩国产乱码电影| 亚洲免费观看高清完整版在线 | 日韩一区在线看| 国产99久久久久| 26uuu另类欧美亚洲曰本| 五月婷婷久久丁香| 91官网在线观看| 中文字幕一区二区日韩精品绯色| 精东粉嫩av免费一区二区三区 | 国产精品66部| 日韩欧美视频在线| 免费人成精品欧美精品| 这里是久久伊人| 五月激情综合网| 91成人国产精品| 亚洲精品水蜜桃| 97se狠狠狠综合亚洲狠狠| 国产精品美日韩| 成人午夜精品在线| 亚洲欧美在线视频观看| 不卡视频一二三四| 日韩一区在线看| 成人高清视频在线观看| 中日韩免费视频中文字幕| 亚洲四区在线观看| 972aa.com艺术欧美| 亚洲女子a中天字幕| 色哦色哦哦色天天综合| 亚洲精品视频在线看| 在线亚洲免费视频| 亚洲小少妇裸体bbw| 在线视频亚洲一区| 亚洲成人av一区二区三区| 欧美一区二区三区婷婷月色| 另类成人小视频在线| 26uuu久久天堂性欧美| 国产成人精品免费| 精品久久久久久久久久久久久久久 | 极品销魂美女一区二区三区| 久久久99精品免费观看不卡| 国产福利一区二区| 亚洲视频一区在线观看| 欧美在线视频全部完| 三级欧美在线一区| 精品国产sm最大网站| 一区二区三区丝袜| 欧美日韩精品一二三区| 免费看欧美女人艹b| 国产精品国产三级国产普通话99 | 欧美日韩国产一二三| 麻豆91在线播放| 欧美韩日一区二区三区| 欧美视频中文一区二区三区在线观看 |