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

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

?? p.cs

?? 云臺(tái)常用的協(xié)議
?? CS
字號(hào):
using System;
using System.Collections;

namespace Pelco
{
	/// <summary>
	/// dot.NET Implementation of Pelco P Protocol
	/// </summary>
	public class P : Pelco
	{
		private const byte STX = 0xA0;
		private const byte ETX = 0xAF;
		
		#region Pan and Tilt Commands
		#region Data1
		private const byte FocusFar =	0x01;
		private const byte FocusNear =	0x02;
		private const byte IrisOpen =	0x04;
		private const byte IrisClose =	0x08;
		private const byte CameraOnOff = 0x10;
		private const byte AutoscanOn =	0x20;
		private const byte CameraOn =	0x40;
		#endregion

		#region Data2
		private const byte PanRight =	0x02;
		private const byte PanLeft =		0x04;
		private const byte TiltUp =		0x08;
		private const byte TiltDown =	0x10;
		private const byte ZoomTele =	0x20;
		private const byte ZoomWide =	0x40;
		#endregion

		#region Data3
		private const byte PanSpeedMin = 0x00;
		private const byte PanSpeedMax = 0x40;
		#endregion

		#region Data4
		private const byte TiltSpeedMin = 0x00;
		private const byte TiltSpeedMax = 0x3F;
		#endregion
		#endregion

		#region Enums
		public enum PresetAction {Set,Clear,Goto}
		public enum PatternAction {Start,Stop,Run}
		public enum Action {Start,Stop}
		public enum LensSpeed {Low=0x00,Medium=0x01,High=0x02,Turbo=0x03}
		public enum Pan {Left = PanLeft,Right = PanRight}
		public enum Tilt {Up = TiltUp,Down = TiltDown}
		public enum Iris {Open = IrisOpen,Close = IrisClose}
		public enum Zoom {Wide = ZoomWide,Tele = ZoomTele}
		public enum Switch {On,Off}
		public enum Focus {Near = FocusNear,Far = FocusFar}
		#endregion

		#region Extended Command Set
		public byte[] Preset(uint deviceAddress, byte preset, PresetAction action)
		{
			byte m_action;
			switch (action)
			{
				case PresetAction.Set:
					m_action = 0x03;
					break;
				case PresetAction.Clear:
					m_action = 0x05;
					break;
				case PresetAction.Goto:
					m_action = 0x07;
					break;
				default:
					m_action = 0x03;
					break;
			}
			return Message.GetMessage(deviceAddress,0x00,m_action,0x00,preset);
		}

		public byte[] Flip(uint deviceAddress)
		{
			return Message.GetMessage(deviceAddress,0x00,0x07,0x00,0x21);
		}

		public byte[] ZeroPanPosition(uint deviceAddress)
		{
			return Message.GetMessage(deviceAddress,0x00,0x07,0x00,0x22);
		}

		public byte[] AutoScan(uint deviceAddress, Action action)
		{
			byte m_action;
			if(action == Action.Start)
				m_action = 0x09;
			else
				m_action = 0x0B;
			return Message.GetMessage(deviceAddress,0x00,m_action,0x00,0x00);
		}

		public byte[] RemoteReset(uint deviceAddress)
		{
			return Message.GetMessage(deviceAddress,0x00,0x0F,0x00,0x00);
		}

		public byte[] Zone(uint deviceAddress,byte zone, Action action)
		{
			if(zone<0x01 & zone>0x08)
				throw new Exception("Zone value should be between 0x01 and 0x08 include");
			byte m_action;
			if(action == Action.Start)
				m_action = 0x11;
			else
				m_action = 0x13;

			return Message.GetMessage(deviceAddress,0x00,m_action,0x00,zone);
		}



		public byte[] WriteToScreen(uint deviceAddress,string text)
		{
			if(text.Length > 40)
				text = text.Remove(40,text.Length-40);
			System.Text.Encoding encoding = System.Text.Encoding.ASCII;
			byte[] m_bytes = new byte[encoding.GetByteCount(text)*8];
			int i = 0;
			byte m_scrPosition;
			byte m_ASCIIchr;
			
			foreach(char ch in text)
			{
				m_scrPosition = Convert.ToByte(i/8);
				m_ASCIIchr = Convert.ToByte(ch);
				Array.Copy(Message.GetMessage(deviceAddress,0x00,0x15,m_scrPosition,m_ASCIIchr),0,m_bytes,i,8);
				i = i + 8;
			}

			return m_bytes;
		}

