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

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

?? crs232.vb

?? rs232通訊VB.NET小程序
?? VB
字號:
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Threading
Imports System.ComponentModel
Imports System.IO



#Region "RS232"
Public Class Rs232 : Implements IDisposable
   '===================================================
   '
   '	Module				:	Rs232
   '	Description		:	Class for handling RS232 comunication with VB.Net
   '	Created				:	10/08/2001 - 8:45:25
   '	Author				:	Corrado Cavalli (corrado@mvps.org)
    'WebSite				:	www.codeworks.it/net/index.htm
   '
   '	Notes					:	
   '-----------------------------------------------------------------------------------------------
	'																	*	Revisions *
	'
	'	02/12/2000		First internal alpha version built on framework beta1
	'
   '	1st Public release Beta2 (10/08/2001)
   '
   '	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).
   '	5.Compiled with VS.Net final

   '	Rev.2	(01.03.2002)
   '	Added Async support
   '
   '  Rev.3	(07.04.2002)
   '	Minor bugs fixed
   '
   '  Rev.3 (05/05/2002)
   '  Fixed BuildCommmDCB problem
   '
   '  Rev.4 (24/05/2002)
   '  Fixed problem with ASCII Encoding truncating 8th bit
   '
   '  Rev.5 (27/05/2002)
   '  Added IDisposable / Finalize implementation
   '
   '  Rev.6 (14/03/2003)
   '  Fixed problem on DCB fields Initialization
   '
   '  Rev.7 (26/03/2003)
   '  Added XON/XOFF support
   '
   '  Rev.8 (12/07/2003)
	'  Added support to COM port number greater than 4
	'
	'	Rev.9 (15/07/2003)
	'	Added CommEvent to detect incoming chars/events
	'	Updated both Tx/Rx method from Non-Ovelapped to Overlapped mode
	'	Removed unused Async methods and other stuff.
	'
	'	Rev.10 (21/07/2003)
    '    Fixed incorrect character handling when using EnableEvents()
   '
    '   Rev.11 (12/08/2003)
    '   Fixed some bugs signaled by users
   ' 
	'	Rev.12 (01/09/2003)
	'	Removed AutoReset of internal buffers and added PurgeBuffer() method
	'	
	'	Rev.13 (02/09/2003)
	'	Removed GetLastErrorUse in favour of Win32Exception()
	'
	'	Rev.14 (14/09/2003)
	'	Added IsPortAvailable() function
	'  Revised some API declaration
    '  Fixed problem with Win98/Me OS
   '
    '   Rev.15 (24/09/2003)
    '  	Fixed bug introduced on Rev.14
   '
    '   Rev.16 (12/10/2003)
    '	Added SetBreak/ClearBreak() methods
   '
    '   Rev.17 (02/11/2003)
    '   Fixed field on COMMCONFIG
	'
	'   Rev.18 (03/03/2004)
	'   Fixed bug: Testing mhRS for <>0 is not correct
	'
	'   Rev.19 (08/04/2004)
	'   Fixed bug: Fixed bug on DTR property
	'
	'   Rev.20 (12/07/2004)
	'   CommEvent is no more raised on a secondary thread
    '	pEventsWatcher now uses a background thread
	'
	'   Rev.21 (24/10/2004)
	'   EscapeCommFunction declaration fixed
	'	Pariti enum fixed to Parity
	'
	'	Rev. 22 (05/03/2005)
    '	Fixed memory leak problem causing program closing
    '	without any message on some systems.
    '	Thanks to Ralf Gedrat for testing this scenario
    '
    '   Rev.23 (05/04/2005)
    '   Fixed bug DisableEvents not working bug 
    '
    '   Rev.24 (20/04/2005) 
    '   Fixed memory leak on Read method
    '   Added InBufferCount property
    '   IsPortAvailable method is now shared
    '   Thanks to Jean-Pierre ZANIER for the feedback

    '===================================================  
   '// Class Members		
	Private mhRS As IntPtr = New IntPtr(0)	  '// 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 moThreadTx As Thread
	Private moThreadRx As Thread
	Private moEvents As Thread
   Private miTmpBytes2Read As Int32
   Private meMask As EventMasks
   Private mbDisposed As Boolean
	Private mbUseXonXoff As Boolean
	Private mbEnableEvents As Boolean
	Private miBufThreshold As Int32 = 1
	Private muOvlE As OVERLAPPED
	Private muOvlW As OVERLAPPED
	Private muOvlR As OVERLAPPED
	Private mHE As GCHandle
	Private mHR As GCHandle
	Private mHW As GCHandle
	'----------------------------------------------------------------------------------------

