Exemplo n.º 1
0
        /// <summary>
        /// Creates instance of <see cref="Logger"/>
        /// </summary>
        /// <param name="inFile">If true then log to file, otherwise to console</param>
        /// <param name="debugOn">If true then displan log messages</param>
        private Logger(bool inFile, bool debugOn)
        {
            this.File  = inFile;
            this.Debug = debugOn;
            this.From  = "Logger";

            this.Verbosity = LoggerVerbosity.Detailed;

            wnd = null;
            sW  = null;

            bufferLines = new string[5];

            if (this.File == false && this.Debug == true)
            {
                wnd = new LoggerWindow();
                wnd.Show();
                sW = null;
            }
            else if (this.File == true && this.Debug == true)
            {
                sW  = new StreamWriter("log.txt", true);
                wnd = null;
            }

            this.Log("Logger", "created.");

            args = new LoggerEventArgs(bufferLines.Length);
        }
Exemplo n.º 2
0
        public static Element FindElementFromString(string elementName)
        {
            switch (elementName)
            {
            case "Li": return(StaticElementHolder.Lithium);

            case "K":  return(StaticElementHolder.Potassium);

            case "Na": return(StaticElementHolder.Sodium);

            case "B":  return(StaticElementHolder.Boron);

            case "Ar": return(StaticElementHolder.Argon);

            case "He": return(StaticElementHolder.Helium);

            case "Ne": return(StaticElementHolder.Neon);

            case "C":  return(StaticElementHolder.Carbon);

            case "H":  return(StaticElementHolder.Hydrogen);

            case "Al": return(StaticElementHolder.Aluminium);

            case "Fe": return(StaticElementHolder.Iron);

            case "U": return(StaticElementHolder.Uranium);
            }
            if (!LoggerWindow.WindowVisible)
            {
                LoggerWindow.ShowWindow();
            }
            LoggerWindow.AddError("Couldn't find element", elementName);
            return(null);
        }
Exemplo n.º 3
0
        public MainWindow()
        {
#if DEBUG
            System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = System.Diagnostics.SourceLevels.Critical;
            int tier = RenderCapability.Tier >> 16;
            Console.WriteLine("Tier:{0}", tier);
#endif
            InitializeComponent();
            LoggerWindow LoggerWindow = new LoggerWindow();
            Log.InfoFormat("MainWindow.");
        }
