Beispiel #1
0
        /// <summary>
        /// Initializes device management service client
        /// </summary>
        /// <param name="address">Address of device management service</param>
        void InitializeClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _client = new ManagementServiceProvider(address, env.Timeouts.Message);
            _client.ExceptionThrown             += OnExceptionThrown;
            _client.OnDeviceInformationReceived += DeviceInformationReceived;
            _client.OperationCompleted          += OnOperationCompleted;
            _client.OperationStarted            += ReportOperationStarted;
            _client.FaultThrown += OnFaultThrown;

            _client.Timeout = env.Timeouts.Message;
        }
Beispiel #2
0
        /// <summary>
        /// Creates client for device management service
        /// </summary>
        /// <param name="address">Management service address</param>
        void InitializeDeviceClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _deviceClient = new ManagementServiceProvider(address, env.Timeouts.Message);
            _deviceClient.ExceptionThrown        += OnExceptionThrown;
            _deviceClient.OperationCompleted     += OnOperationCompleted;
            _deviceClient.OperationStarted       += OnOperationStarted;
            _deviceClient.Timeout                 = env.Timeouts.Message;
            _deviceClient.ResponseReceived       += OnResponseReceived;
            _deviceClient.OnServicesInfoReceived += OnServicesInfoReceived;
            _deviceClient.Security                = ContextController.GetDebugInfo().Security;
        }
        /// <summary>
        /// Creates client for PTZ service
        /// </summary>
        /// <param name="address">PTZ service address</param>
        void IntializePtzClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _ptzClient = new PTZServiceProvider(address, env.Timeouts.Message);
            _ptzClient.ExceptionThrown             += OnExceptionThrown;
            _ptzClient.OperationCompleted          += OnOperationCompleted;
            _ptzClient.OperationStarted            += OnOperationStarted;
            _ptzClient.Timeout                      = env.Timeouts.Message;
            _ptzClient.ResponseReceived            += OnResponseReceived;
            _ptzClient.OnPTZConfigurationsReceived += OnPTZConfigurationsReceived;
            _ptzClient.Security                     = ContextController.GetDebugInfo().Security;
        }
Beispiel #4
0
        /// <summary>
        /// Saves current settings as a profile.
        /// </summary>
        /// <param name="profileName">Profile name.</param>
        /// <returns>New profile object.</returns>
        public Profile SaveCurrentProfile(string profileName)
        {
            Profile profile = _profiles.Profiles.Where(p => p.Name == profileName).FirstOrDefault();

            if (profile == null)
            {
                profile = new Profile(profileName);
                _profiles.Profiles.Add(profile);
            }

            profile.InterTests = View.SettingsView.TimeBetweenTests;
            profile.Reboot     = View.SettingsView.RebootTimeout;
            profile.Message    = View.SettingsView.MessageTimeout;

            profile.OperationDelay = View.SettingsView.OperationDelay;
            profile.RecoveryDelay  = View.SettingsView.RecoveryDelay;

            profile.DnsIpv4     = View.SettingsView.DnsIpv4;
            profile.NtpIpv4     = View.SettingsView.NtpIpv4;
            profile.GatewayIpv4 = View.SettingsView.GatewayIpv4;

            profile.DnsIpv6     = View.SettingsView.DnsIpv6;
            profile.NtpIpv6     = View.SettingsView.NtpIpv6;
            profile.GatewayIpv6 = View.SettingsView.GatewayIpv6;

            profile.UseEmbeddedPassword = View.SettingsView.UseEmbeddedPassword;
            profile.Password1           = View.SettingsView.Password1;
            profile.Password2           = View.SettingsView.Password2;
            profile.SecureMethod        = View.SettingsView.SecureMethod;

            profile.PTZNodeToken     = View.SettingsView.PTZNodeToken;
            profile.VideoSourceToken = View.SettingsView.VideoSourceToken;

            profile.EventTopic           = View.SettingsView.EventTopic;
            profile.TopicNamespaces      = View.SettingsView.TopicNamespaces;
            profile.SubscriptionTimeout  = View.SettingsView.SubscriptionTimeout;
            profile.RelayOutputDelayTime = View.SettingsView.RelayOutputDelayTimeMonostable;

            TestOptions options = ContextController.GetTestOptions();

            profile.TestCases  = options.Tests;
            profile.TestGroups = options.Groups;

            /*******************************/
            profile.AdvancedSettings = GetAdvancedSettings();

            /********************************/

            ProfilesManager.Save(_profiles);
            return(profile);
        }
        /// <summary>
        /// Returns service addresses
        /// </summary>
        public void GetAddress(CapabilityCategory[] categories)
        {
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            _deviceClientWorking = true;
            string address = devices != null ? devices.ServiceAddress : string.Empty;

            InitializeDeviceClient(address);

            DebugInfo info = ContextController.GetDebugInfo();
            bool      capabilitiesStyle = (info.CapabilitiesExchange == CapabilitiesExchangeStyle.GetCapabilities);

            _deviceClient.GetServiceAddresses(capabilitiesStyle, categories);
        }
        /// <summary>
        /// Creates client for media service
        /// </summary>
        /// <param name="address">Media service address</param>
        void InitializeMediaClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _mediaClient = new MediaServiceProvider(address, env.Timeouts.Message);
            _mediaClient.ExceptionThrown         += new Action <string, Exception>(OnExceptionThrown);
            _mediaClient.OperationCompleted      += new Action(OnOperationCompleted);
            _mediaClient.OperationStarted        += new Action(OnOperationStarted);
            _mediaClient.OnMediaUriReceived      += OnMediaUriReceived;
            _mediaClient.Timeout                  = env.Timeouts.Message;
            _mediaClient.ResponseReceived        += OnResponseReceived;
            _mediaClient.OnProfilesReceived      += OnProfilesReceived;
            _mediaClient.OnPTZConfigurationAdded += OnPTZConfigurationAdded;
        }
