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

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

?? dcb.cs

?? 藍牙通訊
?? CS
字號:
//==========================================================================================
//
//		namespace OpenNETCF.IO.Serial.DCB
//		Copyright (c) 2003, OpenNETCF.org
//
//		This library is free software; you can redistribute it and/or modify it under 
//		the terms of the OpenNETCF.org Shared Source License.
//
//		This library is distributed in the hope that it will be useful, but 
//		WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
//		FITNESS FOR A PARTICULAR PURPOSE. See the OpenNETCF.org Shared Source License 
//		for more details.
//
//		You should have received a copy of the OpenNETCF.org Shared Source License 
//		along with this library; if not, email licensing@opennetcf.org to request a copy.
//
//		If you wish to contact the OpenNETCF Advisory Board to discuss licensing, please 
//		email licensing@opennetcf.org.
//
//		For general enquiries, email enquiries@opennetcf.org or visit our website at:
//		http://www.opennetcf.org
//
//==========================================================================================

using System;
using System.Text;
using System.IO;
using System.Runtime.InteropServices;
using System.Collections.Specialized;

namespace OpenNETCF.IO.Serial
{

	//
	// The Win32 DCB structure is implemented below in a C# class.
	//

	[StructLayout(LayoutKind.Sequential)]
	internal class DCB 
	{
		private  UInt32 DCBlength;
		public   UInt32 BaudRate;
		BitVector32 Control;
		internal UInt16 wReserved;
		public   UInt16 XonLim;
		public   UInt16 XoffLim;
		public   byte   ByteSize;
		public   byte   Parity;
		public   byte   StopBits;
		public   sbyte  XonChar;
		public   sbyte  XoffChar;
		public   sbyte  ErrorChar;
		public   sbyte  EofChar;
		public   sbyte  EvtChar;
		internal UInt16 wReserved1;
		
		private readonly BitVector32.Section sect1;
		private readonly BitVector32.Section DTRsect;
		private readonly BitVector32.Section sect2;
		private readonly BitVector32.Section RTSsect;

		public DCB()
		{
			//
			// Initialize the length of the structure. Marshal.SizeOf returns
			// the size of the unmanaged object (basically the object that
			// gets marshalled).
			//
			this.DCBlength = (uint)Marshal.SizeOf(this);

			// initialize BitVector32
			Control=new BitVector32(0);

			// of the following 4 sections only 2 are needed
			sect1=BitVector32.CreateSection(0x0f);
			DTRsect=BitVector32.CreateSection(3,sect1); // this is where the DTR setting is stored
			sect2=BitVector32.CreateSection(0x3f,DTRsect);
			RTSsect=BitVector32.CreateSection(3,sect2);	// this is where the RTS setting is stored
		}

		

		//
		// We need to have to define reserved fields in the DCB class definition
		// to preserve the size of the 
		// underlying structure to match the Win32 structure when it is 
		// marshaled. Use these fields to suppress compiler warnings.
		//
		internal void _SuppressCompilerWarnings()
		{
		 	wReserved +=0;
			wReserved1 +=0;
		}
        
		//
		// Enumeration for fDtrControl bit field. 
		//
		public enum DtrControlFlags
		{
			Disable = 0,
			Enable =1 ,
			Handshake = 2
		}

		//
		// Enumeration for fRtsControl bit field. 
		//
		public enum RtsControlFlags 
		{
			Disable = 0,
			Enable = 1,
			Handshake = 2,
			Toggle = 3
		}
		
		// Helper constants for manipulating the bit fields.
		// these are defined as an enum in order to preserve memory
		[Flags] 
		enum ctrlBit {
			fBinaryMask             = 0x001,
			fParityMask             = 0x0002,
			fOutxCtsFlowMask        = 0x0004,
		    fOutxDsrFlowMask        = 0x0008,
			fDtrControlMask         = 0x0030,
			fDsrSensitivityMask     = 0x0040,
			fTXContinueOnXoffMask   = 0x0080,
			fOutXMask               = 0x0100,
			fInXMask                = 0x0200,
			fErrorCharMask          = 0x0400,
			fNullMask               = 0x0800,
			fRtsControlMask         = 0x3000,
			fAbortOnErrorMask       = 0x4000
		}

