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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? crs232.vb

?? Corrado Cavalli為VB.NET寫的串口通訊類。通過調(diào)用API的方法與串口通訊。我的有關(guān)串口通訊的程序都是用的這個類。
?? VB
?? 第 1 頁 / 共 3 頁
字號:
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Threading

#Region "RS232"
Public Class Rs232
'===================================================
	'												?002 Corrado Cavalli All rights reserved
	'
	'	Module				:	Rs232
	'	Description		:	Class for handling RS232 comunication with VB.Net
	'	Created				:	10/08/2001 - 8:45:25
	'	Author				:	Corrado Cavalli
	'
	'	Notes					:	
	'-----------------------------------------------------------------------------------------------
	'																		Revisions
	'	Rev.1	(28.02.2002)
	'	1.	Added ResetDev, SetBreak and ClearBreak to the EscapeCommFunction constants
	'	2.	Added the overloaded Open routine.
	'	3.	Added the modem status routines, properties and enum.
	'	4.	If a read times out, it now returns a EndOfStreamException (instead of a simple Exception).
	'
	'  Above modification suggested by:
	'	Richard J. Kucia
	'	Kucia Associates
	'	rjkucia@worldnet.att.net

	'	Rev.2	(01.02.2002)
	'	Added Async support
	'===================================================


	'// Class Members		
	Private mhRS As Int32 = -1	  '// Handle to Com Port									
	Private miPort As Integer = 1	  '//  Default is COM1	
	Private miTimeout As Int32 = 70	  '// Timeout in ms
	Private miBaudRate As Int32 = 9600
	Private meParity As DataParity = 0
	Private meStopBit As DataStopBit = 0
	Private miDataBit As Int32 = 8
	Private miBufferSize As Int32 = 512	  '// Buffers size default to 512 bytes
	Private mabtRxBuf As Byte()	  '//  Receive buffer	
	Private meMode As Mode	 '//  Class working mode	
	Private mbWaitOnRead As Boolean
	Private mbWaitOnWrite As Boolean
	Private mbWriteErr As Boolean
	Private muOverlapped As OVERLAPPED
	Private muOverlappedW As OVERLAPPED
	Private muOverlappedE As OVERLAPPED
	Private mabtTmpTxBuf As Byte()		'// Temporary buffer used by Async Tx
	Private moThreadTx As Thread
	Private moThreadRx As Thread
	Private miTmpBytes2Read As Int32
	Private meMask As EventMasks
	'----------------------------------------------------------------------------------------

#Region "Enums"
	'// Parity Data
	Public Enum DataParity
		Parity_None = 0
		Pariti_Odd
		Parity_Even
		Parity_Mark
	End Enum
	'// StopBit Data
	Public Enum DataStopBit
		StopBit_1 = 1
		StopBit_2
	End Enum
	Private Enum PurgeBuffers
		RXAbort = &H2
		RXClear = &H8
		TxAbort = &H1
		TxClear = &H4
	End Enum
	Private Enum Lines
		SetRts = 3
		ClearRts = 4
		SetDtr = 5
		ClearDtr = 6
		ResetDev = 7		 '	// Reset device if possible
		SetBreak = 8		 '	// Set the device break line.
		ClearBreak = 9		 '	// Clear the device break line.
	End Enum
	'// Modem Status
	<Flags()> Public Enum ModemStatusBits
		ClearToSendOn = &H10
		DataSetReadyOn = &H20
		RingIndicatorOn = &H40
		CarrierDetect = &H80
	End Enum
	'// Working mode
	Public Enum Mode
		NonOverlapped
		Overlapped
	End Enum
	'// Comm Masks
	<Flags()> Public Enum EventMasks
		RxChar = &H1
		RXFlag = &H2
		TxBufferEmpty = &H4
		ClearToSend = &H8
		DataSetReady = &H10
		ReceiveLine = &H20
		Break = &H40
		StatusError = &H80
		Ring = &H100
	End Enum
