private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            // texts
            if (_caption != null)
            {
                this.LabelCaption.Content = _caption;
            }

            // dialogue width
            if (_maxWidth.HasValue && _maxWidth.Value > 200)
            {
                OuterGrid.MaxWidth = _maxWidth.Value;
            }

            // start page
            if (_location != null)
            {
                TextBoxStartLocation.Text = _location;
            }
            if (_presets != null)
            {
                ComboBoxPresets.Items.Clear();
                foreach (var pi in _presets)
                {
                    ComboBoxPresets.Items.Add("" + pi?.Name);
                }
            }

            // focus
            this.TextBoxStartLocation.Focus();
            this.TextBoxStartLocation.Select(0, 999);
            FocusManager.SetFocusedElement(this, this.TextBoxStartLocation);

            // timer
            var timer = new System.Windows.Threading.DispatcherTimer();

            timer.Interval = new TimeSpan(0, 0, 0, 0, 100);
            timer.Start();
            timer.Tick += (object sender2, EventArgs e2) =>
            {
                var msg = _logger?.PopLastShortTermPrint();
                while (msg != null)
                {
                    Log.Singleton.Append(msg);
                    this.LogMessage(msg);
                    msg = _logger?.PopLastShortTermPrint();
                }
            };
        }
示例#2
0
        static void Main(string[] args)
        {
            // start
            Console.Error.WriteLine(
                "AAS OPC UA Server. (c) 2019 Michael Hoffmeister, Festo AG & Co. KG. See LICENSE.TXT.");

            // arguments
            var options = new AasOpcUaServer.AasxUaServerOptions();

            options.ParseArgs(args);

            // load aasx
            if (options.AasxToLoad == null)
            {
                Console.Error.WriteLine("No .aasx-file to load given. Exiting!");
                return;
            }
            Console.Error.WriteLine($"loading: {options.AasxToLoad} ..");
            var env = new AdminShellPackageEnv(options.AasxToLoad);

            // ReSharper disable HeuristicUnreachableCode
            // ReSharper disable once ConditionIsAlwaysTrueOrFalse
            if (env == null)
            {
                Console.Error.WriteLine($"Cannot open {options.AasxToLoad}. Aborting..");
            }

            // configure UA here a little bit
            ApplicationInstance.MessageDlg = new ApplicationMessageDlg();

            // logger
            var logger = new LogInstance();

            // start
            Console.WriteLine("Starting server ...");
            Console.WriteLine("Press 'x' to exit.");
            UaServerWrapper server = new UaServerWrapper(_autoAccept: true, _stopTimeout: 0, _aasxEnv: env,
                                                         logger: logger, _serverOptions: options);

            server.Run();

            // loop
            while (true)
            {
                StoredPrint sp;
                while ((sp = logger.PopLastShortTermPrint()) != null)
                {
                    Console.WriteLine(sp.ToString());
                }

                Thread.Sleep(10);

                if (Console.KeyAvailable)
                {
                    var cki = Console.ReadKey(true);
                    if (cki.Key == ConsoleKey.X)
                    {
                        Console.WriteLine("Stopping initiated ...");
                        break;
                    }
                }
            }

            // stop
            server.Stop();
        }