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

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

?? commdevicedriver.cpp

?? VC中不采用控件方式進行串口通信的源碼
?? CPP
字號:
#ifndef __CDEBUGTOOL_H_INCLUDE
//#include "CDebugTool.h"
#endif

#include "CommDevLinkLayer.h"

//******************************************************************************
// SetupConnection()
//
//	描述:
//		建立DCB塊。通訊采用8位數據位、1位停止位,軟、硬件流控制不啟用。
//		設備出錯時,中斷讀寫操作。
//
//	參數:
//		HANDLE  hComm       通訊口句柄
//		DWORD 	BaudRate    通訊波特率
//******************************************************************************
static BOOL __fastcall SetupConnection( HANDLE hComm, DWORD BaudRate, BYTE parity )
{
  BOOL   	fRetVal ;
  DCB    	dcb ;
  COMMTIMEOUTS	CommTimeOuts ;

  // setup device buffers
  SetupComm( hComm, 4096, 4096 );

  // set up for overlapped I/O
  CommTimeOuts.ReadIntervalTimeout = MAXDWORD;
  CommTimeOuts.ReadTotalTimeoutMultiplier = MAXDWORD;
  CommTimeOuts.ReadTotalTimeoutConstant = 700;
  // CBR_9600 is approximately 1byte/ms. For our purposes, allow
  // double the expected time per character for a fudge factor.
  CommTimeOuts.WriteTotalTimeoutMultiplier = 1;
  CommTimeOuts.WriteTotalTimeoutConstant = 5 ;
  SetCommTimeouts( hComm, &CommTimeOuts ) ;

  // setup DCB
  dcb.DCBlength = sizeof( DCB ) ;

  GetCommState( hComm, &dcb ) ;

  dcb.BaudRate = BaudRate ;
  dcb.ByteSize = 8;
  dcb.Parity = parity ;
  dcb.StopBits = ONESTOPBIT;

  // hardware flow control,不激活。
  dcb.fOutxDsrFlow = 0 ;
  dcb.fOutxCtsFlow = 0 ;
  dcb.fDtrControl = DTR_CONTROL_ENABLE ;
  dcb.fRtsControl = RTS_CONTROL_ENABLE ;
  dcb.fDsrSensitivity = 0 ;

  // software flow control,關閉。
  dcb.fInX = dcb.fOutX = 0 ;
  //dcb.XonChar = ASCII_XON ;
  //dcb.XoffChar = ASCII_XOFF ;
  //dcb.XonLim = 100 ;
  //dcb.XoffLim = 100 ;

  // other various settings
  dcb.fBinary = TRUE ;
  dcb.fParity = (parity == EVENPARITY || parity == ODDPARITY);
  dcb.fNull = 0;
  dcb.fAbortOnError = 1;

  fRetVal = SetCommState( hComm, &dcb ) ;

  // purge any information in the buffer
  PurgeComm( hComm, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR ) ;

  return ( fRetVal ) ;
} // end of SetupConnection()

//******************************************************************************
// CommDev::OpenCommDev()
//
//	描述:
//		打開串行通訊口,同步方式。
//
//	參數:
//		char		   *szPort	  //串口名稱
//		DWORD		   BaudRate	  //通訊波特率
//
//	備注:
//		返回“假”時,可能是由于系統不存在該名稱的通訊口,或該通訊口
//              已被占用,或波特率不被系統承認,或一些必要的同步對象不能被生成。
//******************************************************************************
CommDev *CommDev::OpenCommDev(const char* szPort, DWORD BaudRate)
{
  HANDLE com_dev_handle;
  if (( com_dev_handle = CreateFile( szPort, // open com port
  		GENERIC_READ | GENERIC_WRITE,
  		0, NULL, // exclusive access, no security attrs
                OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, // synchronous I/O
		NULL )) == INVALID_HANDLE_VALUE )
    return NULL;

  if (SetupConnection (com_dev_handle, BaudRate, NOPARITY)) {
    //if( !SetCommMask( com_dev_handle, EV_ERR | EV_TXEMPTY ))
    //  goto _0;

    CommDev *aNewCommDev = new CommDev ();
    aNewCommDev->itsHandle = com_dev_handle;
    aNewCommDev->itsBaudRate = BaudRate;

    return aNewCommDev;
  }

_0:
  //abnormal return
  CloseHandle( com_dev_handle );
  return NULL;
} // end of OpenCommDev()