#End Region
#Region "Structures"
	<StructLayout(LayoutKind.Sequential, Pack:=1)> Private Structure DCB
		Private DCBlength As Int32
		Private BaudRate As Int32
		Private Bits1 As Int32
		Private wReserved As Int16
		Private XonLim As Int16
		Private XoffLim As Int16
		Private ByteSize As Byte
		Private Parity As Byte
		Private StopBits As Byte
		Private XonChar As Byte
		Private XoffChar As Byte
		Private ErrorChar As Byte
		Private EofChar As Byte
		Private EvtChar As Byte
		Private wReserved2 As Int16
	End Structure
	<StructLayout(LayoutKind.Sequential, Pack:=1)> Private Structure COMMTIMEOUTS
		Public ReadIntervalTimeout As Int32
		Public ReadTotalTimeoutMultiplier As Int32
		Public ReadTotalTimeoutConstant As Int32
		Public WriteTotalTimeoutMultiplier As Int32
		Public WriteTotalTimeoutConstant As Int32
	End Structure
	<StructLayout(LayoutKind.Sequential, Pack:=1)> Private Structure COMMCONFIG
		Private dwSize As Int32
		Private wVersion As Int16
		Private wReserved As Int16
		Private dcbx As DCB
		Private dwProviderSubType As Int32
		Private dwProviderOffset As Int32
		Private dwProviderSize As Int32
		Private wcProviderData As Byte
	End Structure
	<StructLayout(LayoutKind.Sequential, Pack:=1)> Public Structure OVERLAPPED
		Public Internal As Int32
		Public InternalHigh As Int32
		Public Offset As Int32
		Public OffsetHigh As Int32
		Public hEvent As Int32
	End Structure
#End Region
#Region "Constants"
	Private Const PURGE_RXABORT As Integer = &H2
	Private Const PURGE_RXCLEAR As Integer = &H8
	Private Const PURGE_TXABORT As Integer = &H1
	Private Const PURGE_TXCLEAR As Integer = &H4
	Private Const GENERIC_READ As Integer = &H80000000
	Private Const GENERIC_WRITE As Integer = &H40000000
	Private Const OPEN_EXISTING As Integer = 3
	Private Const INVALID_HANDLE_VALUE As Integer = -1
	Private Const IO_BUFFER_SIZE As Integer = 1024
	Private Const FILE_FLAG_OVERLAPPED As Int32 = &H40000000
	Private Const ERROR_IO_PENDING As Int32 = 997
	Private Const WAIT_OBJECT_0 As Int32 = 0
	Private Const ERROR_IO_INCOMPLETE As Int32 = 996
	Private Const WAIT_TIMEOUT As Int32 = &H102&
	Private Const INFINITE As Int32 = &HFFFFFFFF


#End Region