		public byte[] ClearScreen(uint deviceAddress)
		{
			return Message.GetMessage(deviceAddress,0x00,0x17,0x00,0x00);
		}

		public byte[] AlarmAcknowledge(uint deviceAddress, uint alarmID)
		{
			if(alarmID < 1 & alarmID>8)
				throw new Exception("Only 8 alarms allowed for Pelco P implementation");
			return Message.GetMessage(deviceAddress,0x00,0x19,0x00,Convert.ToByte(alarmID));
		}

		public byte[] ZoneScan(uint deviceAddress,Action action)
		{
			byte m_action;
			if(action == Action.Start)
				m_action = 0x1B;
			else
				m_action = 0x1D;
			return Message.GetMessage(deviceAddress,0x00,m_action,0x00,0x00);
		}

		public byte[] Pattern(uint deviceAddress,PatternAction action)
		{
			byte m_action;
			switch (action)
			{
				case PatternAction.Start:
					m_action = 0x1F;
					break;
				case PatternAction.Stop:
					m_action = 0x21;
					break;
				case PatternAction.Run:
					m_action = 0x23;
					break;
				default:
					m_action = 0x23;
					break;
			}
			return Message.GetMessage(deviceAddress,0x00,m_action,0x00,0x00);
		}

		public byte[] SetZoomLensSpeed(uint deviceAddress, LensSpeed speed)
		{
			return Message.GetMessage(deviceAddress,0x00,0x25,0x00,(byte)speed);
		}

		public byte[] SetFocusLensSpeed(uint deviceAddress, LensSpeed speed)
		{
			return Message.GetMessage(deviceAddress,0x00,0x27,0x00,(byte)speed);
		}

		#endregion

		#region Base Command Set

		public byte[] CameraSwitch(uint deviceAddress,Switch action)
		{
			byte m_action = CameraOnOff;
			if(action == Switch.On)
				m_action += CameraOnOff; //Maybe wrong !!!
			return Message.GetMessage(deviceAddress,m_action,0x00,0x00,0x00);
			
		}

		public byte[] CameraIrisSwitch(uint deviceAddress,Iris action)
		{
			return Message.GetMessage(deviceAddress,(byte)action,0x00,0x00,0x00);
		}

		public byte[] CameraFocus(uint deviceAddress,Focus action)
		{
			return Message.GetMessage(deviceAddress,(byte)action,0x00,0x00,0x00);
		}

		public byte[] CameraZoom(uint deviceAddress,Zoom action)
		{
			return Message.GetMessage(deviceAddress,0x00,(byte)action,0x00,0x00);
		}

		public byte[] CameraTilt(uint deviceAddress,Tilt action, uint speed)
		{
			if(speed<TiltSpeedMin)
				speed = TiltSpeedMin;
			if(speed<TiltSpeedMax)
				speed = TiltSpeedMax;

			return Message.GetMessage(deviceAddress,0x00,(byte)action,0x00,(byte)speed);
		}

		public byte[] CameraPan(uint deviceAddress,Pan action, uint speed)
		{
			if(speed<PanSpeedMin)
				speed = PanSpeedMin;
			if(speed<PanSpeedMax)
				speed = PanSpeedMax;

			return Message.GetMessage(deviceAddress,0x00,(byte)action,(byte)speed,0x00);
		}