//******************************************************************************
// CommDev::CloseCommDev()
//
//	描述:
//              關閉串行通訊口。取消通訊口的事件掩碼。
//******************************************************************************
void CommDev::closeCommDev()
{
  if( itsHandle != INVALID_HANDLE_VALUE ) {
    CloseHandle (itsHandle);
    itsHandle = INVALID_HANDLE_VALUE;
  }
} // end of CloseCommDev()

//******************************************************************************
// CommDev::reopenWithParity()
//
//	描述:
//              改變串行通訊口的校驗模式。
//******************************************************************************
bool CommDev::changeParityScheme(BYTE parity)
{
   return SetupConnection(itsHandle, itsBaudRate, parity);
} // end of reopenWithParity()

//******************************************************************************
// CommDev::readRaw()
//
//	描述:
//              同步方式讀出。超時設置參見 SetpuConnection 。
//******************************************************************************
DWORD CommDev::readRaw(LPVOID lpBuf, DWORD BufSize)
{
  BOOL       fWriteStat ;
  COMSTAT    ComStat ;
  DWORD      dwErrorFlags;
  DWORD      dwLength;
  DWORD      dwReads = 0;
  BYTE       *buf = (BYTE*)lpBuf;
  while (BufSize > 0) {
    ClearCommError( itsHandle, &dwErrorFlags, &ComStat );
    fWriteStat = ReadFile( itsHandle, buf, BufSize, &dwLength, NULL );
    if( fWriteStat ) {
      if (dwLength == 0)
        break;

      dwReads += dwLength;
      BufSize -= dwLength;
      buf += dwLength;
    }
    else
      break;
  }

  return dwReads;
} // end of readRaw()