Beispiel #7
0
        /// <summary>
        /// Selects feature-dependent tests.
        /// </summary>
        public void ApplyFeatures()
        {
            List <Feature>    features    = View.Features;
            DeviceEnvironment environment = ContextController.GetDeviceEnvironment();

            environment.Features = new List <Feature>(features);

            environment.Services.Clear();
            environment.Services.AddRange(View.Services);

            if (FeaturesApplied != null)
            {
                FeaturesApplied(features);
            }
        }
        /// <summary>
        /// Loads data saved in context.
        /// </summary>
        /// <param name="context"></param>
        public override void LoadSavedContext(SavedContext context)
        {
            base.LoadSavedContext(context);

            if (context.DebugInfo != null)
            {
                DebugInfo info = ContextController.GetDebugInfo();
                info.CapabilitiesExchange = context.DebugInfo.CapabilitiesExchange;
                info.Security             = context.DebugInfo.Security;
            }

            foreach (IController contoller in _controllers)
            {
                contoller.LoadSavedContext(context);
            }
        }
        /// <summary>
        /// Applies saved application context
        /// </summary>
        /// <param name="context">Saved context</param>
        public override void LoadSavedContext(SavedContext context)
        {
            SetupInfo info = context.SetupInfo;

            if (info != null)
            {
                if (info.DevInfo != null)
                {
                    View.Brand             = info.DevInfo.Manufacturer;
                    View.Model             = info.DevInfo.Model;
                    View.OnvifProductName  = info.DevInfo.ProductName;
                    View.ProductTypesAll   = info.DevInfo.ProductTypesAll;
                    View.ProductTypes      = info.DevInfo.ProductTypes;
                    View.ProductTypesOther = info.DevInfo.ProductTypesOther;
                }
                //CR is lost during serialization
                View.OtherInformation = !string.IsNullOrEmpty(info.OtherInfo) ? info.OtherInfo.Replace("\n", "\r\n") : string.Empty;
                if (info.TesterInfo != null)
                {
                    View.OperatorName        = info.TesterInfo.Operator;
                    View.OrganizationName    = info.TesterInfo.Organization;
                    View.OrganizationAddress = !string.IsNullOrEmpty(info.TesterInfo.Address) ? info.TesterInfo.Address.Replace("\n", "\r\n") : string.Empty;
                }
                if (info.MemberInfo != null)
                {
                    View.MemberName    = info.MemberInfo.Name;
                    View.MemberAddress = info.MemberInfo.Address;
                }

                if (info.SupportInfo != null)
                {
                    View.InternationalAddress = !string.IsNullOrEmpty(info.SupportInfo.InternationalAddress)
                                                                        ? info.SupportInfo.InternationalAddress.Replace("\n", "\r\n")
                                                                        : string.Empty;

                    View.RegionalAddress = !string.IsNullOrEmpty(info.SupportInfo.RegionalAddress)
                                                                        ? info.SupportInfo.RegionalAddress.Replace("\n", "\r\n")
                                                                        : string.Empty;

                    View.SupportUrl   = info.SupportInfo.SupportUrl;
                    View.SupportEmail = info.SupportInfo.SupportEmail;
                    View.SupportPhone = info.SupportInfo.SupportPhone;
                }

                ContextController.UpdateSetupInfo(info);
            }
        }
