public async Task <Tuple <string, GetDeviceInformationResponse> > GetDeviceInfoAsync(string deviceAddress, string userName, string password) { var messageElement = new TextMessageEncodingBindingElement { MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None) }; HttpTransportBindingElement httpBinding = new HttpTransportBindingElement { //AuthenticationScheme = AuthenticationSchemes.Digest }; CustomBinding bind = new CustomBinding(messageElement, httpBinding); //绑定服务地址 EndpointAddress serviceAddress = new EndpointAddress(deviceAddress); DeviceClient deviceClient = new DeviceClient(bind, serviceAddress); //给每个请求都添加认证信息 deviceClient.Endpoint.EndpointBehaviors.Add(new CustomEndpointBehavior(userName, password)); //查看系统时间 var date = await deviceClient.GetSystemDateAndTimeAsync(); Console.WriteLine(date.UTCDateTime.Date.Month.ToString()); var deviceInfo = await deviceClient.GetDeviceInformationAsync(new GetDeviceInformationRequest() { }); //查看设备能力 GetCapabilitiesResponse cap = await deviceClient.GetCapabilitiesAsync(new CapabilityCategory[] { CapabilityCategory.All }); return(Tuple.Create <string, GetDeviceInformationResponse>(cap.Capabilities.Media.XAddr.ToString(), deviceInfo)); }
public async Task <OnvifDevice.Capabilities> GetDeviceCapabilitiesAsync() { if (m_device == null) { await InitalizeDeviceAsync(); if (m_device == null) { return(null); } } if (m_capabilitiesResponse == null) { OnVifServices.OnvifDevice.CapabilityCategory[] capability = new OnVifServices.OnvifDevice.CapabilityCategory[1]; capability[0] = CapabilityCategory.All; m_capabilitiesResponse = await m_device.GetCapabilitiesAsync(capability); } if (m_capabilitiesResponse == null) { return(null); } return(m_capabilitiesResponse.Capabilities); }
public async Task GetDeviceInfoAsync(string deviceAddress) { var messageElement = new TextMessageEncodingBindingElement { MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None) }; HttpTransportBindingElement httpBinding = new HttpTransportBindingElement { AuthenticationScheme = AuthenticationSchemes.Digest }; CustomBinding bind = new CustomBinding(messageElement, httpBinding); //绑定服务地址 EndpointAddress serviceAddress = new EndpointAddress(deviceAddress); DeviceClient deviceClient = new DeviceClient(bind, serviceAddress); //查看系统时间 var date = await deviceClient.GetSystemDateAndTimeAsync(); Console.WriteLine(date.UTCDateTime.Date.Month.ToString()); //查看设备能力 GetCapabilitiesResponse cap = await deviceClient.GetCapabilitiesAsync(new CapabilityCategory[] { CapabilityCategory.All }); Console.WriteLine(cap.Capabilities.Media.XAddr.ToString()); }
public async Task <OnvifDevice> Setup() { device = await OnvifClientFactory.CreateDeviceClientAsync(Host + ":" + Port, UserName, Password); var devicecapabilities = await device.GetCapabilitiesAsync(new CapabilityCategory[] { CapabilityCategory.All }); var info = await device.GetDeviceInformationAsync(new GetDeviceInformationRequest() { }); media = await OnvifClientFactory.CreateMediaClientAsync(Host + ":" + Port, UserName, Password); var profiles = await media.GetProfilesAsync(); ptz = await Onvif.Core.Client.OnvifClientFactory.CreatePTZClientAsync(Host + ":" + Port, UserName, Password); var capabilities = await ptz.GetServiceCapabilitiesAsync(); var config = await ptz.GetConfigurationsAsync(); var space = config.PTZConfiguration[0].DefaultAbsolutePantTiltPositionSpace; token = profiles.Profiles[0].token; xrange = config.PTZConfiguration[0].PanTiltLimits.Range.XRange; yrange = config.PTZConfiguration[0].PanTiltLimits.Range.YRange; zrange = config.PTZConfiguration[0].ZoomLimits.Range.XRange; var status = await ptz.GetStatusAsync(token); //var presets = await ptz.GetPresetsAsync(token); //Console.WriteLine("preset "); // await ptz.GotoPresetAsync(token, presets.Preset[0].token, null); //Thread.Sleep(4000); var nodes = await ptz.GetNodesAsync(); //Console.WriteLine("home "); //await ptz.GotoHomePositionAsync(token, null); //Thread.Sleep(2000); //Console.WriteLine("ContinuousMoveAsync "); /* * await ptz.ContinuousMoveAsync(token, new PTZSpeed() {PanTilt = new Vector2D() {x = -1f, y = -1}, Zoom = new Vector1D() { x=0f}}, "2"); * Thread.Sleep(2000); * await ptz.StopAsync(token, true, true); */ return(this); }