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

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

?? com232.cpp

?? 串口通信代碼
?? CPP
字號:
#include "stdafx.h"
#include "com232.h"

BYTE XwCom=0x40;
BYTE  sCom1[5],sCom2[MAXBLOCKLENGTH+12],sCom3[MAXBLOCKLENGTH+12];
BYTE opation;
short ComNum;



CComStatus::CComStatus()
{
	m_hCom = NULL;
	m_bComId = (char)ComNum;

	m_bByteSize=8;
	m_bStopBits=ONESTOPBIT;
	m_bParity=NOPARITY;

	m_bEvtChar=EVENTCHAR;
	m_fBinary=1;

	m_bConnected = FALSE;
	m_bFlowCtrl = FC_XONXOFF ;
	m_fXonXoff = FALSE;
}
CComStatus::CComStatus(BYTE bComId,BYTE bByteSize,BYTE bStopBits,BYTE bParity,
		DWORD dwBaudRate,char bEvtChar,DWORD fBinary)
{
	m_hCom = NULL;
	m_bComId = bComId;

	m_bByteSize=bByteSize;
	m_bStopBits=bStopBits;
	m_bParity=bParity;
	m_dwBaudRate=dwBaudRate;
//	m_fChEvt=1;
	m_bEvtChar=bEvtChar;
	m_fBinary=fBinary;

	m_bConnected = FALSE;

	m_bFlowCtrl = FC_XONXOFF ;
	m_fXonXoff = FALSE;

}
BOOL CComStatus::OpenConnection()
{
	char csCom[10];
    COMMTIMEOUTS  CommTimeOuts ;

    if((m_bComId < 0) || (m_bComId > 4))
		return FALSE;//從COM1到COM3
	if(m_hCom)//if already open
		return FALSE;
    //OVERLAPPED包含異步I/O信息
	m_rdos.Offset = 0;
	m_rdos.OffsetHigh = 0;
	m_rdos.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
	if(m_rdos.hEvent == NULL)
		return FALSE;
	m_wtos.Offset = 0;
	m_wtos.OffsetHigh = 0;
	m_wtos.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
	if(m_wtos.hEvent == NULL)
	{
		CloseHandle(m_rdos.hEvent);
		return FALSE;
	}
	

	wsprintf(csCom,"COM%d",m_bComId);
	m_hCom = CreateFile(csCom,GENERIC_READ | GENERIC_WRITE,
    0,
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
    NULL
	);

	if(m_hCom == INVALID_HANDLE_VALUE) {
		
		return FALSE;
	}
	else
	{

      SetCommMask( m_hCom, EV_RXCHAR ) ;

    

      SetupComm( m_hCom, 4096, 4096 ) ;

  

      PurgeComm( m_hCom, PURGE_TXABORT | PURGE_RXABORT |
                                      PURGE_TXCLEAR | PURGE_RXCLEAR ) ;

      
	  DWORD dwTemp = 1000 / (this->m_dwBaudRate / 8);
      CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF ;
      CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
      CommTimeOuts.ReadTotalTimeoutConstant = 1000 ;
      
      CommTimeOuts.WriteTotalTimeoutMultiplier = 2*CBR_9600/this->m_dwBaudRate;
      CommTimeOuts.WriteTotalTimeoutConstant = 0;
      SetCommTimeouts( m_hCom, &CommTimeOuts ) ;
	}
	if(!SetupConnection())
	{
		CloseConnection();
		return FALSE;
	}
	EscapeCommFunction( m_hCom, SETDTR );
	m_bConnected = TRUE;
	return TRUE;
}
BOOL CComStatus::CloseConnection()
{
   if (NULL == m_hCom)
      return ( TRUE ) ;

   

	m_bConnected = FALSE;
  

   SetCommMask( m_hCom, 0 ) ;

   
   EscapeCommFunction( m_hCom, CLRDTR ) ;

  

   PurgeComm( m_hCom, PURGE_TXABORT | PURGE_RXABORT |
                                   PURGE_TXCLEAR | PURGE_RXCLEAR ) ;
   CloseHandle( m_hCom ) ;
	m_hCom = NULL;
 
	CloseHandle(m_rdos.hEvent);
	CloseHandle(m_wtos.hEvent);

   return ( TRUE ) ;
}
BOOL CComStatus::SetupConnection()
{
   BOOL       fRetVal ;
   BYTE       bSet ;
   DCB        dcb ;
	if(m_hCom == NULL)
		return FALSE; 
   dcb.DCBlength = sizeof( DCB ) ;

   GetCommState( m_hCom, &dcb ) ;

   dcb.BaudRate = this->m_dwBaudRate;
   dcb.ByteSize = this->m_bByteSize;
   dcb.Parity =  this->m_bParity;
   dcb.StopBits = this->m_bStopBits ;
	dcb.EvtChar = this->m_bEvtChar ;
   

   bSet = (BYTE) ((m_bFlowCtrl & FC_DTRDSR) != 0) ;
   dcb.fOutxDsrFlow = bSet ;
   if (bSet)
      dcb.fDtrControl = DTR_CONTROL_HANDSHAKE ;
   else
      dcb.fDtrControl = DTR_CONTROL_ENABLE ;

   bSet = (BYTE) ((m_bFlowCtrl & FC_RTSCTS) != 0) ;
	dcb.fOutxCtsFlow = bSet ;
   if (bSet)
      dcb.fRtsControl = RTS_CONTROL_HANDSHAKE ;
   else
      dcb.fRtsControl = RTS_CONTROL_ENABLE ;

   

   bSet = (BYTE) ((m_bFlowCtrl & FC_XONXOFF) != 0) ;

   dcb.fInX = dcb.fOutX = bSet ;
   dcb.XonChar = ASCII_XON ;
   char xon = ASCII_XON ;
   dcb.XoffChar = ASCII_XOFF ;
    char xoff = ASCII_XOFF ;
    dcb.XonLim = 100 ;
   dcb.XoffLim = 100 ;

   

   dcb.fBinary = TRUE ;
   dcb.fParity = TRUE ;

   fRetVal = SetCommState( m_hCom, &dcb ) ;

   return ( fRetVal ) ;

} 
BOOL CComStatus::IsConnected()
{
	return m_bConnected;
}
int ReadCommBlock(CComStatus& comDev,LPSTR lpszBlock, int nMaxLength )
{
   BOOL       fReadStat ;

   COMSTAT    ComStat ;
   DWORD      dwErrorFlags;
   DWORD      dwLength;
   DWORD      dwError;
   char       szError[ 10 ] ;
   
   ClearCommError( comDev.m_hCom, &dwErrorFlags, &ComStat ) ;
   dwLength = min( (DWORD) nMaxLength, ComStat.cbInQue ) ;

   if (dwLength > 0)
   {
      fReadStat = ReadFile( comDev.m_hCom, lpszBlock,
		                    dwLength, &dwLength, &(comDev.m_rdos) ) ;

      if (!fReadStat)
      {
         if (GetLastError() == ERROR_IO_PENDING)
         {
            OutputDebugString("\n\rIO Pending");
            
            while(!GetOverlappedResult( comDev.m_hCom ,
               &(comDev.m_rdos), &dwLength, TRUE ))
            {
               dwError = GetLastError();
               if(dwError == ERROR_IO_INCOMPLETE)
                  
                  continue;
               else
               {
                  
                  wsprintf( szError, "<CE-%u>", dwError ) ;
                  
                  ClearCommError( comDev.m_hCom , &dwErrorFlags, &ComStat ) ;
                 
                  break;
               }

            }

	      }
         else
         {
            
            dwLength = 0 ;
            ClearCommError( comDev.m_hCom , &dwErrorFlags, &ComStat ) ;
            
         }
      }
   }

   return ( dwLength ) ;

} 
BOOL WriteCommBlock( CComStatus& comDev, LPSTR lpByte , DWORD dwBytesToWrite)
{

   BOOL        fWriteStat ;
   DWORD       dwBytesWritten ;

   DWORD       dwErrorFlags;
   DWORD   	dwError;
   DWORD       dwBytesSent=0;
   COMSTAT     ComStat;
   char        szError[ 128 ] ;


   fWriteStat = WriteFile( comDev.m_hCom , lpByte, dwBytesToWrite,
                           &dwBytesWritten, &( comDev.m_wtos) ) ;

   

   if (!fWriteStat)
   {
      if(GetLastError() == ERROR_IO_PENDING)
      {
        

         while(!GetOverlappedResult( comDev.m_hCom,
            &(comDev.m_wtos), &dwBytesWritten, TRUE ))
         {
            dwError = GetLastError();
            if(dwError == ERROR_IO_INCOMPLETE)
            {
               
               dwBytesSent += dwBytesWritten;
               continue;
            }
            else
            {
               
               wsprintf( szError, "<CE-%u>", dwError ) ;
               
               ClearCommError( comDev.m_hCom, &dwErrorFlags, &ComStat ) ;
               
               break;
            }
         }

         dwBytesSent += dwBytesWritten;

         if( dwBytesSent != dwBytesToWrite )
             wsprintf(szError,"\nProbable Write Timeout: Total of %ld bytes sent", dwBytesSent);
         else
             wsprintf(szError,"\n%ld bytes written", dwBytesSent);

         OutputDebugString(szError);

      }
      else
      {
         
         ClearCommError( comDev.m_hCom, &dwErrorFlags, &ComStat ) ;
         
         return ( FALSE );
      }
   }
   return ( TRUE ) ;

} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合久久久久久| 久久99久久精品| 亚洲电影在线免费观看| 国产亚洲va综合人人澡精品| 91麻豆精品国产综合久久久久久| 另类中文字幕网| 亚洲国产一区二区a毛片| 亚洲免费av观看| 国产精品麻豆久久久| 91视频观看视频| 国产黄人亚洲片| 狠狠色综合日日| 亚洲欧洲日韩一区二区三区| 欧美性色黄大片手机版| 国产福利一区二区三区在线视频| 一区二区日韩电影| 亚洲嫩草精品久久| 亚洲激情图片qvod| 亚洲综合色在线| 亚洲大片精品永久免费| 亚洲成人动漫在线观看| 亚洲欧美另类久久久精品 | 亚洲男人电影天堂| 欧美精品久久一区| 成人免费视频国产在线观看| 国产91精品露脸国语对白| 国产综合色视频| 国产盗摄精品一区二区三区在线| 一区二区三区.www| 香蕉成人伊视频在线观看| 亚洲精品日韩一| 1024亚洲合集| 中文字幕亚洲区| 日韩欧美另类在线| 国产亚洲自拍一区| 中文字幕在线不卡国产视频| 亚洲精品va在线观看| 婷婷国产v国产偷v亚洲高清| 国产精品久久久久毛片软件| 日韩欧美高清一区| 精品毛片乱码1区2区3区| 久久免费视频色| 亚洲人快播电影网| 日韩国产精品久久久久久亚洲| 亚洲另类在线一区| 欧美成人一级视频| 国产欧美一区二区精品婷婷| 中文字幕在线观看一区二区| 久久久精品免费观看| 亚洲天堂精品在线观看| 午夜私人影院久久久久| 国产综合久久久久影院| 99热这里都是精品| 777午夜精品免费视频| 欧美中文字幕一二三区视频| 亚洲精品在线电影| 国产精品素人视频| 97国产一区二区| 久久99精品久久久久| 欧美疯狂做受xxxx富婆| 99精品偷自拍| 亚洲成国产人片在线观看| 91偷拍与自偷拍精品| 亚洲一区二区美女| 国产成人高清在线| 亚洲国产日韩综合久久精品| 久久中文娱乐网| 中文av一区二区| 亚洲一区二区在线视频| 午夜成人免费电影| 国产不卡视频一区| 欧美精品一卡二卡| 国产精品全国免费观看高清| 久久精品免费在线观看| 亚洲1区2区3区视频| 国产成人综合在线| 丰满亚洲少妇av| 99免费精品在线| 日韩一级精品视频在线观看| 亚洲品质自拍视频| 久久精品国产网站| 欧美色窝79yyyycom| 国产亚洲女人久久久久毛片| 亚洲电影一级片| www.亚洲精品| 久久久久99精品国产片| 日韩精品电影在线观看| 91丨porny丨户外露出| 日韩精品一区二区三区视频在线观看| 欧美电视剧免费观看| 最新高清无码专区| 韩国三级电影一区二区| 成人综合日日夜夜| 日韩欧美一区二区在线视频| 亚洲欧美精品午睡沙发| 粉嫩aⅴ一区二区三区四区| 日韩一区二区在线观看视频| 久久久久久日产精品| 五月婷婷激情综合网| 不卡的av在线| 国产日本亚洲高清| 九九久久精品视频| 欧美一区二区三区性视频| 欧美精品一区二区三区很污很色的| 久久久国产午夜精品| 亚洲精品乱码久久久久| 国产91精品露脸国语对白| 精品国产欧美一区二区| 亚洲综合色噜噜狠狠| 捆绑调教一区二区三区| 丁香婷婷综合网| 久久女同性恋中文字幕| 精品一区二区三区免费播放| av不卡在线观看| 国产精品免费aⅴ片在线观看| 婷婷中文字幕一区三区| 在线免费视频一区二区| 国产精品伦理在线| 波多野结衣中文一区| 国产精品久久久久久久岛一牛影视| 亚洲成人黄色小说| 欧美影院精品一区| 亚洲第一狼人社区| 欧美日韩免费一区二区三区 | 亚洲黄色片在线观看| jlzzjlzz国产精品久久| 国产精品久久99| 91看片淫黄大片一级在线观看| 91精品视频网| 日韩精品1区2区3区| 91麻豆精品国产91久久久久久| 欧美国产成人精品| 久久99精品国产91久久来源| 26uuu精品一区二区 | 国产精品国产三级国产普通话99 | 欧美日韩国产高清一区二区三区| 中文字幕免费在线观看视频一区| 日韩精品欧美成人高清一区二区| 国产精品一级黄| 国产精品嫩草99a| 一本色道久久综合亚洲精品按摩| 欧美精品一区二区三区四区 | 国产精品系列在线观看| 日本一区二区三区视频视频| 免费看欧美女人艹b| 久久综合国产精品| 99久久伊人久久99| 尤物av一区二区| 67194成人在线观看| 精品亚洲porn| 国产精品色婷婷| 成人av在线资源网站| 亚洲青青青在线视频| 欧美日韩一级二级| 午夜天堂影视香蕉久久| 欧美变态口味重另类| 亚洲永久免费视频| 欧美一二三区精品| 精品一区二区三区在线观看国产| 99riav一区二区三区| 日韩三级在线免费观看| 成人av午夜影院| 秋霞av亚洲一区二区三| 国产三级精品三级在线专区| 欧美日韩二区三区| 天天综合网天天综合色| 国产精品视频线看| 欧美一级黄色大片| 欧美性生活一区| jlzzjlzz欧美大全| 国产在线精品一区二区夜色 | 国产寡妇亲子伦一区二区| 日本一区二区三区四区在线视频 | 91精品免费观看| av在线播放成人| 国产乱码一区二区三区| 亚洲成人在线免费| 欧美电视剧在线看免费| 欧美三级在线看| 91视频.com| av网站免费线看精品| 一区二区三区在线播| 国产精品伦理在线| 久久色视频免费观看| 日韩免费电影一区| 欧美精品aⅴ在线视频| 91黄色免费版| 色综合婷婷久久| 成人污污视频在线观看| 亚洲综合激情网| 国产精品久久久久久久午夜片| 在线视频一区二区免费| 成人av网址在线| 国产一区二区三区四区在线观看 | 久久国产麻豆精品| 五月婷婷综合网| 亚洲二区在线观看| 亚洲一二三四区| 国产亚洲一二三区| 精品久久久久香蕉网|