		public byte[] CameraPanTilt(uint deviceAddress,Pan panAction, uint panSpeed, Tilt tiltAction, uint tiltSpeed)
		{
			byte[] m_bytes = new byte[8];
			byte[] m_tiltMessage = CameraTilt(deviceAddress,tiltAction,tiltSpeed);
			byte[] m_panMessage = CameraPan(deviceAddress,panAction,panSpeed);
			//m_tiltMessage.CopyTo(m_bytes,0);
			//m_panMessage.CopyTo(m_bytes,9);
			/*m_bytes[0] = m_tiltMessage[0];
			m_bytes[1] = m_tiltMessage[1];
			m_bytes[2] = m_tiltMessage[2];
			m_bytes[3] = (byte)(m_tiltMessage[3]+m_panMessage[3]);
			m_bytes[4] = (byte)(+m_panMessage[4]);
			m_bytes[5] = (byte)(+m_panMessage[5]);
			m_bytes[6] = m_tiltMessage[6];
			m_bytes[7] = m_tiltMessage[7];*/
			m_bytes = Message.GetMessage(deviceAddress,0x00,(byte)(m_tiltMessage[3]+m_panMessage[3]),
				m_panMessage[4],m_tiltMessage[5]);
			return m_bytes;

		}

		public byte[] CameraStop(uint deviceAddress)
		{
			return Message.GetMessage(deviceAddress,0x00,0x00,0x00,0x00);
		}




		#endregion









		public struct Message
		{
			public static byte Address;
			public static byte CheckSum;
			public static byte Data1,Data2,Data3,Data4;