Beispiel #10
0
        /// <summary>
        /// Updates context data when a user leaves management tab.
        /// </summary>
        public override void UpdateContext()
        {
            DeviceEnvironment environment = ContextController.GetDeviceEnvironment();

            environment.Timeouts            = new Timeouts();
            environment.Timeouts.InterTests = View.SettingsView.TimeBetweenTests;
            environment.Timeouts.Message    = View.SettingsView.MessageTimeout;
            environment.Timeouts.Reboot     = View.SettingsView.RebootTimeout;

            environment.EnvironmentSettings             = new EnvironmentSettings();
            environment.EnvironmentSettings.DnsIpv4     = View.SettingsView.DnsIpv4;
            environment.EnvironmentSettings.NtpIpv4     = View.SettingsView.NtpIpv4;
            environment.EnvironmentSettings.DnsIpv6     = View.SettingsView.DnsIpv6;
            environment.EnvironmentSettings.NtpIpv6     = View.SettingsView.NtpIpv6;
            environment.EnvironmentSettings.GatewayIpv4 = View.SettingsView.GatewayIpv4;
            environment.EnvironmentSettings.GatewayIpv6 = View.SettingsView.GatewayIpv6;

            environment.TestSettings = new TestSettings();
            environment.TestSettings.PTZNodeToken = View.SettingsView.PTZNodeToken;

            environment.TestSettings.UseEmbeddedPassword = View.SettingsView.UseEmbeddedPassword;
            environment.TestSettings.Password1           = View.SettingsView.Password1;
            environment.TestSettings.Password2           = View.SettingsView.Password2;
            environment.TestSettings.OperationDelay      = View.SettingsView.OperationDelay;
            environment.TestSettings.RecoveryDelay       = View.SettingsView.RecoveryDelay;
            environment.TestSettings.VideoSourceToken    = View.SettingsView.VideoSourceToken;

            environment.TestSettings.SecureMethod        = View.SettingsView.SecureMethod;
            environment.TestSettings.SubscriptionTimeout = View.SettingsView.SubscriptionTimeout;
            environment.TestSettings.EventTopic          = View.SettingsView.EventTopic;
            environment.TestSettings.TopicNamespaces     = View.SettingsView.TopicNamespaces;

            environment.TestSettings.RelayOutputDelayTimeMonostable = View.SettingsView.RelayOutputDelayTimeMonostable;

            environment.TestSettings.RecordingToken = View.SettingsView.RecordingToken;
            environment.TestSettings.SearchTimeout  = View.SettingsView.SearchTimeout;
            environment.TestSettings.MetadataFilter = View.SettingsView.MetadataFilter;

            environment.TestSettings.RetentionTime = View.SettingsView.RetentionTime;

            environment.TestSettings.RawAdvancedSettings = GetAdvancedSettings();

            List <object> advanced = View.SettingsView.AdvancedSettings;

            environment.TestSettings.AdvancedSettings = advanced;
        }
        /// <summary>
        /// Updates context.
        /// </summary>
        public override void UpdateContext()
        {
            TestOptions options = new TestOptions();

            //options.InteractiveFirst = View.InteractiveFirst;

            List <TestInfo> selectedTests = View.SelectedTests;

            foreach (TestInfo info in selectedTests)
            {
                options.Tests.Add(info.Order);
            }

            options.Groups.AddRange(View.SelectedGroups);

            ContextController.UpdateTestOptions(options);
        }
Beispiel #12
0
        /// <summary>
        /// Updates context.
        /// </summary>
        public override void UpdateContext()
        {
            TestOptions options = new TestOptions();

            if (View.TestTreeView != null)
            {
                var selectedTests = View.TestTreeView.SelectedTests;
                foreach (TestInfo info in selectedTests)
                {
                    options.Tests.Add(info.Order);
                }

                options.Groups.AddRange(View.TestTreeView.SelectedGroups);
            }
            options.Repeat = View.Repeat;
            ContextController.UpdateTestOptions(options);
        }
Beispiel #13
0
        /// <summary>
        /// Queries PTZ nodes
        /// </summary>
        public void GetPTZNodes()
        {
            DiscoveredDevices         devices      = ContextController.GetDiscoveredDevices();
            string                    address      = devices != null ? devices.ServiceAddress : string.Empty;
            DeviceEnvironment         env          = ContextController.GetDeviceEnvironment();
            ManagementServiceProvider deviceClient = new ManagementServiceProvider(address, env.Timeouts.Message);

            ReportOperationStarted();
            Thread thread = new Thread(new ThreadStart(new Action(() =>
            {
                try
                {
                    Device.Capabilities capabilities = deviceClient.GetCapabilitiesSync(new Device.CapabilityCategory[] { Device.CapabilityCategory.PTZ });
                    if (capabilities.PTZ != null)
                    {
                        string ptzAddress            = capabilities.PTZ.XAddr;
                        PTZServiceProvider ptzClient = new PTZServiceProvider(ptzAddress, env.Timeouts.Message);
                        PTZ.PTZNode[] nodes          = ptzClient.GetNodes();
                        if ((nodes != null) && (nodes.Length > 0))
                        {
                            View.SetPTZNodes(nodes);
                        }
                        else
                        {
                            throw new Exception("No PTZ nodes returned by device");
                        }
                    }
                    else
                    {
                        throw new Exception("Device does not support PTZ service");
                    }
                }
                catch (System.Exception ex)
                {
                    View.ShowError(ex);
                }
                finally
                {
                    ReportOperationCompleted();
                }
            })));

            thread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
            thread.Start();
        }