#Region "Win32API"
	'// Win32 API
	<DllImport("kernel32.dll")> Private Shared Function SetCommState(ByVal hCommDev As Int32, ByRef lpDCB As DCB) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function GetCommState(ByVal hCommDev As Int32, ByRef lpDCB As DCB) As Int32
	End Function
	<DllImport("kernel32.dll", CharSet:=CharSet.Auto)> Private Shared Function BuildCommDCB(<MarshalAs(UnmanagedType.LPStr)> ByVal lpDef As String, ByRef lpDCB As DCB) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function SetupComm(ByVal hFile As Int32, ByVal dwInQueue As Int32, ByVal dwOutQueue As Int32) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function SetCommTimeouts(ByVal hFile As Int32, ByRef lpCommTimeouts As COMMTIMEOUTS) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function GetCommTimeouts(ByVal hFile As Int32, ByRef lpCommTimeouts As COMMTIMEOUTS) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function ClearCommError(ByVal hFile As Int32, ByVal lpErrors As Int32, ByVal l As Int32) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function PurgeComm(ByVal hFile As Int32, ByVal dwFlags As Int32) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function EscapeCommFunction(ByVal hFile As Integer, ByVal ifunc As Long) As Boolean
	End Function
	<DllImport("kernel32.dll")> Private Shared Function WaitCommEvent(ByVal hFile As Integer, ByRef Mask As EventMasks, ByRef lpOverlap As OVERLAPPED) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function WriteFile(ByVal hFile As Integer, ByVal Buffer As Byte(), ByVal nNumberOfBytesToWrite As Integer, ByRef lpNumberOfBytesWritten As Integer, ByRef lpOverlapped As OVERLAPPED) As Integer
	End Function
	<DllImport("kernel32.dll")> Private Shared Function ReadFile(ByVal hFile As Integer, ByVal Buffer As Byte(), ByVal nNumberOfBytesToRead As Integer, ByRef lpNumberOfBytesRead As Integer, ByRef lpOverlapped As OVERLAPPED) As Integer
	End Function
	<DllImport("kernel32.dll")> Private Shared Function CreateFile(<MarshalAs(UnmanagedType.LPStr)> ByVal lpFileName As String, ByVal dwDesiredAccess As Integer, ByVal dwShareMode As Integer, ByVal lpSecurityAttributes As Integer, ByVal dwCreationDisposition As Integer, ByVal dwFlagsAndAttributes As Integer, ByVal hTemplateFile As Integer) As Integer
	End Function
	<DllImport("kernel32.dll")> Private Shared Function CloseHandle(ByVal hObject As Integer) As Integer
	End Function
	<DllImport("kernel32.dll")> Private Shared Function FormatMessage(ByVal dwFlags As Integer, ByVal lpSource As Integer, ByVal dwMessageId As Integer, ByVal dwLanguageId As Integer, <MarshalAs(UnmanagedType.LPStr)> ByVal lpBuffer As String, ByVal nSize As Integer, ByVal Arguments As Integer) As Integer
	End Function
	<DllImport("kernel32.dll")> Public Shared Function GetCommModemStatus(ByVal hFile As Int32, ByRef lpModemStatus As Int32) As Boolean
	End Function
	<DllImport("kernel32.dll")> Private Shared Function CreateEvent(ByVal lpEventAttributes As Int32, ByVal bManualReset As Int32, ByVal bInitialState As Int32, <MarshalAs(UnmanagedType.LPStr)> ByVal lpName As String) As Int32

	End Function
	<DllImport("kernel32.dll")> Private Shared Function GetLastError() As Int32


	End Function
	<DllImport("kernel32.dll")> Private Shared Function WaitForSingleObject(ByVal hHandle As Int32, ByVal dwMilliseconds As Int32) As Int32
	End Function
	<DllImport("kernel32.dll")> Private Shared Function GetOverlappedResult(ByVal hFile As Int32, ByRef lpOverlapped As OVERLAPPED, ByRef lpNumberOfBytesTransferred As Int32, ByVal bWait As Int32) As Int32

	End Function
	<DllImport("kernel32.dll")> Private Shared Function SetCommMask(ByVal hFile As Int32, ByVal lpEvtMask As Int32) As Int32
	End Function


	Private Declare Function FormatMessage Lib "kernel32" Alias _
	 "FormatMessageA" (ByVal dwFlags As Int32, ByVal lpSource As Int32, _
	 ByVal dwMessageId As Int32, ByVal dwLanguageId As Int32, _
	 ByVal lpBuffer As StringBuilder, ByVal nSize As Int32, ByVal Arguments As Int32) _
	 As Int32





#End Region
#Region "Events"
	Public Event DataReceived(ByVal Source As Rs232, ByVal DataBuffer() As Byte)
	Public Event TxCompleted(ByVal Source As Rs232)
	Public Event CommEvent(ByVal Source As Rs232, ByVal Mask As EventMasks)
