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

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

?? comport.h

?? 一個多線程串口通訊的事例,適合于在串口通信方面有基礎的人進一步研究
?? H
字號:
/*************************************************************************************************
*                        
*        模塊名稱:多線程串口通訊類        
*        編制人:liu_sir    日期:2003.4.20 -4.30       
*        版本:v1.0 
*        主要類說明:
*             CComPort 串口類  內聚合一個CSerialPort類用于串口的操作
*                      接收模式說明:
*   	                 1.ManualReceiveByQuery,  //手動查詢接收
*		                 2.ManualReceiveByConst,  //定數接收(按照一定數量接收)
*		                 3.AutoReceiveBySignal,   //信號自動接收
*                        4.AutoReceiveByBreak,	   //自動中斷接收
*                     推薦使用:1或3
*		     CReadComThread 串口讀線程類  和CComPort關聯起來進行操作
*       
*
***************************************************************************************************/
#pragma once
//接收函數
#ifndef COMPORT_H
#define COMPORT_H

typedef void (* FOnReceiveData)(LPVOID,void*,DWORD);
typedef void (* FOnComBreak)(LPVOID,DWORD,COMSTAT stat);


#include "serialport.h"
// CComPort 命令目標
namespace LsComm{

class CReadComThread;

class CComPort 
{
public:
	enum ReceiveMode
	{
		ManualReceiveByQuery,  //手動查詢接收
		ManualReceiveByConst,  //定數接收
		AutoReceiveBySignal,   //信號自動接收
        AutoReceiveByBreak,	   //自動中斷接收
	};
    //Enums
	enum FlowControl
	{
		NoFlowControl,
		CtsRtsFlowControl,
		CtsDtrFlowControl,
		DsrRtsFlowControl,
		DsrDtrFlowControl,
		XonXoffFlowControl
	};

	enum Parity
	{    
		EvenParity,
		MarkParity,
		NoParity,
		OddParity,
		SpaceParity
	};

	enum StopBits
	{
		OneStopBit,
		OnePointFiveStopBits,
		TwoStopBits
	};

	CComPort();
	virtual ~CComPort();


	  //1.打開,關閉串口函數
	  void Open(int nPort,ReceiveMode mode=AutoReceiveBySignal, DWORD dwBaud = 9600, Parity parity = NoParity, BYTE DataBits = 8, 
		  StopBits stopbits = OneStopBit, FlowControl fc = NoFlowControl);
      void Close();

      //2.設置接收函數,中斷處理函數 
	  void SetReceiveFunc(FOnReceiveData pfnOnReceiveData,LPVOID pSender);
      void SetBreakHandleFunc(FOnComBreak pfnOnComBreak);

	  //3.獲取自身參數
	  int GetCurPortNum() { return this->m_CurPortNum;  }
	  CSerialPort* GetSerialPort(); 
	  HANDLE GetCloseHandle();
	  ReceiveMode GetReceiveMode();

      //4.(線程類)通知接收處理函數     
	  void ReceiveData(void* pBuf,DWORD InBufferCount);//線程調用的接收函數
	  void ComBreak(DWORD dwMask);

	  //6.輸入,輸出函數--返回實際個數
	  DWORD GetInBufferCount();
	  DWORD GetInput(void* pBuf,DWORD Count,DWORD dwMilliseconds=1000);
	  DWORD Output(void* pBuf,DWORD Count);
	  bool IsOverlapped() { return m_IsOverlapped; }
protected:
	CSerialPort* m_pPort;                           //內含串口類
	CReadComThread* m_pReadThread;                  //讀串口線程 

	LPVOID m_pSender;                               //保存的父窗體指針
	int m_CurPortNum;                               //當前端口號 
    FOnReceiveData m_pfnOnReceiveData;              //接收信號函數
	FOnComBreak    m_pfnOnComBreak;                 //串口事件處理函數
    ReceiveMode    m_RecvMode;                      //接收模式

	HANDLE         m_hWriteEvent;                    //寫事件
	OVERLAPPED     m_WriteOverlapped;                //寫重疊結構

	bool m_IsOverlapped;                            //是否重疊結構;
private:
    HANDLE m_hCloseEvent; //E: A event handle to close thread  //Chinese:結束線程事件

};

DWORD WINAPI ThreadFunc(LPVOID  lpParam ); //線程調用函數 

class CReadComThread
{
public:
    /*1.構造與系構函數
	*/
	CReadComThread();
    virtual ~CReadComThread();          
    