Beispiel #14
0
        /// <summary>
        /// Updates test log in "context".
        /// </summary>
        public void UpdateTestLog()
        {
            TestLog log = new TestLog();

            log.TestResults           = _testResults;
            log.Features              = _td.Features;
            log.TestExecutionTime     = _testExecutionTime;
            log.InitializationData    = _initializationData;
            log.FeaturesDefinitionLog = _featureDefinitionLog;

            log.Timeouts = new RealTimeouts();
            TrafficListener.GetAggregated(out log.Timeouts.Maximum, out log.Timeouts.Median, out log.Timeouts.Average);
            System.Diagnostics.Debug.WriteLine(string.Format("RunTests stopped with Max={0}, Median={1} and Mean={2}",
                                                             log.Timeouts.Maximum,
                                                             log.Timeouts.Median,
                                                             log.Timeouts.Average));

            ContextController.UpdateTestLog(log);
        }
        /// <summary>
        /// Saves current settings as a profile.
        /// </summary>
        /// <param name="profileName">Profile name.</param>
        /// <returns>New profile object.</returns>
        public Profile SaveCurrentProfile(string profileName)
        {
            Profile profile = _profiles.Profiles.Where(p => p.Name == profileName).FirstOrDefault();

            if (profile == null)
            {
                profile = new Profile(profileName);
                _profiles.Profiles.Add(profile);
            }

            //profile.UserName = View.UserName;
            //profile.Password = View.Password;
            //profile.UtcTimeStamp = View.UtcTimestamp;

            profile.InterTests = View.TimeBetweenTests;
            profile.Reboot     = View.RebootTimeout;
            profile.Message    = View.MessageTimeout;

            profile.DnsIpv4     = View.DnsIpv4;
            profile.NtpIpv4     = View.NtpIpv4;
            profile.GatewayIpv4 = View.GatewayIpv4;

            profile.DnsIpv6     = View.DnsIpv6;
            profile.NtpIpv6     = View.NtpIpv6;
            profile.GatewayIpv6 = View.GatewayIpv6;

            profile.UseEmbeddedPassword = View.UseEmbeddedPassword;
            profile.Password1           = View.Password1;
            profile.Password2           = View.Password2;

            profile.OperationDelay = View.OperationDelay;

            TestOptions options = ContextController.GetTestOptions();

            profile.TestCases        = options.Tests;
            profile.InteractiveFirst = options.InteractiveFirst;
            profile.TestGroups       = options.Groups;

            profile.Features = new List <Feature>(View.Features);

            ProfilesManager.Save(_profiles);
            return(profile);
        }
        /// <summary>
        /// Checks if all information required is entered at the Setup tab.
        /// </summary>
        /// <returns>True if user filled all the fields required.</returns>
        public bool IsTestInfoFull()
        {
            SetupInfo setupInfo = ContextController.GetSetupInfo();

            if (string.IsNullOrEmpty(setupInfo.TesterInfo.Operator) ||
                string.IsNullOrEmpty(setupInfo.TesterInfo.Organization) ||
                string.IsNullOrEmpty(setupInfo.TesterInfo.Address) ||
                string.IsNullOrEmpty(setupInfo.DevInfo.FirmwareVersion) ||
                string.IsNullOrEmpty(setupInfo.DevInfo.Manufacturer) ||
                string.IsNullOrEmpty(setupInfo.DevInfo.Model) ||
                string.IsNullOrEmpty(setupInfo.DevInfo.SerialNumber))
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Beispiel #17
0
        /// <summary>
        /// Common "Save" procedure
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="fileName"></param>
        /// <param name="results"></param>
        void SaveInternal <T>(string fileName, T results)
        {
            StreamWriter writer = null;

            try
            {
                DebugReport <T> report = new DebugReport <T>();
                report.ExecutionTime = DateTime.Now;

                DeviceInfo info = new DeviceInfo();
                if (_initializationData != null && _initializationData.DeviceInformation != null)
                {
                    info.FirmwareVersion = _initializationData.DeviceInformation.FirmwareVersion;
                    info.HardwareID      = _initializationData.DeviceInformation.HardwareID;
                    info.Manufacturer    = _initializationData.DeviceInformation.Manufacturer;
                    info.Model           = _initializationData.DeviceInformation.Model;
                    info.SerialNumber    = _initializationData.DeviceInformation.SerialNumber;
                }
                report.DeviceInfo = info;

                report.Results = results;

                {
                    Data.Log.ManagementSettings settings = ContextController.GetManagementSettings();
                    report.ManagementSettings = settings;
                }
                writer = new StreamWriter(fileName);
                XmlSerializer s = new XmlSerializer(typeof(DebugReport <T>));
                s.Serialize(writer, report);
            }
            catch (Exception exc)
            {
                View.ShowError(exc);
            }
            finally
            {
                if (writer != null)
                {
                    writer.Close();
                }
            }
        }
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////

        /// <summary>
        /// Saves context data.
        /// </summary>
        public void SaveContextData()
        {
            IsolatedStorageFile isoStore = IsolatedStorageFile.GetStore(IsolatedStorageScope.Machine | IsolatedStorageScope.Application,
                                                                        new System.Security.Policy.Url("www.onvif.org/OnvifTestTool"));
            IsolatedStorageFileStream isoFile = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore);
            // Create a StreamWriter using the isolated storage file
            StreamWriter  writer     = new StreamWriter(isoFile);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            SavedContext context = new SavedContext();

            _conformanceTestController.UpdateContext();
            context.SetupInfo = ContextController.GetSetupInfo();
            _discoveryController.UpdateContext();
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            if (devices != null)
            {
                context.DiscoveryContext = new SavedDiscoveryContext();
                context.DiscoveryContext.ServiceAddress    = devices.ServiceAddress;
                context.DiscoveryContext.DeviceAddress     = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty;
                context.DiscoveryContext.SearchScopes      = devices.SearchScopes.Replace(System.Environment.NewLine, " ");
                context.DiscoveryContext.ShowSearchOptions = devices.ShowSearchOptions;

                if ((devices.NIC != null) && (devices.NIC.IP != null))
                {
                    context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString();
                }
            }
            _managementController.UpdateContext();
            context.DeviceEnvironment = ContextController.GetDeviceEnvironment();

            _deviceController.UpdateContext();

            context.RequestsInfo = ContextController.GetRequestsInfo();
            context.MediaInfo    = ContextController.GetMediaInfo();
            context.PTZInfo      = ContextController.GetPTZInfo();
            context.DebugInfo    = ContextController.GetDebugInfo();

            serializer.Serialize(writer, context);
            writer.Close();
        }
