コード例 #1
0
        public TestTool.Onvif.GetCapabilitiesResponse GetCapabilities(TestTool.Onvif.GetCapabilitiesRequest request)
        {
            BeginMethod("GetCapabilities");

            List <CapabilityCategory> categories     = new List <CapabilityCategory>(request.Category);
            CapabilityCategory        singleCategory = CapabilityCategory.All;
            bool allCapabilitiesQueried  = false;
            bool singleCategoryRequested = false;

            if (categories.Count == 0)
            {
                allCapabilitiesQueried = true;
            }
            else
            {
                if (categories.Count == 1)
                {
                    singleCategory          = categories[0];
                    singleCategoryRequested = singleCategory != CapabilityCategory.All;
                }
                allCapabilitiesQueried = categories.Contains(CapabilityCategory.All);
            }

            if (categories.Contains(CapabilityCategory.Media) ||
                categories.Contains(CapabilityCategory.Analytics) ||
                categories.Contains(CapabilityCategory.Imaging) ||
                categories.Contains(CapabilityCategory.PTZ))
            {
                string[] faultCodes = new string[] { "Receiver", "ActionNotSupported", "NoSuchService" };
                Transport.CommonUtils.ReturnFault(faultCodes);
            }

            SimulatorConfiguration.ServicesConfiguration.CreateOldStyleCapabilities();
            Capabilities capabilities = SimulatorConfiguration.ServicesConfiguration.Capabilities;

            if (singleCategoryRequested)
            {
                if (singleCategory == CapabilityCategory.Device)
                {
                    capabilities.Events = null;
                }
                else
                {
                    capabilities.Device = null;
                }
            }

            if (capabilities.Device != null)
            {
                capabilities.Device.XAddr = _host + Definitions.LocalAddress.DEVICE;
            }
            if (capabilities.Events != null)
            {
                capabilities.Events.XAddr = _host + Definitions.LocalAddress.EVENTS;
            }

            EndMethod();

            return(new GetCapabilitiesResponse(capabilities));
        }
コード例 #2
0
        public static string GetServiceAddress(this DeviceClient device,
                                               CapabilityCategory category,
                                               Func <Capabilities, string> addressSelector)
        {
            string       address      = string.Empty;
            Capabilities capabilities = device.GetCapabilities(new CapabilityCategory[] { category });

            return(addressSelector(capabilities));
        }
コード例 #3
0
        public static string GetServiceAddress(this DeviceClient device,
                                               IEnumerable <Feature> features,
                                               CapabilityCategory category,
                                               Func <Capabilities, string> addressSelector,
                                               string serviceNs)
        {
            string address = string.Empty;

            if (features.Contains(Definitions.Enums.Feature.GetServices))
            {
                address = device.GetServiceAddress(serviceNs);
            }
            else
            {
                address = device.GetServiceAddress(category, addressSelector);
            }
            return(address);
        }
コード例 #4
0
        public static void MuestraInfo(string uri)
        {
            System.DateTime UTCTime = System.DateTime.UtcNow;

            Console.Write(string.Format("Client UTC Time: {0}", UTCTime.ToString("HH:mm:ss")));

            HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
            var httpTransportBinding = new HttpTransportBindingElement {
                AuthenticationScheme = AuthenticationSchemes.Digest
            };
            var textMessageEncodingBinding = new TextMessageEncodingBindingElement {
                MessageVersion = MessageVersion.CreateVersion(EnvelopeVersion.Soap12, AddressingVersion.None)
            };
            var customBinding = new CustomBinding(textMessageEncodingBinding, httpTransportBinding);

            EndpointAddress serviceAddress = new EndpointAddress(uri);

            var passwordDigestBehavior = new PasswordDigestBehavior("julian", "julian");

            var deviceClient = new DeviceClient(customBinding, serviceAddress);

            deviceClient.Endpoint.Behaviors.Add(passwordDigestBehavior);
            Console.Write(" GetHostname: " + deviceClient.GetHostname().Name);
            var unitTime = deviceClient.GetSystemDateAndTime();

            Console.Write((string.Format(" Camera UTC Time: {0}:{1}:{2}", unitTime.UTCDateTime.Time.Hour, unitTime.UTCDateTime.Time.Minute, unitTime.UTCDateTime.Time.Second)));

            CapabilityCategory[] cc = new CapabilityCategory[100];
            deviceClient.GetCapabilities(cc);

            Console.Write(" GetHostname: " + deviceClient.GetHostname().Name);
            Console.Write(" GetWsdlUrl: " + deviceClient.GetWsdlUrl());


            string model, firmwareVersion, serialNumber, hardwareId;

            deviceClient.GetDeviceInformation(out model, out firmwareVersion, out serialNumber, out hardwareId);
            Console.Write(" Model: " + model);
            Console.Write(" firmwareVersion: " + firmwareVersion);
            Console.Write(" serialNumber: " + serialNumber);
            Console.WriteLine("hardwareId: " + hardwareId + "\n\n");
        }