# HG changeset patch # User moel.mich # Date 1377458015 0 # Node ID 0fe7d6e91094fc42c26bb5b240b20a877cf6f809 # Parent 055a9ec117d214414d24ca2d8b56086f2be6508d Added a configurable logging interval. diff -r 055a9ec117d2 -r 0fe7d6e91094 GUI/MainForm.Designer.cs --- a/GUI/MainForm.Designer.cs Sun Aug 18 21:44:08 2013 +0000 +++ b/GUI/MainForm.Designer.cs Sun Aug 25 19:13:35 2013 +0000 @@ -88,6 +88,7 @@ this.webMenuItem = new System.Windows.Forms.MenuItem(); this.runWebServerMenuItem = new System.Windows.Forms.MenuItem(); this.serverPortMenuItem = new System.Windows.Forms.MenuItem(); + this.logSensorsMenuItem = new System.Windows.Forms.MenuItem(); this.helpMenuItem = new System.Windows.Forms.MenuItem(); this.aboutMenuItem = new System.Windows.Forms.MenuItem(); this.treeContextMenu = new System.Windows.Forms.ContextMenu(); @@ -95,7 +96,21 @@ this.timer = new System.Windows.Forms.Timer(this.components); this.splitContainer = new OpenHardwareMonitor.GUI.SplitContainerAdv(); this.treeView = new Aga.Controls.Tree.TreeViewAdv(); - this.logSensorsMenuItem = new System.Windows.Forms.MenuItem(); + this.logSeparatorMenuItem = new System.Windows.Forms.MenuItem(); + this.loggingIntervalMenuItem = new System.Windows.Forms.MenuItem(); + this.log1sMenuItem = new System.Windows.Forms.MenuItem(); + this.log5sMenuItem = new System.Windows.Forms.MenuItem(); + this.log10sMenuItem = new System.Windows.Forms.MenuItem(); + this.log30sMenuItem = new System.Windows.Forms.MenuItem(); + this.log1minMenuItem = new System.Windows.Forms.MenuItem(); + this.log5minMenuItem = new System.Windows.Forms.MenuItem(); + this.log10minMenuItem = new System.Windows.Forms.MenuItem(); + this.log30minMenuItem = new System.Windows.Forms.MenuItem(); + this.log2sMenuItem = new System.Windows.Forms.MenuItem(); + this.log2minMenuItem = new System.Windows.Forms.MenuItem(); + this.log1hMenuItem = new System.Windows.Forms.MenuItem(); + this.log2hMenuItem = new System.Windows.Forms.MenuItem(); + this.log6hMenuItem = new System.Windows.Forms.MenuItem(); this.splitContainer.Panel1.SuspendLayout(); this.splitContainer.SuspendLayout(); this.SuspendLayout(); @@ -355,9 +370,11 @@ this.separatorMenuItem, this.temperatureUnitsMenuItem, this.plotLocationMenuItem, + this.logSeparatorMenuItem, + this.logSensorsMenuItem, + this.loggingIntervalMenuItem, this.webMenuItemSeparator, - this.webMenuItem, - this.logSensorsMenuItem}); + this.webMenuItem}); this.optionsMenuItem.Text = "Options"; // // startMinMenuItem @@ -436,12 +453,12 @@ // // webMenuItemSeparator // - this.webMenuItemSeparator.Index = 7; + this.webMenuItemSeparator.Index = 10; this.webMenuItemSeparator.Text = "-"; // // webMenuItem // - this.webMenuItem.Index = 8; + this.webMenuItem.Index = 11; this.webMenuItem.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.runWebServerMenuItem, this.serverPortMenuItem}); @@ -458,6 +475,11 @@ this.serverPortMenuItem.Text = "Port"; this.serverPortMenuItem.Click += new System.EventHandler(this.serverPortMenuItem_Click); // + // logSensorsMenuItem + // + this.logSensorsMenuItem.Index = 8; + this.logSensorsMenuItem.Text = "Log Sensors"; + // // helpMenuItem // this.helpMenuItem.Index = 3; @@ -539,10 +561,107 @@ this.treeView.MouseMove += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseMove); this.treeView.MouseUp += new System.Windows.Forms.MouseEventHandler(this.treeView_MouseUp); // - // logSensorsMenuItem + // logSeparatorMenuItem // - this.logSensorsMenuItem.Index = 9; - this.logSensorsMenuItem.Text = "Log Sensors"; + this.logSeparatorMenuItem.Index = 7; + this.logSeparatorMenuItem.Text = "-"; + // + // loggingIntervalMenuItem + // + this.loggingIntervalMenuItem.Index = 9; + this.loggingIntervalMenuItem.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { + this.log1sMenuItem, + this.log2sMenuItem, + this.log5sMenuItem, + this.log10sMenuItem, + this.log30sMenuItem, + this.log1minMenuItem, + this.log2minMenuItem, + this.log5minMenuItem, + this.log10minMenuItem, + this.log30minMenuItem, + this.log1hMenuItem, + this.log2hMenuItem, + this.log6hMenuItem}); + this.loggingIntervalMenuItem.Text = "Logging Interval"; + // + // log1sMenuItem + // + this.log1sMenuItem.Index = 0; + this.log1sMenuItem.RadioCheck = true; + this.log1sMenuItem.Text = "1s"; + // + // log5sMenuItem + // + this.log5sMenuItem.Index = 2; + this.log5sMenuItem.RadioCheck = true; + this.log5sMenuItem.Text = "5s"; + // + // log10sMenuItem + // + this.log10sMenuItem.Index = 3; + this.log10sMenuItem.RadioCheck = true; + this.log10sMenuItem.Text = "10s"; + // + // log30sMenuItem + // + this.log30sMenuItem.Index = 4; + this.log30sMenuItem.RadioCheck = true; + this.log30sMenuItem.Text = "30s"; + // + // log1minMenuItem + // + this.log1minMenuItem.Index = 5; + this.log1minMenuItem.RadioCheck = true; + this.log1minMenuItem.Text = "1min"; + // + // log5minMenuItem + // + this.log5minMenuItem.Index = 7; + this.log5minMenuItem.RadioCheck = true; + this.log5minMenuItem.Text = "5min"; + // + // log10minMenuItem + // + this.log10minMenuItem.Index = 8; + this.log10minMenuItem.RadioCheck = true; + this.log10minMenuItem.Text = "10min"; + // + // log30minMenuItem + // + this.log30minMenuItem.Index = 9; + this.log30minMenuItem.RadioCheck = true; + this.log30minMenuItem.Text = "30min"; + // + // log2sMenuItem + // + this.log2sMenuItem.Index = 1; + this.log2sMenuItem.RadioCheck = true; + this.log2sMenuItem.Text = "2s"; + // + // log2minMenuItem + // + this.log2minMenuItem.Index = 6; + this.log2minMenuItem.RadioCheck = true; + this.log2minMenuItem.Text = "2min"; + // + // log1hMenuItem + // + this.log1hMenuItem.Index = 10; + this.log1hMenuItem.RadioCheck = true; + this.log1hMenuItem.Text = "1h"; + // + // log2hMenuItem + // + this.log2hMenuItem.Index = 11; + this.log2hMenuItem.RadioCheck = true; + this.log2hMenuItem.Text = "2h"; + // + // log6hMenuItem + // + this.log6hMenuItem.Index = 12; + this.log6hMenuItem.RadioCheck = true; + this.log6hMenuItem.Text = "6h"; // // MainForm // @@ -628,6 +747,21 @@ private System.Windows.Forms.MenuItem fanControllerMenuItem; private System.Windows.Forms.MenuItem ramMenuItem; private System.Windows.Forms.MenuItem logSensorsMenuItem; + private System.Windows.Forms.MenuItem logSeparatorMenuItem; + private System.Windows.Forms.MenuItem loggingIntervalMenuItem; + private System.Windows.Forms.MenuItem log1sMenuItem; + private System.Windows.Forms.MenuItem log2sMenuItem; + private System.Windows.Forms.MenuItem log5sMenuItem; + private System.Windows.Forms.MenuItem log10sMenuItem; + private System.Windows.Forms.MenuItem log30sMenuItem; + private System.Windows.Forms.MenuItem log1minMenuItem; + private System.Windows.Forms.MenuItem log2minMenuItem; + private System.Windows.Forms.MenuItem log5minMenuItem; + private System.Windows.Forms.MenuItem log10minMenuItem; + private System.Windows.Forms.MenuItem log30minMenuItem; + private System.Windows.Forms.MenuItem log1hMenuItem; + private System.Windows.Forms.MenuItem log2hMenuItem; + private System.Windows.Forms.MenuItem log6hMenuItem; } } diff -r 055a9ec117d2 -r 0fe7d6e91094 GUI/MainForm.cs --- a/GUI/MainForm.cs Sun Aug 18 21:44:08 2013 +0000 +++ b/GUI/MainForm.cs Sun Aug 25 19:13:35 2013 +0000 @@ -67,6 +67,7 @@ private HttpServer server; private UserOption logSensors; + private UserRadioGroup loggingInterval; private Logger logger; private bool selectionDragging = false; @@ -283,7 +284,31 @@ }; logSensors = new UserOption("logSensorsMenuItem", false, logSensorsMenuItem, - settings); + settings); + + loggingInterval = new UserRadioGroup("loggingInterval", 0, + new[] { log1sMenuItem, log2sMenuItem, log5sMenuItem, log10sMenuItem, + log30sMenuItem, log1minMenuItem, log2minMenuItem, log5minMenuItem, + log10minMenuItem, log30minMenuItem, log1hMenuItem, log2hMenuItem, + log6hMenuItem}, + settings); + loggingInterval.Changed += (sender, e) => { + switch (loggingInterval.Value) { + case 0: logger.LoggingInterval = new TimeSpan(0, 0, 1); break; + case 1: logger.LoggingInterval = new TimeSpan(0, 0, 2); break; + case 2: logger.LoggingInterval = new TimeSpan(0, 0, 5); break; + case 3: logger.LoggingInterval = new TimeSpan(0, 0, 10); break; + case 4: logger.LoggingInterval = new TimeSpan(0, 0, 30); break; + case 5: logger.LoggingInterval = new TimeSpan(0, 1, 0); break; + case 6: logger.LoggingInterval = new TimeSpan(0, 2, 0); break; + case 7: logger.LoggingInterval = new TimeSpan(0, 5, 0); break; + case 8: logger.LoggingInterval = new TimeSpan(0, 10, 0); break; + case 9: logger.LoggingInterval = new TimeSpan(0, 30, 0); break; + case 10: logger.LoggingInterval = new TimeSpan(1, 0, 0); break; + case 11: logger.LoggingInterval = new TimeSpan(2, 0, 0); break; + case 12: logger.LoggingInterval = new TimeSpan(6, 0, 0); break; + } + }; InitializePlotForm(); diff -r 055a9ec117d2 -r 0fe7d6e91094 Properties/AssemblyVersion.cs --- a/Properties/AssemblyVersion.cs Sun Aug 18 21:44:08 2013 +0000 +++ b/Properties/AssemblyVersion.cs Sun Aug 25 19:13:35 2013 +0000 @@ -10,5 +10,5 @@ using System.Reflection; -[assembly: AssemblyVersion("0.6.0.9")] -[assembly: AssemblyInformationalVersion("0.6.0.9 Alpha")] \ No newline at end of file +[assembly: AssemblyVersion("0.6.0.10")] +[assembly: AssemblyInformationalVersion("0.6.0.10 Alpha")] \ No newline at end of file diff -r 055a9ec117d2 -r 0fe7d6e91094 Utilities/Logger.cs --- a/Utilities/Logger.cs Sun Aug 18 21:44:08 2013 +0000 +++ b/Utilities/Logger.cs Sun Aug 25 19:13:35 2013 +0000 @@ -28,10 +28,12 @@ private string[] identifiers; private ISensor[] sensors; + private DateTime lastLoggedTime = DateTime.MinValue; + public Logger(IComputer computer) { this.computer = computer; this.computer.HardwareAdded += HardwareAdded; - this.computer.HardwareRemoved += HardwareRemoved; + this.computer.HardwareRemoved += HardwareRemoved; } private void HardwareRemoved(IHardware hardware) { @@ -142,8 +144,14 @@ } } - public void Log() { + public TimeSpan LoggingInterval { get; set; } + + public void Log() { var now = DateTime.Now; + + if (lastLoggedTime + LoggingInterval - new TimeSpan(5000000) > now) + return; + if (day != now.Date || !File.Exists(fileName)) { day = now.Date; fileName = GetFileName(day); @@ -171,6 +179,8 @@ } } } catch (IOException) { } + + lastLoggedTime = now; } } }