Beispiel #19
0
        /// <summary>
        /// Initializes service client, if it's possibly.
        /// </summary>
        /// <returns>True if client has been initialized successfully.</returns>
        bool InitializeClient()
        {
            string            serviceAddress = string.Empty;
            DiscoveredDevices devices        = ContextController.GetDiscoveredDevices();

            if (devices.Current != null)
            {
                serviceAddress = devices.ServiceAddress;
            }

            try
            {
                new Uri(serviceAddress);
            }
            catch (Exception)
            {
                View.ShowError("Device service address is invalid!");
                return(false);
            }

            try
            {
                DeviceEnvironment env = ContextController.GetDeviceEnvironment();

                _client = new ManagementServiceProvider(serviceAddress, env.Timeouts.Message);
                _client.ExceptionThrown             += _client_ExceptionThrown;
                _client.OnDeviceInformationReceived += _client_OnDeviceInformationReceived;
                _client.OperationCompleted          += _client_OperationCompleted;
                _client.OperationStarted            += _client_OperationStarted;
                _client.ResponseReceived            += _client_ResponseReceived;

                _client.Security = ContextController.GetDebugInfo().Security;

                return(true);
            }
            catch (Exception exc)
            {
                View.ShowError(string.Format("Error occurred: {0}", exc.Message));
                return(false);
            }
        }
        /// <summary>
        /// Updates application context
        /// </summary>
        public override void UpdateContext()
        {
            base.UpdateContext();
            TesterInfo testerInfo = new TesterInfo();

            testerInfo.Operator     = View.OperatorName;
            testerInfo.Organization = View.OrganizationName;
            testerInfo.Address      = View.OrganizationAddress;

            DeviceInfo deviceInfo = new DeviceInfo();

            deviceInfo.Manufacturer      = View.Brand;
            deviceInfo.Model             = View.Model;
            deviceInfo.ProductName       = View.OnvifProductName;
            deviceInfo.ProductTypesAll   = View.ProductTypesAll;
            deviceInfo.ProductTypes      = View.ProductTypes;
            deviceInfo.ProductTypesOther = View.ProductTypesOther;

            MemberInfo memberInfo = new MemberInfo();

            memberInfo.Address = View.MemberAddress;
            memberInfo.Name    = View.MemberName;

            SupportInfo supportInfo = new SupportInfo();

            supportInfo.InternationalAddress = View.InternationalAddress;
            supportInfo.RegionalAddress      = View.RegionalAddress;
            supportInfo.SupportUrl           = View.SupportUrl;
            supportInfo.SupportEmail         = View.SupportEmail;
            supportInfo.SupportPhone         = View.SupportPhone;

            SetupInfo setupInfo = new SetupInfo();

            setupInfo.DevInfo     = deviceInfo;
            setupInfo.OtherInfo   = View.OtherInformation;
            setupInfo.TesterInfo  = testerInfo;
            setupInfo.MemberInfo  = memberInfo;
            setupInfo.SupportInfo = supportInfo;

            ContextController.UpdateSetupInfo(setupInfo);
        }
        /// <summary>
        /// Updates view.
        /// </summary>
        public override void UpdateView()
        {
            DeviceEnvironment environment = ContextController.GetDeviceEnvironment();

            View.TimeBetweenTests = environment.Timeouts.InterTests;
            View.MessageTimeout   = environment.Timeouts.Message;
            View.RebootTimeout    = environment.Timeouts.Reboot;
            View.DnsIpv4          = environment.EnvironmentSettings.DnsIpv4;
            View.DnsIpv6          = environment.EnvironmentSettings.DnsIpv6;
            View.NtpIpv4          = environment.EnvironmentSettings.NtpIpv4;
            View.NtpIpv6          = environment.EnvironmentSettings.NtpIpv6;
            View.GatewayIpv4      = environment.EnvironmentSettings.GatewayIpv4;
            View.GatewayIpv6      = environment.EnvironmentSettings.GatewayIpv6;
            View.PTZNodeToken     = environment.TestSettings.PTZNodeToken;

            View.UseEmbeddedPassword = environment.TestSettings.UseEmbeddedPassword;
            View.Password1           = environment.TestSettings.Password1;
            View.Password2           = environment.TestSettings.Password2;
            View.OperationDelay      = environment.TestSettings.OperationDelay;
            View.RecoveryDelay       = environment.TestSettings.RecoveryDelay;
        }
