/// <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); }
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); }
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."); }
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; }
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."); }
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); }