#End Region

	Public Property Port() As Integer
		'===================================================
		'												?001 Corrado Cavalli All rights reserved
		'
		'		Description:		Comunication Port
		'		Created			:		21/09/2001 - 11:25:49
		'		Author				:		Corrado Cavalli
		'
		'												*Parameters Info*
		'
		'		Notes				:
		'===================================================
		Get
			Return miPort
		End Get
		Set(ByVal Value As Integer)
			miPort = Value
		End Set
	End Property
	Public Overridable Property Timeout() As Integer
		'===================================================
		'												?001 Corrado Cavalli All rights reserved
		'
		'		Description:		Comunication timeout in seconds
		'		Created			:		21/09/2001 - 11:26:50
		'		Author				:		Corrado Cavalli
		'
		'												*Parameters Info*
		'
		'		Notes				:
		'===================================================
		Get
			Return miTimeout
		End Get
		Set(ByVal Value As Integer)
			miTimeout = CInt(IIf(Value = 0, 500, Value))
			'// If Port is open updates it on the fly
			pSetTimeout()
		End Set
	End Property
	Public Property Parity() As DataParity
		'===================================================
		'												?001 Corrado Cavalli All rights reserved
		'
		'		Description:		Comunication parity
		'		Created			:		21/09/2001 - 11:27:15
		'		Author				:		Corrado Cavalli
		'
		'												*Parameters Info*
		'
		'		Notes				:
		'===================================================
		Get
			Return meParity
		End Get
		Set(ByVal Value As DataParity)
			meParity = Value
		End Set
	End Property
	Public Property StopBit() As DataStopBit
		'===================================================
		'												?001 Corrado Cavalli All rights reserved
		'
		'		Description:		Comunication StopBit
		'		Created			:		21/09/2001 - 11:27:37
		'		Author				:		Corrado Cavalli
		'
		'												*Parameters Info*
		'
		'		Notes				:
		'===================================================
		Get
			Return meStopBit
		End Get
		Set(ByVal Value As DataStopBit)
			meStopBit = Value
		End Set
	End Property
	Public Property BaudRate() As Integer
		'===================================================
		'												?001 Corrado Cavalli All rights reserved
		'
		'		Description:		Comunication BaudRate
		'		Created			:		21/09/2001 - 11:28:00
		'		Author				:		Corrado Cavalli
		'
		'												*Parameters Info*
		'
		'		Notes				:
		'===================================================
		Get
			Return miBaudRate
		End Get
		Set(ByVal Value As Integer)
			miBaudRate = Value
		End Set
	End Property
	Public Property DataBit() As Integer
		'===================================================
		'												?001 Corrado Cavalli All rights reserved
		'
		'		Description:		Comunication DataBit
		'		Created			:		21/09/2001 - 11:28:20
		'		Author				:		Corrado Cavalli
		'
		'												*Parameters Info*
		'
		'		Notes				:
		'===================================================
		Get

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲黄网站在线观看| 91久久精品一区二区三区| 蓝色福利精品导航| 日本免费新一区视频| 婷婷久久综合九色综合绿巨人| 亚洲一区二区三区四区不卡| 艳妇臀荡乳欲伦亚洲一区| 亚洲国产视频直播| 视频一区在线视频| 精品在线播放免费| 国产成人日日夜夜| 99国产精品一区| 欧美亚洲国产一区二区三区| 欧美日韩情趣电影| 日韩欧美综合一区| 另类专区欧美蜜桃臀第一页| 蜜臀av性久久久久蜜臀av麻豆| 久久国产精品色婷婷| 国产91高潮流白浆在线麻豆| av中文一区二区三区| 欧美在线观看18| 日韩欧美国产精品一区| 久久精品亚洲精品国产欧美kt∨| 国产日产欧美一区二区三区| 亚洲美腿欧美偷拍| 日韩精品久久久久久| 九九九久久久精品| av成人老司机| 3d动漫精品啪啪| 国产日产欧美一区| 亚洲福利电影网| 国产最新精品免费| 色综合天天狠狠| 日韩欧美在线一区二区三区| 国产精品久久久久一区二区三区共| 亚洲一区二区在线播放相泽 | 欧美在线观看视频一区二区三区 | 天堂久久一区二区三区| 韩国av一区二区| 91在线看国产| 欧美成人精品二区三区99精品| 国产精品你懂的在线| 亚瑟在线精品视频| 国产福利电影一区二区三区| 欧美日韩一区三区| 国产日韩欧美一区二区三区乱码 | 首页国产丝袜综合| 成人中文字幕合集| 欧美男男青年gay1069videost| 久久久久久久久久电影| 亚洲综合色区另类av| 国产乱人伦精品一区二区在线观看 | 国产99久久久久| 欧美色网站导航| 日本一区二区三区电影| 日韩av一区二区在线影视| av中文字幕一区| 精品国产自在久精品国产| 亚洲一区影音先锋| 高清不卡在线观看av| 91麻豆精品久久久久蜜臀| 亚洲欧美另类小说| 国产在线视频一区二区| 欧美日韩专区在线| 国产精品久久久久一区| 欧美日韩成人综合在线一区二区| 国产日产欧美一区二区三区| 美女mm1313爽爽久久久蜜臀| 欧洲精品中文字幕| 中文字幕在线不卡国产视频| 韩国成人精品a∨在线观看| 欧美日韩日日摸| 亚洲乱码国产乱码精品精小说| 国产乱码精品一品二品| 日韩欧美国产精品| 亚洲v精品v日韩v欧美v专区| 91免费版在线看| 欧美国产一区二区在线观看| 久久99国产精品麻豆| 欧美精品久久99久久在免费线| 亚洲精品成人少妇| 97久久精品人人澡人人爽| 国产日韩精品一区二区浪潮av| 另类人妖一区二区av| 3atv在线一区二区三区| 依依成人综合视频| 色中色一区二区| 专区另类欧美日韩| 波多野结衣在线一区| 亚洲国产精品成人综合| 国产传媒久久文化传媒| 国产丝袜在线精品| 国产一区二区三区av电影| 精品三级在线观看| 激情欧美一区二区三区在线观看| 日韩三级视频中文字幕| 老司机精品视频在线| 日韩欧美高清在线| 久久精品国产精品亚洲综合| 日韩免费性生活视频播放| 麻豆视频观看网址久久| 欧美变态tickling挠脚心| 免费在线欧美视频| 日韩美女主播在线视频一区二区三区| 男男gaygay亚洲| 精品国产3级a| 成人性生交大片免费看在线播放| 国产精品免费视频观看| 91女厕偷拍女厕偷拍高清| 亚洲美女精品一区| 欧美三级欧美一级| 日本欧美大码aⅴ在线播放| 欧美成人性战久久| 国产乱子伦视频一区二区三区| 国产日韩欧美不卡在线| 91亚洲精品一区二区乱码| 亚洲综合视频在线| 日韩一区二区三区视频| 国产在线一区观看| 中文字幕一区在线观看视频| 一本大道久久a久久综合婷婷| 亚洲午夜电影在线观看| 日韩女优毛片在线| 国产成人三级在线观看| 亚洲人成亚洲人成在线观看图片| 欧美色图在线观看| 久草这里只有精品视频| 国产精品入口麻豆九色| 在线观看日韩国产| 久久精品国内一区二区三区| 国产亚洲欧美一级| 国产人久久人人人人爽| 日本韩国欧美在线| 免费人成网站在线观看欧美高清| 国产欧美一区视频| 欧美在线free| 黄色成人免费在线| 亚洲人成小说网站色在线| 91麻豆精品国产91久久久久久久久| 国产毛片精品视频| 亚洲九九爱视频| 精品国产乱码久久久久久影片| 成人自拍视频在线| 日韩电影免费一区| 国产精品国产a| 在线观看国产日韩| 国产精品正在播放| 亚洲国产精品久久久久婷婷884| 精品999在线播放| 91视视频在线观看入口直接观看www | 亚洲免费观看在线视频| 日韩一区二区免费在线电影 | 日韩一区中文字幕| 欧美一级欧美三级| 99精品1区2区| 国产麻豆91精品| 日韩国产高清在线| 国产精品白丝在线| 精品盗摄一区二区三区| 欧美亚州韩日在线看免费版国语版| 国产一区不卡在线| 亚洲1区2区3区视频| 中文字幕一区二区三区在线不卡 | 奇米影视在线99精品| 亚洲欧美另类小说| 国产三级欧美三级| 91精品在线观看入口| 色哟哟欧美精品| 国产成人在线观看| 久久成人久久鬼色| 亚洲成人精品在线观看| 国产精品美女视频| 精品欧美乱码久久久久久1区2区| 在线观看免费成人| 99久久99久久久精品齐齐| 国产一区高清在线| 麻豆久久久久久| 五月天激情小说综合| 亚洲激情六月丁香| 中文字幕中文字幕在线一区| 精品国产麻豆免费人成网站| 欧美视频三区在线播放| 色婷婷综合久久久中文字幕| 国产成人综合网站| 国产在线国偷精品产拍免费yy| 午夜亚洲国产au精品一区二区| 亚洲精品视频自拍| 国产精品福利影院| 国产欧美精品一区| 国产拍揄自揄精品视频麻豆| 亚洲精品在线网站| 欧美成人激情免费网| 日韩视频中午一区| 日韩欧美亚洲国产另类| 91精品福利在线一区二区三区 | 精品国产乱码久久久久久久 | 亚洲与欧洲av电影| 亚洲精选视频免费看| 亚洲精品国产a| 成人av网站免费观看|