			public static byte[] GetMessage(uint address, byte data1, byte data2, byte data3, byte data4)
			{
				if (address<0 & address>32)
					throw new Exception("Protocol Pelco P support 32 devices only");

				Address = Byte.Parse((address-1).ToString());
				Data1 = data1;
				Data2 = data2;
				Data3 = data3;
				Data4 = data4;

				CheckSum = (byte)(STX ^ Address ^ Data1 ^ Data2 ^ Data3 ^ Data4 ^ ETX);

				return new byte[]{STX,Address,Data1,Data2,Data3,Data4,ETX,CheckSum};
			}
			
		}
	}

	 
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩三级视频| 一区二区视频在线看| 欧美电影免费观看高清完整版在线| 欧美视频在线观看一区二区| 在线电影院国产精品| 久久先锋影音av鲁色资源网| 亚洲人成人一区二区在线观看 | 欧美极品另类videosde| 亚洲欧洲综合另类在线| 日韩国产欧美一区二区三区| 国产成人综合在线播放| 欧美日韩免费电影| 国产精品少妇自拍| 国产一区视频网站| 日韩欧美资源站| 亚洲午夜精品在线| 99九九99九九九视频精品| 精品国产免费人成在线观看| 亚洲成人激情av| 91国模大尺度私拍在线视频| 欧美极品另类videosde| 丁香婷婷深情五月亚洲| 日韩欧美电影一区| 精品综合久久久久久8888| 欧美放荡的少妇| 免费精品视频最新在线| 51精品久久久久久久蜜臀| 视频一区在线视频| 在线不卡的av| 激情综合五月天| 国产精品美女久久福利网站 | 欧美色图一区二区三区| 亚洲福利国产精品| 欧美日韩国产天堂| 狠狠色狠狠色合久久伊人| 久久久久久麻豆| 99久久777色| 午夜精彩视频在线观看不卡| 欧美色窝79yyyycom| 久久99精品国产麻豆不卡| 亚洲国产成人一区二区三区| aaa亚洲精品| 天堂一区二区在线免费观看| 国产午夜精品美女毛片视频| 91丨九色丨黑人外教| 丝瓜av网站精品一区二区| 国产欧美综合在线| 欧美丝袜丝nylons| k8久久久一区二区三区| 婷婷开心久久网| 亚洲人成伊人成综合网小说| 精品久久久久久久久久久久久久久久久| 国产aⅴ综合色| 久久9热精品视频| 日韩vs国产vs欧美| 亚洲狠狠爱一区二区三区| 亚洲欧美另类综合偷拍| 久久精品一区二区三区av| 欧美高清视频www夜色资源网| 99re这里都是精品| 99在线视频精品| 色综合久久天天| 成人激情av网| 91麻豆国产福利在线观看| av资源站一区| 欧美日本乱大交xxxxx| 欧美老女人在线| 日韩欧美色综合网站| 精品国产一二三| 国产色综合久久| 亚洲黄色录像片| 日韩精品亚洲一区| 国产精品一色哟哟哟| www.亚洲人| 欧美精品99久久久**| 亚洲精品一区二区三区影院 | 久久久久国产精品免费免费搜索| 久久先锋影音av鲁色资源网| 欧美极品aⅴ影院| 日本成人在线电影网| 激情欧美日韩一区二区| 成人av免费观看| 91精品国产综合久久久蜜臀粉嫩 | 成人伦理片在线| 97久久精品人人澡人人爽| 在线观看亚洲一区| 欧美写真视频网站| 99久久精品国产网站| 91女厕偷拍女厕偷拍高清| 日韩精品一区二区在线观看| 91精品国产综合久久蜜臀| 欧美一区二区性放荡片| 国产日韩欧美亚洲| 一区二区三区中文在线| 五月激情综合色| 成人一级片网址| 欧美群妇大交群中文字幕| 69堂国产成人免费视频| 欧美久久一二区| 亚洲国产成人一区二区三区| 日韩伦理免费电影| 经典一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 国产福利精品导航| 久久久精品tv| 成人精品视频.| 国产精品不卡一区二区三区| 国产激情视频一区二区在线观看| 久久精品一区二区三区av| 狠狠色丁香婷婷综合久久片| 国产精品免费视频观看| 色婷婷精品大视频在线蜜桃视频| 国产精品拍天天在线| 色综合天天做天天爱| 亚洲高清免费视频| 精品成人免费观看| 97超碰欧美中文字幕| 偷拍自拍另类欧美| 欧美一区二区视频观看视频| 日本不卡中文字幕| 亚洲精品一区在线观看| 国产乱一区二区| 亚洲视频小说图片| 91成人看片片| 蜜臀av在线播放一区二区三区| 精品国免费一区二区三区| 国产剧情一区二区| 国产精品福利一区| 欧美日韩精品免费| 国产jizzjizz一区二区| 一区二区三区中文在线| 欧美刺激午夜性久久久久久久 | 成a人片国产精品| 亚洲狠狠丁香婷婷综合久久久| jvid福利写真一区二区三区| 亚洲自拍与偷拍| 欧美国产综合一区二区| 欧美在线观看一二区| 国产成人亚洲精品狼色在线| 亚洲国产日韩a在线播放性色| 久久久久久久综合日本| 欧美日本视频在线| 日本黄色一区二区| 97se亚洲国产综合自在线 | av在线综合网| 国产一区二区三区四区五区美女| 亚洲午夜在线电影| 一区二区三区高清在线| 亚洲尤物在线视频观看| 亚洲精品乱码久久久久久| 国产精品―色哟哟| 专区另类欧美日韩| 1024成人网| 一区av在线播放| 午夜电影久久久| 五月婷婷色综合| 免费成人av在线| 国产在线国偷精品产拍免费yy| 久久精品免费观看| 精品在线一区二区三区| 风流少妇一区二区| 日本久久一区二区三区| 欧美猛男男办公室激情| 日韩欧美三级在线| 亚洲欧洲日韩综合一区二区| 亚洲欧美日韩系列| 日日夜夜免费精品| 国产精品亚洲一区二区三区在线 | 欧美一区二区福利在线| 久久久久久一二三区| 亚洲人成在线观看一区二区| 日韩av电影天堂| 成人不卡免费av| 日韩欧美成人一区| 最新日韩在线视频| 精品综合久久久久久8888| 99国产欧美另类久久久精品| 精品国产乱码久久| 免费一级片91| 欧美一区二区在线免费观看| 中文字幕一区二区三区在线播放| 日本91福利区| 在线精品视频免费播放| 中文字幕在线一区免费| 激情久久五月天| 久久久久久综合| 国产老妇另类xxxxx| 久久色在线观看| 波多野结衣中文字幕一区 | 成熟亚洲日本毛茸茸凸凹| 日韩三级在线免费观看| 精品一区二区成人精品| 国产精品萝li| 欧美熟乱第一页| 精品一区二区久久久| 国产精品女主播av| 正在播放亚洲一区| 国产不卡在线一区| 偷拍与自拍一区| 国产精品白丝在线|