		// get and set of bool works with the underlying BitVector32
		// by using a mask for each bit field we can let the compiler
		// and JIT do the work
		//

		public bool fBinary 
		{
			get { return (Control[(int)ctrlBit.fBinaryMask]); }
			set { Control[(int)ctrlBit.fBinaryMask]=value; }
		}
		public bool fParity 
		{
			get { return (Control[(int)ctrlBit.fParityMask]); }
			set { Control[(int)ctrlBit.fParityMask]=value; }
		}
		public bool fOutxCtsFlow 
		{
			get { return (Control[(int)ctrlBit.fOutxCtsFlowMask]); }
			set { Control[(int)ctrlBit.fOutxCtsFlowMask] = value; }
		}
		public bool fOutxDsrFlow 
		{
			get { return (Control[(int)ctrlBit.fOutxDsrFlowMask]); }
			set { Control[(int)ctrlBit.fOutxDsrFlowMask]=value; }
		}
		
		// we have to use a segment because the width of the underlying information
		// is wider than just one bit
		public DtrControlFlags fDtrControl 
		{
			get {return (DtrControlFlags)Control[DTRsect]; }
			set { Control[DTRsect]=(int)value; }
		}
		
		public bool fDsrSensitivity 
		{
			get { return Control[(int)ctrlBit.fDsrSensitivityMask];}
			set { Control[(int)ctrlBit.fDsrSensitivityMask] = value; }
		}
		public bool fTXContinueOnXoff 
		{
			get { return Control[(int)ctrlBit.fTXContinueOnXoffMask]; }
			set { Control[(int)ctrlBit.fTXContinueOnXoffMask]=value; }
		}
		public bool fOutX 
		{
			get { return Control [(int)ctrlBit.fOutXMask]; }
			set { Control[(int)ctrlBit.fOutXMask]=value; }
		}
		public bool fInX 
		{
			get { return Control[(int)ctrlBit.fInXMask]; }
			set { Control[(int)ctrlBit.fInXMask]=value; }
		}
		public bool fErrorChar 
		{
			get { return Control[(int)ctrlBit.fErrorCharMask]; }
			set { Control[(int)ctrlBit.fErrorCharMask]=value; }
		}
		public bool fNull 
		{
			get { return Control[(int)ctrlBit.fNullMask]; }
			set { Control[(int)ctrlBit.fNullMask]=value; }
		}

		// we have to use a segment because the width of the underlying information
		// is wider than just one bit
		public RtsControlFlags fRtsControl 
		{
			get { return (RtsControlFlags)Control[RTSsect]; }
			set { Control[RTSsect]=(int)value; }
		}
		
		public bool fAbortOnError 
		{
			get { return Control[(int)ctrlBit.fAbortOnErrorMask]; }
			set { Control[(int)ctrlBit.fAbortOnErrorMask]=value; }
		}
        
