コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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());
        }
コード例 #4
0
        private Capabilities12 GetDeviceCapabilities()
        {
            Device deviceClient = CreateDeviceClient();

            GetCapabilitiesResponse capabilitiesResponse = deviceClient.GetCapabilities(new GetCapabilitiesRequest(new[] { CapabilityCategory.All }));

            return(capabilitiesResponse.Capabilities);
        }
コード例 #5
0
        private async Task <Capabilities> GetDeviceCapabilitiesAsync()
        {
            Device deviceClient = CreateDeviceClient();

            GetCapabilitiesResponse capabilitiesResponse =
                await deviceClient.GetCapabilitiesAsync(new GetCapabilitiesRequest(new[] { CapabilityCategory.All }));

            return(capabilitiesResponse.Capabilities);
        }
コード例 #6
0
        private async Task <Hspi.Onvif.Contracts.DeviceManagement.Capabilities> GetDeviceCapabilitiesAsync()
        {
            Device deviceClient = CreateDeviceClient();

            GetCapabilitiesResponse capabilitiesResponse =
                await deviceClient.GetCapabilitiesAsync(new GetCapabilitiesRequest(new[] { CapabilityCategory.All })).ConfigureAwait(false);

            return(capabilitiesResponse.Capabilities);
        }
コード例 #7
0
        private static void Validate(GetCapabilitiesResponse cap)
        {
            Assert.That(cap.ContentType, Is.EqualTo("text/xml"));
            XmlDocument doc = cap.Capabilities;

            Assert.That(doc, Is.Not.Null);
            XmlElement el = doc.DocumentElement;

            Assert.That(el.OuterXml, Is.EqualTo(Resources.expectedGetCapabilitiesXml));
        }
コード例 #8
0
        public OnVifDevice(string Hostname, string User, string Password)
        {
            m_services = null;

            m_Hostname = Hostname;
            m_User     = User;
            m_Password = Password;
            m_BasicBasicAuthBehaviour = new BasicAuthBehaviour(m_User, m_Password);
            m_PasswordDigestBehavior  = new PasswordDigestBehavior(m_User, m_Password, 0);
            m_ErrorMessage            = "";
            m_deviceInformations      = null;
            m_HostnameInformation     = null;
            m_Capabilities            = null;
            m_device = null;
            m_capabilitiesResponse = null;
            m_SystemDateTime       = null;
        }