Exemplo n.º 4
0
        public override bool Run(StateProvider state)
        {
            log        = OpenWindow <LoggerWindow>().Rename("Info");
            properties = new List <string>();
            sorted     = new Dictionary <string, List <string> >();
            count      = 0;

            state.SetProgress(0);
            state.SetMaxProgress(files.Length);
            foreach (var file in from f in files where File.Exists(f) select new FileInfo(f))
            {
                ReadShader(file);

                state.AddProgress(1);
                state.SetStatus($"[{state.Progress}%] - Reading \"{file.Name}\"...");
            }

            state.SetMaxProgress(properties.Count);
            state.SetProgress(0);
            foreach (var prop in properties)
            {
                AddProperty(prop);
                state.AddProgress(1);
                state.SetStatus($"[{state.Progress}%] - Scanning...");
            }



            output = OpenWindow <LoggerWindow>().Rename("Output");

            state.SetMaxProgress(count);
            state.SetProgress(0);
            foreach (var group in sorted)
            {
                output.WriteLine(string.Format($"=== {group.Key} ==={nl}"));

                foreach (var prop in group.Value.OrderBy(s => s))
                {
                    output.WriteLine(prop);
                    state.AddProgress(1);
                    state.SetStatus($"[{state.Progress}%] - Displaying...");
                }

                output.WriteLine($"{nl}{nl}");
            }

            state.SetStatus($"Done!");

            log.Dispose();

            return(true);
        }
 public static ElementGroup FindElementGroupFromString(string group)
 {
     switch (group)
     {
     case "AlkaliMetal": return(StaticElementGroupHolder.AlkaliMetal);
     }
     if (!LoggerWindow.WindowVisible)
     {
         LoggerWindow.ShowWindow();
     }
     LoggerWindow.AddError("Couldn't find group", group);
     return(null);
 }
        public override void CreateLogger(LoggerConfig config)
        {
            if (CreateUI == false)
            {
                return;
            }

            //Conversion info
            //Logger uses an ItemsControl which does't support grouping
            //I was unable to get ItemsControl to utilise CollectionViewSource correctly so have hacked the stream filtering
            //this behaviour is different to the WPF logger.

            _loggerConfig = config;

            _loggerWindowViewModel = new LoggerWindowViewModel();
            _loggerWindowViewModel.StreamChanged += (sender, args) =>
            {
                _loggerWindow.LogListBox.ItemsSource = _loggerWindowViewModel.VisibleLogItems;
                OnStreamChanged(new StreamChangedEventArgs(args.Name, args.Enabled));
            };

            //_filteredView = CollectionViewSource.GetDefaultView(_loggerWindowViewModel.LogItems);
            //_filteredView.Filter = a => ((LoggerWindowViewModel.LogItem)a).Stream.Enabled;

            _loggerWindow = new LoggerWindow {
                DataContext = _loggerWindowViewModel, Padding = _windowPadding
            };
            _loggerWindow.SizeChanged += (sender, args) =>
            {
                _loggerConfig.Width  = _loggerWindow.ActualWidth;
                _loggerConfig.Height = _loggerWindow.ActualHeight;
            };

            //_loggerWindow.LogListBox.ItemsSource = _loggerWindowViewModel.VisibleLogItems;

            var loggerTemplate = new DataTemplate(typeof(LoggerWindowViewModel), parent =>
            {
                _loggerWindow.Parent = parent;
                return(_loggerWindow);
            });

            _gearsetUI.Resources.Add(loggerTemplate.DataTemplateKey, loggerTemplate);

            _loggerScrollViewer = _loggerWindow.ScrollViewer;

            InitialiseWindow(_loggerWindowViewModel, config.Top, config.Left, config.Width, config.Height, config.Visible);

            _widgetWindowViewModel.LoggerWindowVisible = config.Visible;
        }
Exemplo n.º 7
0
        public MainWindow()
        {
            InitializeComponent();
#if !DEBUG
            this.SettingWindowState(ConfigurationManager.AppSettings["WindowState"]);
#endif
            if (ConfigurationManager.AppSettings["UseLoggerWindow"] != null && Convert.ToBoolean(ConfigurationManager.AppSettings["UseLoggerWindow"]))
            {
                _ = new LoggerWindow();
            }

            #region AForge Capture Device Arguments
            CaptureDeviceName = ConfigurationManager.AppSettings["CaptureDeviceName"];
            String resolution = ConfigurationManager.AppSettings["CaptureDeviceResolution"];
            if (!String.IsNullOrWhiteSpace(resolution))
            {
                string[] arr = resolution.Split(',');
                if (arr.Length == 2)
                {
                    int width, height;
                    int.TryParse(arr[0], out width);
                    int.TryParse(arr[1], out height);
                    FrameSize = new System.Drawing.Size(width, height);
                }
            }
            String rectangle = ConfigurationManager.AppSettings["CaptureDeviceRectangle"];
            if (!String.IsNullOrWhiteSpace(rectangle))
            {
                string[] arr = rectangle.Split(',');
                if (arr.Length == 4)
                {
                    int x, y, width, height;
                    int.TryParse(arr[0], out x);
                    int.TryParse(arr[1], out y);
                    int.TryParse(arr[2], out width);
                    int.TryParse(arr[3], out height);
                    FrameRectangle = new Rectangle(x, y, width, height);
                }
            }

            Stretch stretch;
            if (Enum.TryParse <Stretch>(ConfigurationManager.AppSettings["CaptureImageStretch"], true, out stretch))
            {
                ImageCapture.Stretch = stretch;
            }
            #endregion

            #region Video Arguments
            if (ConfigurationManager.AppSettings["VideoPath"] != null)
            {
                string paths = ConfigurationManager.AppSettings["VideoPath"];
                if (!string.IsNullOrWhiteSpace(paths) || paths.ToLower().Trim() == "null")
                {
                    VideoIndex = 0;
                    VideoPaths = new List <string>(paths.Split(','));

                    MediaPlayer.Source = GetVideoSource();
                }

                if (Enum.TryParse <Stretch>(ConfigurationManager.AppSettings["VideoStretch"], true, out stretch))
                {
                    MediaPlayer.Stretch = stretch;
                }
            }
            #endregion

            #region HPSocket Arguments
            if (MediaPlayer.Source != null)
            {
                if (ConfigurationManager.AppSettings["ListenPort"] != null)
                {
                    ushort localPort;
                    if (ushort.TryParse(ConfigurationManager.AppSettings["ListenPort"], out localPort))
                    {
                        if (localPort >= 1024)
                        {
                            OnSocketInitialized(localPort);
                        }
                        else
                        {
                            Log.WarnFormat("禁用网络通信服务接口,端口参数设置不在范围:{0}", localPort);
                        }
                    }
                    else
                    {
                        Log.WarnFormat("启用网络通信服务接口失败,端口参数设置错误:{0}", ConfigurationManager.AppSettings["ListenPort"]);
                    }
                }
            }
            else
            {
                Log.Warn("无视频源,将不启动网络通信服务接口");
            }
            #endregion

            Log.Info("MainWindow Read Config Complete.");
        }