#Region "Enums"
	'// Parity Data
	Public Enum DataParity
		Parity_None = 0
        Parity_Odd
		Parity_Even
		Parity_Mark
	End Enum
	'// StopBit Data
	Public Enum DataStopBit
		StopBit_1 = 1
		StopBit_2
	End Enum
	<Flags()> Public 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
		CarrierDetect = &H20
		Break = &H40
		StatusError = &H80
		Ring = &H100
	End Enum

#End Region
#Region "Structures"
	<StructLayout(LayoutKind.Sequential, Pack:=1)> Private Structure DCB
		Public DCBlength As Int32
		Public BaudRate As Int32
		Public Bits1 As Int32
		Public wReserved As Int16
		Public XonLim As Int16
		Public XoffLim As Int16
		Public ByteSize As Byte
		Public Parity As Byte
		Public StopBits As Byte
		Public XonChar As Char
		Public XoffChar As Char
		Public ErrorChar As Char
		Public EofChar As Char
		Public EvtChar As Char
		Public 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:=8)> Private Structure COMMCONFIG
        Public dwSize As Int32
        Public wVersion As Int16
        Public wReserved As Int16
        Public dcbx As DCB
        Public dwProviderSubType As Int32
        Public dwProviderOffset As Int32
        Public dwProviderSize As Int32
        Public wcProviderData As Int16
    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 IntPtr
    End Structure
    <StructLayout(LayoutKind.Sequential, Pack:=1)> Private Structure COMSTAT
        Dim fBitFields As Int32
        Dim cbInQue As Int32
        Dim cbOutQue 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", SetlastError:=True)> Private Shared Function SetCommState(ByVal hCommDev As IntPtr, ByRef lpDCB As DCB) As Int32
   End Function
   <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function GetCommState(ByVal hCommDev As IntPtr, ByRef lpDCB As DCB) As Int32
   End Function
   <DllImport("kernel32.dll", SetlastError:=True, CharSet:=CharSet.Auto)> Private Shared Function BuildCommDCB(ByVal lpDef As String, ByRef lpDCB As DCB) As Int32
   End Function
   <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function SetupComm(ByVal hFile As IntPtr, ByVal dwInQueue As Int32, ByVal dwOutQueue As Int32) As Int32
   End Function
   <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function SetCommTimeouts(ByVal hFile As IntPtr, ByRef lpCommTimeouts As COMMTIMEOUTS) As Int32
   End Function
   <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function GetCommTimeouts(ByVal hFile As IntPtr, ByRef lpCommTimeouts As COMMTIMEOUTS) As Int32
   End Function
   <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function ClearCommError(ByVal hFile As IntPtr, ByRef lpErrors As Int32, ByRef lpComStat As COMSTAT) As Int32
   End Function
   <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function PurgeComm(ByVal hFile As IntPtr, ByVal dwFlags As Int32) As Int32
   End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function EscapeCommFunction(ByVal hFile As IntPtr, ByVal ifunc As Int32) As Boolean
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function WaitCommEvent(ByVal hFile As IntPtr, ByRef Mask As EventMasks, ByRef lpOverlap As OVERLAPPED) As Int32
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function WriteFile(ByVal hFile As IntPtr, ByVal Buffer As Byte(), ByVal nNumberOfBytesToWrite As Integer, ByRef lpNumberOfBytesWritten As Integer, ByRef lpOverlapped As OVERLAPPED) As Integer
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function ReadFile(ByVal hFile As IntPtr, <Out()> ByVal Buffer As Byte(), ByVal nNumberOfBytesToRead As Integer, ByRef lpNumberOfBytesRead As Integer, ByRef lpOverlapped As OVERLAPPED) As Integer
    End Function
    <DllImport("kernel32.dll", SetlastError:=True, CharSet:=CharSet.Auto)> Private Shared Function CreateFile(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 IntPtr
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function CloseHandle(ByVal hObject As IntPtr) As Boolean
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Public Shared Function GetCommModemStatus(ByVal hFile As IntPtr, ByRef lpModemStatus As Int32) As Boolean
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function SetEvent(ByVal hEvent As IntPtr) As Boolean
    End Function
    <DllImport("kernel32.dll", SetlastError:=True, CharSet:=CharSet.Auto)> Private Shared Function CreateEvent(ByVal lpEventAttributes As IntPtr, ByVal bManualReset As Int32, ByVal bInitialState As Int32, ByVal lpName As String) As IntPtr
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function WaitForSingleObject(ByVal hHandle As IntPtr, ByVal dwMilliseconds As Int32) As Int32
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function GetOverlappedResult(ByVal hFile As IntPtr, ByRef lpOverlapped As OVERLAPPED, ByRef lpNumberOfBytesTransferred As Int32, ByVal bWait As Int32) As Int32
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function SetCommMask(ByVal hFile As IntPtr, ByVal lpEvtMask As Int32) As Int32
    End Function
    <DllImport("kernel32.dll", SetlastError:=True, CharSet:=CharSet.Auto)> Private Shared Function GetDefaultCommConfig(ByVal lpszName As String, ByRef lpCC As COMMCONFIG, ByRef lpdwSize As Integer) As Boolean
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function SetCommBreak(ByVal hFile As IntPtr) As Boolean
    End Function
    <DllImport("kernel32.dll", SetlastError:=True)> Private Shared Function ClearCommBreak(ByVal hFile As IntPtr) As Boolean
    End Function


#End Region
#Region "Events"
	Public Event CommEvent As CommEventHandler
#End Region
#Region "Delegates"
	Public Delegate Sub CommEventHandler(ByVal source As Rs232, ByVal Mask As EventMasks)
#End Region

	Public Property Port() As Integer
		'===================================================
		'
		'		Description	:		Comunication Port
		'		Created			:		21/09/2001 - 11:25:49
		'
		'												*Parameters Info*
		'
		'		Notes				:
		'===================================================
		Get
			Return miPort
		End Get
		Set(ByVal Value As Integer)
			miPort = Value
		End Set
	End Property
	Public Sub PurgeBuffer(ByVal Mode As PurgeBuffers)
		'===================================================
		'												

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久久久夜| 国产在线视频不卡二| 久久久噜噜噜久久人人看 | 日韩欧美国产高清| 狠狠色丁香婷婷综合| 亚洲国产精品麻豆| 亚洲精品国久久99热| 中文字幕在线视频一区| 欧美浪妇xxxx高跟鞋交| 免费在线视频一区| 日韩精品免费视频人成| 午夜av电影一区| 亚洲v日本v欧美v久久精品| 亚洲六月丁香色婷婷综合久久 | 成人久久18免费网站麻豆 | 亚洲国产美女搞黄色| 精品精品国产高清a毛片牛牛| 国产精品伊人色| 成人国产精品免费| 成人黄色av电影| 日本韩国欧美在线| 91精品欧美一区二区三区综合在 | 中文字幕日韩欧美一区二区三区| 日韩女优电影在线观看| 欧美日韩一级黄| 精品少妇一区二区三区免费观看| 日韩精品在线看片z| 中文字幕亚洲电影| 亚洲图片欧美综合| 国模冰冰炮一区二区| 色婷婷久久久综合中文字幕 | 国产夫妻精品视频| 一本久道中文字幕精品亚洲嫩| 色婷婷激情一区二区三区| 欧美一区二区三区在线观看视频| 日韩丝袜美女视频| 欧美国产成人精品| 亚洲午夜电影在线| 国产一区二区在线电影| 欧美艳星brazzers| 国产精品美女久久久久高潮| 一级日本不卡的影视| 国产福利91精品一区| 欧美一区二区国产| 亚洲免费在线观看| 午夜精彩视频在线观看不卡| 不卡的电影网站| 久久久久国产精品麻豆| 美女一区二区久久| 欧美群妇大交群中文字幕| 亚洲色图制服丝袜| 懂色av中文一区二区三区| 精品国产乱码久久久久久蜜臀 | 亚洲精品第1页| 成人免费黄色在线| 国产精品毛片a∨一区二区三区| 美女一区二区视频| 91精品国产乱| 国产一区二区在线视频| 久久久综合激的五月天| 国产一二三精品| 国产亚洲va综合人人澡精品| 国产美女久久久久| 国产精品免费久久| 色94色欧美sute亚洲线路一ni| 国产精品丝袜黑色高跟| 欧美日韩一卡二卡三卡 | 日韩欧美电影一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美大片国产精品| av电影在线观看一区| 久久久综合视频| 成人黄色av网站在线| 亚洲第一狼人社区| 国产视频911| 欧美一区三区二区| 成人三级伦理片| 日本vs亚洲vs韩国一区三区| 久久久久国产免费免费| 在线观看区一区二| 精品亚洲欧美一区| 久久蜜桃香蕉精品一区二区三区| 91蜜桃免费观看视频| 免费看日韩精品| 一区二区三区四区国产精品| 欧美一区二区三区在| 91女神在线视频| 成人深夜福利app| 国产在线精品一区二区夜色| 亚洲美女免费在线| 国产精品免费观看视频| 欧美日韩国产bt| 国产福利一区二区三区视频在线| 国产精品色在线| 久久久亚洲高清| 精品久久国产老人久久综合| 欧美日本一区二区三区| 97久久精品人人做人人爽| 成人精品一区二区三区中文字幕| 奇米在线7777在线精品| 男女男精品网站| 美女脱光内衣内裤视频久久网站| 自拍偷拍欧美精品| 亚洲天堂av一区| 亚洲一区二区欧美| 亚洲成精国产精品女| 麻豆精品新av中文字幕| 久久超碰97人人做人人爱| 免费看欧美女人艹b| 精品一区二区免费| 国产99一区视频免费| 波多野结衣中文一区| 日本韩国一区二区三区视频| 成人性生交大片免费看在线播放 | 天天亚洲美女在线视频| 午夜av区久久| 国产凹凸在线观看一区二区| aaa国产一区| 欧美一卡2卡三卡4卡5免费| 亚洲精品在线观看网站| 亚洲激情图片一区| 性久久久久久久| 日韩av中文字幕一区二区| 国产精品一级黄| 欧美美女视频在线观看| 久久久久久免费毛片精品| 一区二区三区在线观看视频| 蜜臀av性久久久久蜜臀av麻豆| av电影在线观看不卡| 日韩一区二区精品| 亚洲精品视频在线观看网站| 国产成人精品在线看| 麻豆精品精品国产自在97香蕉| 99精品国产99久久久久久白柏| 日韩一区二区三区高清免费看看| 国产精品理伦片| 麻豆传媒一区二区三区| 欧美体内she精视频| 久久精品人人爽人人爽| 久久99精品国产.久久久久 | 欧美日韩综合在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 蜜臀av性久久久久蜜臀aⅴ | 7777精品伊人久久久大香线蕉| 中国色在线观看另类| 国产精品一区在线观看你懂的| 欧美一级日韩免费不卡| 天天综合网 天天综合色| 3atv一区二区三区| 亚洲综合一区在线| 欧美日韩色综合| 免费人成在线不卡| 欧美高清hd18日本| 麻豆精品国产传媒mv男同| 精品国产乱码久久久久久蜜臀| 精品在线亚洲视频| 国产欧美精品一区| 91小视频在线免费看| 亚洲欧美综合另类在线卡通| 色婷婷国产精品综合在线观看| 亚洲激情五月婷婷| 精品福利av导航| 99精品国产99久久久久久白柏| 亚洲自拍偷拍图区| 日韩久久久精品| 色94色欧美sute亚洲线路一久| 免费亚洲电影在线| 欧美视频在线播放| 国产乱国产乱300精品| 日本免费新一区视频| 亚洲欧美一区二区视频| 亚洲精品一区二区三区精华液 | 欧美又粗又大又爽| 国产999精品久久久久久绿帽| 日韩专区中文字幕一区二区| 亚洲美女淫视频| 国产精品电影一区二区| 国产色综合久久| 亚洲国产高清不卡| 中文欧美字幕免费| 国产精品久久99| 亚洲精品国产第一综合99久久 | 不卡av在线网| 91麻豆免费视频| 欧美乱妇15p| 久久久久久99久久久精品网站| 日韩亚洲欧美在线| 久久久久久久久久久电影| 国产午夜亚洲精品不卡| 国产精品私房写真福利视频| 18成人在线观看| 亚洲午夜在线观看视频在线| 日韩av中文字幕一区二区三区| 亚洲一区二区高清| 麻豆国产欧美日韩综合精品二区| 国产在线观看免费一区| 91福利国产成人精品照片| 久久久久久久久岛国免费| 91丝袜美腿高跟国产极品老师 | 日韩欧美在线网站|