Beispiel #22
0
        /// <summary>
        /// Creates client for media service
        /// </summary>
        /// <param name="address">Media service address</param>
        void InitializeMediaClient(string address)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            _mediaClient = new MediaServiceProvider(address, env.Timeouts.Message);
            _mediaClient.ExceptionThrown    += OnExceptionThrown;
            _mediaClient.OperationCompleted += OnOperationCompleted;
            _mediaClient.OperationStarted   += OnOperationStarted;
            _mediaClient.OnProfilesReceived += OnProfilesReceived;
            _mediaClient.OnVideoSourceConfigurationsReceived += OnSourceConfigsReceived;
            _mediaClient.OnVideoEncoderConfigurationReceived += OnVideoEncoderConfigsReceived;
            _mediaClient.OnVideoEncoderConfigOptionsReceived += OnVideoEncoderConfigOptionsReceived;
            _mediaClient.OnAudioSourceConfigurationsReceived += OnAudioSourceConfigsReceived;
            _mediaClient.OnAudioEncoderConfigurationReceived += OnAudioEncoderConfigsReceived;
            _mediaClient.OnAudioEncoderConfigOptionsReceived += OnAudioEncoderConfigOptionsReceived;
            _mediaClient.OnMediaUriReceived += OnMediaUriReceived;
            _mediaClient.Timeout             = env.Timeouts.Message;
            _mediaClient.ResponseReceived   += OnResponseReceived;

            _mediaClient.Security = ContextController.GetDebugInfo().Security;
        }
Beispiel #23
0
        ///////////////////////////////////////////////////////////////////////////
        //!  @author        Ivan Vagunin
        ////

        /// <summary>
        /// Saves context data.
        /// </summary>
        public void SaveContextData()
        {
            IsolatedStorageFile       isoStore = IsolatedStorageFile.GetMachineStoreForAssembly();
            IsolatedStorageFileStream isoFile  = new IsolatedStorageFileStream(_dataFileName, FileMode.Create, isoStore);
            // Create a StreamWriter using the isolated storage file
            StreamWriter  writer     = new StreamWriter(isoFile);
            XmlSerializer serializer = new XmlSerializer(typeof(SavedContext));

            SavedContext context = new SavedContext();

            _setupController.UpdateContext();
            context.SetupInfo = ContextController.GetSetupInfo();
            _discoveryController.UpdateContext();
            DiscoveredDevices devices = ContextController.GetDiscoveredDevices();

            if (devices != null)
            {
                context.DiscoveryContext = new SavedDiscoveryContext();
                context.DiscoveryContext.ServiceAddress = devices.ServiceAddress;
                context.DiscoveryContext.DeviceAddress  = (devices.DeviceAddress != null) ? devices.DeviceAddress.ToString() : string.Empty;
                if ((devices.NIC != null) && (devices.NIC.IP != null))
                {
                    context.DiscoveryContext.InterfaceAddress = devices.NIC.IP.ToString();
                }
            }
            _reportController.UpdateContext();
            context.ReportInfo = ContextController.GetReportInfo();
            _managementController.UpdateContext();
            context.DeviceEnvironment = ContextController.GetDeviceEnvironment();
            _requestsController.UpdateContext();
            context.RequestsInfo = ContextController.GetRequestsInfo();
            _deviceController.MediaController.UpdateContext();
            context.MediaInfo = ContextController.GetMediaInfo();
            _deviceController.PTZController.UpdateContext();
            context.PTZInfo = ContextController.GetPTZInfo();

            serializer.Serialize(writer, context);
            writer.Close();
        }
