using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using LibreHardwareMonitor.Hardware; namespace FanControl { internal class Program { public class UpdateVisitor : IVisitor { public void VisitComputer(IComputer computer) { computer.Traverse(this); } public void VisitHardware(IHardware hardware) { hardware.Update(); foreach (IHardware subHardware in hardware.SubHardware) subHardware.Accept(this); } public void VisitSensor(ISensor sensor) { } public void VisitParameter(IParameter parameter) { } } public static void Monitor() { Computer computer = new Computer { IsCpuEnabled = true, IsGpuEnabled = true, IsMemoryEnabled = true, IsMotherboardEnabled = true, IsControllerEnabled = true, IsNetworkEnabled = true, IsStorageEnabled = true }; computer.Open(); computer.Accept(new UpdateVisitor()); foreach (IHardware hardware in computer.Hardware) { Console.WriteLine("Hardware: {0}", hardware.Name); foreach (IHardware subhardware in hardware.SubHardware) { Console.WriteLine("\tSubhardware: {0}", subhardware.Name); foreach (ISensor sensor in subhardware.Sensors) { Console.WriteLine("\t\tSensor: {0}, value: {1}", sensor.Name, sensor.Value); } } foreach (ISensor sensor in hardware.Sensors) { Console.WriteLine("\tSensor: {0}, value: {1}", sensor.Name, sensor.Value); } } computer.Close(); } static void Main(string[] args) { // Monitor(); while (true) { Thread.Sleep(300); Vlv0100.SetFanControl(false); Vlv0100.SetFanDesiredRPM(6000); Console.WriteLine("Fan RPM: {0}", Vlv0100.GetFanRPM()); Console.WriteLine("Fan Desired RPM: {0}", Vlv0100.GetFanDesiredRPM()); } } } }