public TemperatureTargetedPowerMode() { _previousReading = new CPUReading(); _currentReading = new CPUReading(); _sensorCollection = CPUSensorsFactory.GetCPUZeroSensor(); _timer = new Timer(); _timer.Interval = 500; _timer.Tick += (sender, e) => { DoCycle(); _onTick(_currentReading.ProcessorState); }; }
private static TemperatureTargetedPowerMode ParseArgs(string[] args) { TemperatureTargetedPowerModeSettings settings = new TemperatureTargetedPowerModeSettings(); settings.TargetCPUTemperature = GetIntValue(args, ProgramArgs.TargetTemperature); settings.ProcessorStateSettings = new ProcessorStateSettings(GetIntValue(args, ProgramArgs.MinimumProcessorState), GetIntValue(args, ProgramArgs.MaximumProcessorState)); if (args.Contains(ProgramArgs.PowerTypeAc)) { settings.PowerWriteType = settings.PowerWriteType | PowerType.AC; } if (args.Contains(ProgramArgs.PowerTypeDc)) { settings.PowerWriteType = settings.PowerWriteType | PowerType.DC; } if (args.Contains(ProgramArgs.UseActivePowerScheme)) { settings.PowerScheme = new User32NativeWrapper().GetPowerSchemes().Where(powerScheme => powerScheme.IsActive()).SingleOrDefault(); } else if (args.Contains(ProgramArgs.PowerScheme)) { string powerSchemeValue = GetStringValue(args, ProgramArgs.PowerScheme); settings.PowerScheme = new User32NativeWrapper().GetPowerSchemes().Where(powerScheme => powerScheme.FriendlyName.Contains(powerSchemeValue)).SingleOrDefault(); if (settings.PowerScheme == null) { ShowUsage(); return(null); } } else { ShowUsage(); return(null); } if (args.Contains(ProgramArgs.CPUSensorIndex)) { int index = GetIntValue(args, ProgramArgs.CPUSensorIndex); IEnumerable <CPUSensorCollection> sensors = new CPUSensorsFactory().GetCPUSensors(); if ((index + 1) > sensors.Count()) { ShowUsage(); return(null); } settings.SensorCollection = new CPUSensorsFactory().GetCPUSensors().ElementAt(index); } else { settings.SensorCollection = new CPUSensorsFactory().GetCPUSensors().FirstOrDefault(); } return(new TemperatureTargetedPowerMode(settings)); }
private void SetupPeriodicInformationPanel() { _cpuSensorCollection = CPUSensorsFactory.GetCPUZeroSensor(); System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); timer.Interval = 500; timer.Tick += (sender, e) => { _cpuSensorCollection.PackageSensor.Hardware.Update(); cpuPackageTemperatureLabelValue.Text = _cpuSensorCollection.PackageSensor.Value + "C"; }; timer.Start(); }