Beispiel #24
0
        /// <summary>
        /// Updates application context
        /// </summary>
        public override void UpdateContext()
        {
            DiscoveredDevices devices = new DiscoveredDevices();

            devices.NIC                 = View.NIC;
            devices.Current             = new DeviceInfoFull();
            devices.Current.ByDiscovery = View.Current;
            devices.ServiceAddress      = View.ServiceAddress;
            devices.DeviceAddress       = View.DeviceAddress;

            foreach (DeviceDiscoveryData data in View.Devices)
            {
                DeviceInfoFull info = new DeviceInfoFull();
                info.ByDiscovery = data;
                devices.Discovered.Add(info);
            }
            ContextController.UpdateDiscoveredDevices(devices);

            UpdateCredentials();

            View.UpdateFormTitle();
        }
Beispiel #25
0
        /// <summary>
        /// Updates view.
        /// </summary>
        public override void UpdateView()
        {
            DeviceEnvironment environment = ContextController.GetDeviceEnvironment();

            View.SettingsView.TimeBetweenTests = environment.Timeouts.InterTests;
            View.SettingsView.MessageTimeout   = environment.Timeouts.Message;
            View.SettingsView.RebootTimeout    = environment.Timeouts.Reboot;

            View.SettingsView.OperationDelay = environment.TestSettings.OperationDelay;

            View.SettingsView.RecoveryDelay = environment.TestSettings.RecoveryDelay;
            View.SettingsView.DnsIpv4       = environment.EnvironmentSettings.DnsIpv4;
            View.SettingsView.DnsIpv6       = environment.EnvironmentSettings.DnsIpv6;
            View.SettingsView.NtpIpv4       = environment.EnvironmentSettings.NtpIpv4;
            View.SettingsView.NtpIpv6       = environment.EnvironmentSettings.NtpIpv6;
            View.SettingsView.GatewayIpv4   = environment.EnvironmentSettings.GatewayIpv4;
            View.SettingsView.GatewayIpv6   = environment.EnvironmentSettings.GatewayIpv6;

            View.SettingsView.UseEmbeddedPassword = environment.TestSettings.UseEmbeddedPassword;
            View.SettingsView.Password1           = environment.TestSettings.Password1;
            View.SettingsView.Password2           = environment.TestSettings.Password2;
            View.SettingsView.SecureMethod        = environment.TestSettings.SecureMethod;

            View.SettingsView.PTZNodeToken = environment.TestSettings.PTZNodeToken;

            View.SettingsView.SubscriptionTimeout = environment.TestSettings.SubscriptionTimeout;
            View.SettingsView.EventTopic          = environment.TestSettings.EventTopic;
            View.SettingsView.TopicNamespaces     = environment.TestSettings.TopicNamespaces;

            View.SettingsView.RelayOutputDelayTimeMonostable = environment.TestSettings.RelayOutputDelayTimeMonostable;

            View.SettingsView.RecordingToken = environment.TestSettings.RecordingToken;
            View.SettingsView.SearchTimeout  = environment.TestSettings.SearchTimeout;
            View.SettingsView.MetadataFilter = environment.TestSettings.MetadataFilter;
            View.SettingsView.RetentionTime  = environment.TestSettings.RetentionTime;

            DisplayAdvancedSettings(environment.TestSettings.RawAdvancedSettings);
        }
Beispiel #26
0
        /// <summary>
        /// Launches tests.
        /// </summary>
        /// <param name="parameters">Parameters passed from the View.</param>
        /// <param name="single">True if "Run current" button is in use. If "Run current" button has
        /// been clicked, results collected by this moment will not be cleared.</param>
        void InternalRun(TestSuiteParameters parameters, bool single)
        {
            _running       = true;
            _runningSingle = single;
            _testsCount    = parameters.TestCases.Count;

            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            parameters.UserName        = env.Credentials.UserName;
            parameters.Password        = env.Credentials.Password;
            parameters.UseUTCTimestamp = env.Credentials.UseUTCTimeStamp;
            parameters.Operator        = new Utils.Operator(View.Window);
            parameters.VideoForm       = View.GetVideoForm();

            parameters.EnvironmentSettings = new Tests.Common.TestEngine.EnvironmentSettings()
            {
                DnsIpv4            = env.EnvironmentSettings.DnsIpv4,
                NtpIpv4            = env.EnvironmentSettings.NtpIpv4,
                DnsIpv6            = env.EnvironmentSettings.DnsIpv6,
                NtpIpv6            = env.EnvironmentSettings.NtpIpv6,
                DefaultGateway     = env.EnvironmentSettings.GatewayIpv4,
                DefaultGatewayIpv6 = env.EnvironmentSettings.GatewayIpv6
            };

            if (!single)
            {
                _testResults.Clear();
                _testExecutionTime = DateTime.Now;
            }

            if (TestSuiteStarted != null)
            {
                TestSuiteStarted(parameters);
            }

            _td.Run(parameters);
        }