		//
		// Method to dump the DCB to take a look and help debug issues.
		//
		public override String ToString() 
		{
			StringBuilder sb = new StringBuilder();

			sb.Append("DCB:\r\n");
			sb.AppendFormat(null, "  BaudRate:     {0}\r\n", BaudRate);
			sb.AppendFormat(null, "  Control:      0x{0:x}\r\n", Control.Data);
			sb.AppendFormat(null, "    fBinary:           {0}\r\n", fBinary);
			sb.AppendFormat(null, "    fParity:           {0}\r\n", fParity);
			sb.AppendFormat(null, "    fOutxCtsFlow:      {0}\r\n", fOutxCtsFlow);
			sb.AppendFormat(null, "    fOutxDsrFlow:      {0}\r\n", fOutxDsrFlow);
			sb.AppendFormat(null, "    fDtrControl:       {0}\r\n", fDtrControl);
			sb.AppendFormat(null, "    fDsrSensitivity:   {0}\r\n", fDsrSensitivity);
			sb.AppendFormat(null, "    fTXContinueOnXoff: {0}\r\n", fTXContinueOnXoff);
			sb.AppendFormat(null, "    fOutX:             {0}\r\n", fOutX);
			sb.AppendFormat(null, "    fInX:              {0}\r\n", fInX);
			sb.AppendFormat(null, "    fNull:             {0}\r\n", fNull);
			sb.AppendFormat(null, "    fRtsControl:       {0}\r\n", fRtsControl);
			sb.AppendFormat(null, "    fAbortOnError:     {0}\r\n", fAbortOnError);
			sb.AppendFormat(null, "  XonLim:       {0}\r\n", XonLim);
			sb.AppendFormat(null, "  XoffLim:      {0}\r\n", XoffLim);
			sb.AppendFormat(null, "  ByteSize:     {0}\r\n", ByteSize);
			sb.AppendFormat(null, "  Parity:       {0}\r\n", Parity);
			sb.AppendFormat(null, "  StopBits:     {0}\r\n", StopBits);
			sb.AppendFormat(null, "  XonChar:      {0}\r\n", XonChar);
			sb.AppendFormat(null, "  XoffChar:     {0}\r\n", XoffChar);
			sb.AppendFormat(null, "  ErrorChar:    {0}\r\n", ErrorChar);
			sb.AppendFormat(null, "  EofChar:      {0}\r\n", EofChar);
			sb.AppendFormat(null, "  EvtChar:      {0}\r\n", EvtChar);

			return sb.ToString();
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩成人在线| a亚洲天堂av| 亚洲成人中文在线| 一区二区三区日韩在线观看| 国产精品网站在线播放| 国产精品免费av| 中文字幕综合网| 亚洲日本在线看| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品乱人伦中文| 国产精品国产成人国产三级| 亚洲品质自拍视频| 亚洲一区欧美一区| 日韩和欧美的一区| 激情国产一区二区| 懂色一区二区三区免费观看| 成人国产亚洲欧美成人综合网| 91视频观看视频| 欧美日免费三级在线| 欧美一卡二卡三卡| 国产午夜精品一区二区三区嫩草| 久久美女艺术照精彩视频福利播放 | 国产性天天综合网| 综合色中文字幕| 日韩中文字幕区一区有砖一区| 日韩高清不卡在线| 粉嫩aⅴ一区二区三区四区五区 | 欧美亚洲国产一卡| 欧美一区二区三区视频免费播放| 日韩女优制服丝袜电影| 国产女主播视频一区二区| 日韩伦理电影网| 免费高清在线视频一区·| 国产成a人亚洲| 欧美在线free| 久久久久99精品一区| 一个色综合av| 国产精品一区二区在线观看网站 | 日韩av一区二区三区四区| 国产在线视频不卡二| 91麻豆123| 精品人伦一区二区色婷婷| 国产精品久久久久久久久免费樱桃 | 制服丝袜中文字幕亚洲| 国产欧美久久久精品影院| 亚洲最新在线观看| 风间由美性色一区二区三区| 欧美三级韩国三级日本一级| 国产精品色噜噜| 精品亚洲国产成人av制服丝袜| 在线区一区二视频| 国产精品视频你懂的| 美女国产一区二区| 欧美日韩在线播放一区| 国产精品麻豆久久久| 国内精品国产成人国产三级粉色 | 成人免费一区二区三区在线观看| 五月综合激情婷婷六月色窝| 成人黄色一级视频| 日韩欧美国产不卡| 日韩精品成人一区二区三区| 91无套直看片红桃| 中文字幕亚洲一区二区va在线| 狠狠色丁香久久婷婷综合丁香| 欧美亚洲综合久久| 日韩伦理av电影| 91丝袜呻吟高潮美腿白嫩在线观看| 久久综合狠狠综合久久激情| 青青草原综合久久大伊人精品 | 国产欧美日韩另类一区| 麻豆精品国产传媒mv男同| 777色狠狠一区二区三区| 一区二区在线免费观看| 一本一本久久a久久精品综合麻豆| 久久久久国产精品免费免费搜索| 久色婷婷小香蕉久久| 欧美一二三区精品| 九九热在线视频观看这里只有精品| 制服丝袜成人动漫| 奇米综合一区二区三区精品视频| 欧美疯狂性受xxxxx喷水图片| 亚洲一区二区视频在线观看| 欧美亚洲一区二区在线| 亚洲在线成人精品| 欧美人牲a欧美精品| 日韩成人免费在线| 欧美电影免费观看高清完整版在线| 日韩av网站免费在线| 亚洲精品高清视频在线观看| 久久不见久久见免费视频7| 欧美tickling挠脚心丨vk| 激情图片小说一区| 欧美激情在线看| 一本一道久久a久久精品综合蜜臀| 亚洲日本va午夜在线电影| 日本乱人伦一区| 蜜桃av一区二区| 国产精品天干天干在观线| 色天使色偷偷av一区二区| 午夜精品久久久久久久蜜桃app| 日韩欧美亚洲一区二区| 国产成人精品免费视频网站| 亚洲欧洲综合另类| 欧美一区二区三区公司| 高清免费成人av| 性感美女久久精品| 久久久不卡影院| 91久久一区二区| 蜜桃视频在线观看一区| 国产精品亲子伦对白| 欧美老女人在线| 国产成人精品一区二区三区四区| 日韩一区在线播放| 日韩欧美一区二区视频| 成人a级免费电影| 日韩综合小视频| 国产精品免费久久| 欧美成人r级一区二区三区| 成人成人成人在线视频| 秋霞av亚洲一区二区三| 亚洲图片你懂的| 亚洲精品一区二区三区影院| 在线观看日韩一区| 国产成人精品免费在线| 日本亚洲最大的色成网站www| 亚洲欧洲国产日韩| 欧美不卡在线视频| 在线观看欧美黄色| 99精品国产99久久久久久白柏| 免费看欧美女人艹b| 亚洲一区二区三区四区在线免费观看| 精品国产精品一区二区夜夜嗨| 欧美综合一区二区三区| 成人激情小说网站| 国产在线精品国自产拍免费| 亚洲福利一区二区三区| 亚洲精品少妇30p| 成人免费在线播放视频| 久久久亚洲精品一区二区三区| 精品视频在线免费看| 91色.com| 91啪亚洲精品| 91麻豆蜜桃一区二区三区| 国产精品1024| 国产91丝袜在线播放| 韩国欧美国产1区| 激情五月激情综合网| 久久精品久久99精品久久| 日韩av一区二区在线影视| 亚洲成人激情自拍| 日韩精品免费专区| 日韩国产欧美一区二区三区| 日日夜夜免费精品| 日韩av一级电影| 久久99这里只有精品| 久久99在线观看| 国产精品18久久久久久vr| 狠狠网亚洲精品| 高清不卡在线观看av| 成人av在线网站| 色综合久久天天| 精品视频在线免费| 欧美大尺度电影在线| 精品国产乱码久久久久久夜甘婷婷| 日韩视频免费观看高清在线视频| 欧美一二区视频| 久久久国际精品| 亚洲欧美综合色| 香蕉加勒比综合久久| 免费成人在线视频观看| 国产电影精品久久禁18| 成人sese在线| 欧美日韩激情一区| 欧美xxxxx裸体时装秀| 国产亚洲综合性久久久影院| 国产精品私房写真福利视频| 亚洲人123区| 蜜臀av一级做a爰片久久| 国产精品亚洲视频| 一本久道中文字幕精品亚洲嫩| 欧美日韩成人激情| 91视频在线观看| 亚洲va韩国va欧美va精品| 在线免费一区三区| 国产高清久久久久| 91麻豆福利精品推荐| 在线不卡免费欧美| 国产清纯在线一区二区www| 亚洲精品一二三| 看片的网站亚洲| 91麻豆视频网站| 精品国产免费一区二区三区四区 | 天堂成人国产精品一区| 久久99精品一区二区三区| 91视频在线观看免费| 欧美xxxxxxxxx| 亚洲无线码一区二区三区| 国产成人自拍网| 制服丝袜成人动漫| 日韩美女啊v在线免费观看|