Exemplo n.º 8
0
        public override void CreateLogger(LoggerConfig config)
        {
            if (CreateUI == false)
            {
                return;
            }

            _loggerConfig = config;

            _loggerViewModel = new LoggerViewModel();
            _loggerViewModel.StreamChanged += (sender, args) =>
            {
                OnStreamChanged(new StreamChangedEventArgs(args.Name, args.Enabled));
            };

            _filteredView        = CollectionViewSource.GetDefaultView(_loggerViewModel.LogItems);
            _filteredView.Filter = a => ((LoggerViewModel.LogItem)a).Stream.Enabled;
            _filteredView.GroupDescriptions.Add(new PropertyGroupDescription("UpdateNumber"));

            _loggerWindow = new LoggerWindow
            {
                Top    = config.Top,
                Left   = config.Left,
                Width  = config.Width,
                Height = config.Height
            };
            _loggerWindow.StreamsListView.DataContext = _loggerViewModel.Streams;
            _loggerWindow.LogListView.DataContext     = _filteredView;

            _loggerWindow.SaveLogFile       += (sender, args) => { SaveLogToFile(); };
            _loggerWindow.EnableAllStreams  += (sender, args) => { _loggerViewModel.EnableAllStreams(); };
            _loggerWindow.DisableAllStreams += (sender, args) => { _loggerViewModel.DisableAllStreams(); };
            _loggerWindow.IsVisibleChanged  += (sender, args) => _loggerConfig.Visible = _loggerWindow.IsVisible;
            _loggerWindow.LocationChanged   += (sender, args) => _loggerLocationJustChanged = true;
            _loggerWindow.SizeChanged       += (sender, args) => _loggerLocationJustChanged = true;
            _loggerWindow.SoloRequested     += (sender, e) =>
            {
                foreach (var stream in _loggerViewModel.Streams)
                {
                    if (stream != e.StreamItem)
                    {
                        stream.Enabled = false;
                    }
                    else
                    {
                        stream.Enabled = true;
                    }
                }
            };

            if (_loggerConfig.Visible)
            {
                _loggerWindow.Show();
            }

            _windows.Add(_loggerWindow);

            _loggerScrollViewer = GetDescendantByType(_loggerWindow.LogListView, typeof(ScrollViewer)) as ScrollViewer;

            WindowHelper.EnsureOnScreen(_loggerWindow);
        }