Beispiel #27
0
        /// <summary>
        /// Selects tests depending on features selected.
        /// </summary>
        /// <param name="features">Features</param>
        public void SelectFeatureDependentTests(IEnumerable <Feature> features)
        {
            // "Must" and "Should" tests are selected when corresponding services are selected.
            // "Optional" tests don't change their state.
            // "Conditional Must", "Conditional Should" become checked or unchecked
            // accordingly to features selection.
            //

            List <TestInfo> tests = new List <TestInfo>();

            DeviceEnvironment environment = ContextController.GetDeviceEnvironment();

            foreach (TestInfo testInfo in _testInfos)
            {
                bool add = true;

                switch (testInfo.RequirementLevel)
                {
                case RequirementLevel.ConditionalMust:
                case RequirementLevel.ConditionalShould:
                {
                    add = Utils.FeaturesHelper.AllFeaturesSelected(testInfo);
                }
                break;

                case RequirementLevel.Optional:
                    add = false;
                    break;
                }
                if (add)
                {
                    tests.Add(testInfo);
                }
            }

            View.SelectFeatureDependentTests(tests);
        }
        /// <summary>
        /// Colllects log data.
        /// </summary>
        /// <returns></returns>
        private Data.TestLogFull GetFullTestData()
        {
            Data.TestLogFull testLog = new TestLogFull();
            Data.TestLog     log     = ContextController.GetTestLog();
            testLog.TestResults           = log.TestResults;
            testLog.Features              = log.Features;
            testLog.InitializationData    = log.InitializationData;
            testLog.FeaturesDefinitionLog = log.FeaturesDefinitionLog;

            testLog.DeviceInformation = _conformanceTestingInfo;

            if (log.TestExecutionTime != DateTime.MinValue)
            {
                testLog.TestExecutionTime = log.TestExecutionTime;
            }
            else
            {
                testLog.TestExecutionTime = DateTime.Now;
            }

            SetupInfo info = ContextController.GetSetupInfo();

            testLog.TesterInfo        = info.TesterInfo;
            testLog.Application       = ContextController.GetApplicationInfo();
            testLog.ProductName       = info.DevInfo.ProductName;
            testLog.ProductTypes      = info.DevInfo.ProductTypes;
            testLog.ProductTypesOther = info.DevInfo.ProductTypesOther;
            testLog.OtherInformation  = info.OtherInfo;
            testLog.MemberInfo        = info.MemberInfo;
            testLog.SupportInfo       = info.SupportInfo;

            testLog.ManagementSettings = ContextController.GetManagementSettings();
            testLog.DeviceEnvironment  = ContextController.GetDeviceEnvironment();
            testLog.Timeouts           = log.Timeouts;
            return(testLog);
        }
        /// <summary>
        /// Adds "wsse:security" element to a message, or replaces existing element.
        /// </summary>
        /// <param name="request">Request string.</param>
        /// <returns>Request string with added (updated) "wsse:security" element.</returns>
        public string ApplySecurity(string request)
        {
            DeviceEnvironment env = ContextController.GetDeviceEnvironment();

            string secureRequest;

            if (!string.IsNullOrEmpty(env.Credentials.UserName))
            {
                SoapHelper soapHelper = new SoapHelper();
                secureRequest =
                    soapHelper.ApplySecurity(
                        request,
                        env.Credentials.UserName,
                        env.Credentials.Password,
                        env.Credentials.UseUTCTimeStamp,
                        true);
            }
            else
            {
                secureRequest = request;
            }

            return(secureRequest);
        }
        /// <summary>
        /// Updates application context
        /// </summary>
        public override void UpdateContext()
        {
            base.UpdateContext();
            TesterInfo testerInfo = new TesterInfo();

            testerInfo.Operator     = View.OperatorName;
            testerInfo.Organization = View.OrganizationName;
            testerInfo.Address      = View.OrganizationAddress;

            DeviceInfo deviceInfo = new DeviceInfo();

            deviceInfo.FirmwareVersion = View.FirmwareVersion;
            deviceInfo.Manufacturer    = View.Brand;
            deviceInfo.Model           = View.Model;
            deviceInfo.SerialNumber    = View.Serial;

            SetupInfo setupInfo = new SetupInfo();

            setupInfo.DevInfo    = deviceInfo;
            setupInfo.OtherInfo  = View.OtherInformation;
            setupInfo.TesterInfo = testerInfo;

            ContextController.UpdateSetupInfo(setupInfo);
        }