	/* 2.創建,結束,復位 
	*/
    void Create();                         //創建線程
    void Terminate();                      //結束線程
    void Resume();                         //復位 
	bool IsTerminated()	{return this->m_IsTerminated; }
     
	/*3.綁定串口,異步讀取
	*/
	void BandSerialPort(CComPort* pPort);  //綁定串口
	DWORD ReadInput(void* pBuf,DWORD Count,DWORD dwMilliseconds);//異步讀取輸入

	friend DWORD WINAPI ThreadFunc(LPVOID  lpParam ); 
protected:
	DWORD dwThreadId;//線程號  
    bool IsClose;
    /*4.設置異步讀取事件,異步中斷事件以及處理事件
	*/
	bool SetReadEvent(OVERLAPPED& overlapped);//設置啟動讀事件
	bool HandleReadEvent(OVERLAPPED& overlapped);//處理讀事件
    bool HandleData(); //處理讀取數據
    
	bool SetBreakEvent(DWORD& dwMask);//設置串口中斷事件,通過DWMask參數的改變返回監聽狀態
	bool HandleBreakEvent(DWORD dwMask);//處理串口中斷事件

	/*5.手動模式,信號模式,中斷模式執行線程
	*/
	void ExecuteByAutoSignalRecvMode();
	void ExecuteByAutoBreakRecvMode();
	void ExecuteByManualQueryRecvMode();
	void ExecuteByManualConstRecvMode();
    void Execute(void);                    //線程執行
   
private:
	HANDLE m_hThread;           //線程句柄
	CComPort* m_pPort;          //關聯串口指針

    byte  m_InputBuffer[2048];  //接收緩沖區
	byte* m_pBuffer;            //實際的內存 
	DWORD m_InBufferCount;      //接收個數 

	OVERLAPPED m_ReadOverlapped;     //讀取重疊結構
	OVERLAPPED m_BreakOverlapped;    //串口中斷事件結構
    