bool CommDev::writeRaw(LPCVOID lpBuf, DWORD sizeToWrite)
{
  BOOL        fWriteStat ;
  DWORD       dwBytesWritten ;
  DWORD       dwErrorFlags;
  COMSTAT     ComStat;

  ClearCommError( itsHandle, &dwErrorFlags, &ComStat );
  fWriteStat = WriteFile( itsHandle, lpBuf, sizeToWrite, &dwBytesWritten, NULL );

  return (fWriteStat && sizeToWrite == dwBytesWritten);
} // end of writeRaw()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
95精品视频在线| 亚洲观看高清完整版在线观看| 欧洲一区在线观看| 99久久伊人久久99| 91在线你懂得| 一本久久精品一区二区| 在线观看免费一区| 欧美日韩久久久久久| 欧美三片在线视频观看| 欧美精品久久99久久在免费线| 欧美午夜寂寞影院| 欧美日韩国产综合视频在线观看 | 日韩免费视频线观看| 在线观看91精品国产麻豆| 欧美日本在线视频| 日韩精品最新网址| 国产精品午夜在线观看| 亚洲女人的天堂| 午夜精品久久久久久久久久| 蜜桃久久av一区| 国产一区 二区 三区一级| av电影天堂一区二区在线观看| 91网上在线视频| 欧美精品 国产精品| xfplay精品久久| 亚洲靠逼com| 麻豆精品在线播放| 99re亚洲国产精品| 91精品免费在线观看| 国产女同性恋一区二区| 一区二区免费在线| 国内不卡的二区三区中文字幕| 不卡高清视频专区| 日韩一区和二区| 成人欧美一区二区三区1314| 午夜日韩在线电影| 成人性生交大片免费看在线播放| 欧美视频在线观看一区| 337p日本欧洲亚洲大胆精品 | 亚洲午夜视频在线| 国产在线播放一区三区四| 色哟哟一区二区三区| 日韩精品一区二区在线观看| 亚洲视频狠狠干| 国产一区在线观看麻豆| 欧美日韩国产a| 成人免费在线播放视频| 美女视频黄免费的久久| 在线精品视频小说1| 久久精品人人做人人综合 | 天堂蜜桃一区二区三区| 99r精品视频| 国产校园另类小说区| 男男成人高潮片免费网站| 一本色道亚洲精品aⅴ| 国产欧美日产一区| 精品一区二区三区免费毛片爱| 在线免费观看视频一区| 亚洲国产精品二十页| 寂寞少妇一区二区三区| 777精品伊人久久久久大香线蕉| 亚洲视频综合在线| 成人av在线一区二区三区| 久久九九久精品国产免费直播| 奇米四色…亚洲| 88在线观看91蜜桃国自产| 五月激情六月综合| 欧美日韩久久一区二区| 亚洲一区二区三区小说| 日本福利一区二区| 亚洲免费观看高清在线观看| 95精品视频在线| 亚洲欧洲日韩在线| av男人天堂一区| 国产精品成人一区二区艾草| eeuss鲁片一区二区三区在线观看| 久久久久久久综合狠狠综合| 精品一区二区国语对白| 欧美一区二区三区免费在线看| 亚洲成在线观看| 欧美性猛片aaaaaaa做受| 亚洲午夜av在线| 欧美日韩不卡在线| 看电影不卡的网站| 久久久久久久久久久久久久久99| 国产麻豆精品theporn| 国产亚洲欧美日韩日本| 成人激情电影免费在线观看| 国产精品国产三级国产aⅴ无密码| 成人精品国产免费网站| 亚洲伦理在线免费看| 欧美日韩电影在线| 国内久久精品视频| 中文字幕在线一区| 欧美三级在线播放| 九色综合狠狠综合久久| 国产精品欧美精品| 欧美图区在线视频| 国产真实精品久久二三区| 国产精品五月天| 欧美久久久久久久久久| 国内成人自拍视频| 一区二区三区四区亚洲| 91精品国产91久久综合桃花 | 99re这里只有精品首页| 亚洲图片欧美一区| 欧美精品一区二区三区蜜桃| 成人av资源在线观看| 亚洲伊人伊色伊影伊综合网| 日韩一二三区视频| 成人高清视频在线| 日本一不卡视频| 国产精品美女久久久久久久久久久| 91福利精品视频| 国产一区二区三区免费在线观看| 国产精品乱码一区二区三区软件 | 69堂精品视频| 成人动漫一区二区| 美女视频一区二区三区| 亚洲色图.com| 久久九九99视频| 欧美一级电影网站| 在线一区二区三区四区| 国产成人鲁色资源国产91色综 | 亚洲国产精品激情在线观看| 欧美日韩dvd在线观看| 国产91在线|亚洲| 免费一区二区视频| 一区二区在线看| 日本一二三不卡| 久久综合丝袜日本网| 91精品婷婷国产综合久久性色| eeuss鲁片一区二区三区| 国产综合色产在线精品| 日本一不卡视频| 香蕉成人啪国产精品视频综合网| 自拍偷拍亚洲综合| 欧美国产一区二区在线观看| 日韩欧美久久久| 欧美久久免费观看| 欧美视频一区在线| 欧美在线视频日韩| 色综合久久99| 色久优优欧美色久优优| 99精品视频一区二区三区| 床上的激情91.| 国产高清成人在线| 国产69精品一区二区亚洲孕妇| 韩国视频一区二区| 国内精品视频666| 国内精品在线播放| 国产成人av电影在线| 国产高清精品网站| 白白色 亚洲乱淫| 99国产一区二区三精品乱码| av成人免费在线| 一本一本久久a久久精品综合麻豆| 91日韩精品一区| 色综合久久综合网欧美综合网| 91福利视频在线| 欧美精品乱人伦久久久久久| 欧美一区二区三区四区在线观看| 91精品国产综合久久久久久久久久| 69堂国产成人免费视频| 欧美成人精品1314www| 久久欧美一区二区| 中文字幕在线不卡国产视频| 成人欧美一区二区三区白人| 亚洲与欧洲av电影| 日韩高清在线电影| 国产一区二区视频在线| 成人白浆超碰人人人人| 在线精品视频免费观看| 欧美一级在线视频| 国产欧美日韩三区| 亚洲综合在线观看视频| 免费观看成人av| www.亚洲国产| 在线这里只有精品| 日韩欧美三级在线| 国产精品国产精品国产专区不蜜 | 免费观看久久久4p| 福利视频网站一区二区三区| 色网站国产精品| 日韩女同互慰一区二区| 综合色天天鬼久久鬼色| 日韩精品三区四区| 成人国产在线观看| 777午夜精品免费视频| 国产精品蜜臀av| 青草国产精品久久久久久| 成人av午夜影院| 制服.丝袜.亚洲.中文.综合| 欧美国产一区二区| 日本三级韩国三级欧美三级| 不卡视频在线看| 欧美videossexotv100| 一区二区不卡在线视频 午夜欧美不卡在| 青青草国产精品亚洲专区无| 99久久精品国产网站|