public DeviceDescriptor Connect(string address) { int port = 7878; string ip = address; if (address.Contains(":")) { ip = address.Split(':')[0]; int.TryParse(address.Split(':')[1], out port); } YiCameraProtocol protocol = new YiCameraProtocol(); protocol.Connect(ip, port); DeviceDescriptor descriptor = new DeviceDescriptor { WpdId = "YiCamera" }; var cameraDevice = new YiCamera(); descriptor.StillImageDevice = protocol; descriptor.CameraDevice = cameraDevice; //cameraDevice.SerialNumber = StaticHelper.GetSerial(portableDevice.DeviceId); cameraDevice.Init(descriptor); return descriptor; }
public override bool Init(DeviceDescriptor deviceDescriptor) { CurrentValues = new Dictionary<string, string>(); Capabilities.Add(CapabilityEnum.LiveView); Capabilities.Add(CapabilityEnum.LiveViewStream); Protocol = deviceDescriptor.StillImageDevice as YiCameraProtocol; Protocol.DataReceiverd += Protocol_DataReceiverd; DeviceName = Protocol.Model; Manufacturer = Protocol.Manufacturer; IsConnected = true; CompressionSetting = new PropertyValue<int> { Tag = "photo_quality" }; Mode = new PropertyValue<uint> { Tag = "capture_mode" }; Mode.AddValues("Single", 0); Mode.AddValues("Burst", 1); Mode.AddValues("Delayed", 2); //Mode.AddValues("TimeLapse", 3); Mode.ReloadValues(); ExposureMeteringMode = new PropertyValue<int>() { Tag = "meter_mode" }; LiveViewImageZoomRatio = new PropertyValue<int>(); LiveViewImageZoomRatio.AddValues("All", 0); LiveViewImageZoomRatio.Value = "All"; SendCommand(3); Thread.Sleep(500); SerialNumber = GetValue("serial_number"); SetProperty(Mode.Tag, GetValue(Mode.Tag)); var thread = new Thread(LoadProperties) { Priority = ThreadPriority.Lowest }; thread.Start(); return true; }