	bool m_IsTerminated;            //是否結束線程 

};

}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久伊人蜜桃av一区二区| 日韩理论电影院| 1000部国产精品成人观看| 亚洲国产欧美另类丝袜| 国产盗摄精品一区二区三区在线| 欧美自拍丝袜亚洲| 久久嫩草精品久久久精品一| 亚洲国产精品久久久久婷婷884 | 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲国产精品二十页| 日本欧美一区二区三区| 97久久超碰精品国产| 精品国产凹凸成av人导航| 日日夜夜精品视频免费| 91久久久免费一区二区| 中文字幕色av一区二区三区| 国产一区二区三区精品视频| 777精品伊人久久久久大香线蕉| 亚洲人成精品久久久久久| 国产精品一品二品| 日韩久久久精品| 日本欧美一区二区| 7777精品伊人久久久大香线蕉经典版下载 | 久久精品视频网| 狂野欧美性猛交blacked| 欧美日韩夫妻久久| 亚洲一区二区三区在线| 色妹子一区二区| 国产精品久久一卡二卡| 成人va在线观看| 国产精品午夜在线观看| 国产成人精品一区二| 久久精品日产第一区二区三区高清版| 美女一区二区三区| 日韩三级av在线播放| 精品一区二区三区在线视频| 欧美成人r级一区二区三区| 久久国产婷婷国产香蕉| 久久夜色精品一区| 国产高清亚洲一区| 自拍偷拍亚洲激情| 91成人免费电影| 五月天一区二区三区| 91精品国产色综合久久久蜜香臀| 日本欧美一区二区三区| 久久这里只精品最新地址| 国产a精品视频| 亚洲精品视频在线观看免费| 欧美无砖砖区免费| 秋霞午夜av一区二区三区| 欧美xxxx老人做受| av日韩在线网站| 亚洲午夜在线视频| 日韩精品一区二区三区四区 | 99国产精品国产精品毛片| 尤物av一区二区| 欧美一区二区三区啪啪| 国产一区美女在线| 亚洲女人的天堂| 6080国产精品一区二区| 韩国av一区二区三区四区| 国产精品久久综合| 4438成人网| 国产成人在线免费| 亚洲综合一区二区精品导航| 日韩视频免费观看高清在线视频| 国产麻豆欧美日韩一区| 樱桃国产成人精品视频| 欧美videossexotv100| 99精品视频在线播放观看| 午夜精品久久久久影视| 欧美国产精品一区二区| 91精品国产综合久久久久久漫画| 国内一区二区视频| 亚洲va中文字幕| 国产精品福利在线播放| 日韩视频在线一区二区| 色网站国产精品| 国产精品综合在线视频| 午夜欧美2019年伦理| 国产精品视频看| 日韩欧美国产三级电影视频| 99久久伊人网影院| 精油按摩中文字幕久久| 亚洲国产日韩综合久久精品| 日本一区二区成人| 欧美成人激情免费网| 欧美日韩精品三区| 色婷婷久久一区二区三区麻豆| 国内精品不卡在线| 亚洲va天堂va国产va久| 亚洲欧美激情小说另类| 国产日韩欧美综合一区| 欧美r级在线观看| 51午夜精品国产| 欧美伊人久久久久久久久影院| kk眼镜猥琐国模调教系列一区二区| 久久国产精品99久久人人澡| 亚洲电影中文字幕在线观看| 亚洲乱码国产乱码精品精可以看| 久久一二三国产| 久久亚洲精品小早川怜子| 91精品国产手机| 欧美一区二区性放荡片| 欧美精品色一区二区三区| 91福利在线免费观看| 99r国产精品| 99久久精品免费精品国产| 国产福利一区二区三区视频 | 视频一区二区三区入口| 亚洲伊人色欲综合网| 一区二区三区欧美亚洲| 亚洲美女视频在线观看| 亚洲私人黄色宅男| 亚洲另类在线视频| 亚洲精品高清在线| 亚洲自拍欧美精品| 亚洲高清在线视频| 日韩av电影天堂| 久久综合综合久久综合| 国产乱码一区二区三区| 国产91精品久久久久久久网曝门| 国产成人一级电影| 不卡电影一区二区三区| 99精品热视频| 在线视频你懂得一区二区三区| 欧美视频三区在线播放| 亚洲精品成人精品456| 国产精品伦一区二区三级视频| 欧美国产欧美亚州国产日韩mv天天看完整| 精品国产一区二区精华| 欧美精品一区二区三区很污很色的| 欧美大片在线观看| 国产欧美精品国产国产专区| 中文字幕+乱码+中文字幕一区| 欧美激情一区二区三区全黄| 国产精品人成在线观看免费| 亚洲乱码国产乱码精品精可以看| 亚洲综合在线电影| 午夜视频在线观看一区| 久久精品国产999大香线蕉| 国产一区不卡视频| 91麻豆精东视频| 欧美精品xxxxbbbb| 久久久亚洲综合| 亚洲第一激情av| 国产一区二区三区久久悠悠色av| 成人动漫一区二区在线| 欧美午夜电影网| 久久亚洲免费视频| 亚洲一区二区三区四区在线观看| 欧美aⅴ一区二区三区视频| 国产一区二区福利视频| 色8久久精品久久久久久蜜| 91精品国产综合久久香蕉的特点| 欧美国产成人精品| 天堂在线亚洲视频| 97精品久久久午夜一区二区三区 | 欧美久久久久久久久中文字幕| 国产亚洲精品免费| 亚洲香肠在线观看| 豆国产96在线|亚洲| 91精品国产综合久久小美女| 国产精品毛片久久久久久久| 午夜精品一区二区三区电影天堂| 国产成人精品网址| 制服丝袜日韩国产| 中文字幕一区二| 国产乱码精品一品二品| 欧美日韩精品欧美日韩精品一 | 久久精品72免费观看| 99这里只有精品| 欧美变态口味重另类| 亚洲一区视频在线观看视频| 高清在线观看日韩| 555夜色666亚洲国产免| 一卡二卡欧美日韩| 成人av在线播放网址| 精品欧美一区二区三区精品久久| 亚洲最大成人综合| 成人avav影音| 久久欧美一区二区| 蜜桃视频在线一区| 91精品国产全国免费观看| 亚洲欧美电影一区二区| 成人自拍视频在线| 久久这里只精品最新地址| 热久久国产精品| 欧美军同video69gay| 亚洲无人区一区| 在线视频一区二区三| 一区二区三区中文字幕| 成人性生交大片免费看中文| 久久影视一区二区| 国产福利一区二区| 国产欧美久久久精品影院| 国产在线一区观看| 精品成人在线观看| 看电影不卡的网站| 久久久久亚洲蜜桃|