public bool Start(SystemTraverser systemTraverser) { Setting = systemTraverser.AllSettings.FirstOrDefault(s => s.Path.Equals(SettingPath)); Setting_OnChange(Setting); return(_setting != null); }
public bool Start(SystemTraverser systemTraverser) { var Setting = systemTraverser.AllSettings.FirstOrDefault(s => s.Path.Equals(SettingPath)); Setting.Value = null; return(Setting != null); }
public bool Start(SystemTraverser systemTraverser) { if (String.IsNullOrEmpty(MeasurementPath) || string.IsNullOrEmpty(SettingPath)) { return(false); } Measurement = systemTraverser.AllMeasurements.FirstOrDefault(m => m.Path.Equals(MeasurementPath)); Setting = systemTraverser.AllSettings.FirstOrDefault(s => s.Path.Equals(SettingPath)); Measurement_OnChange(Measurement); return(_measurement != null && _setting != null); }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy(name: LocalhostOrigins, builder => { builder.WithOrigins("http://localhost:5000", "http://localhost:4200") .AllowAnyMethod() .AllowAnyHeader(); }); }); services.AddHostedMqttServer(mqttServerOptions => mqttServerOptions .WithDefaultEndpoint() .WithSubscriptionInterceptor(connectionInterceptor) .WithUnsubscriptionInterceptor(connectionInterceptor) .WithRetainedMessagesManager(RetainedMessagesManager) ) .AddMqttConnectionHandler(); services .AddConnections() .AddControllers((options) => { options.OutputFormatters.RemoveType <Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonOutputFormatter>(); options.OutputFormatters.Add(new Utf8JsonOutputFormatter()); options.InputFormatters.RemoveType <Microsoft.AspNetCore.Mvc.Formatters.SystemTextJsonInputFormatter>(); options.InputFormatters.Insert(0, new Utf8JsonInputFormatter()); }); sensorConfig.Load(); adjusterConfig.Load(); systemTraverser = new SystemTraverser(sensorConfig); foreach (IAdjuster adjuster in adjusterConfig.Adjusters) { adjuster.Start(systemTraverser); } services.AddSingleton <SystemTraverser>(systemTraverser); services.AddSingleton <AdjusterConfig>(adjusterConfig); services.AddSingleton <SensorConfig>(sensorConfig); }
public HardwareController(SystemTraverser traverser, SensorConfig sensorConfig) { this.traverser = traverser; this.sensorConfig = sensorConfig; }
static void Main(string[] args) { var optionsBuilder = new MqttServerOptionsBuilder() .WithConnectionBacklog(2) .WithDefaultEndpointPort(1883) .WithClientId("SystemMonitor"); mqttServer = new MqttFactory().CreateMqttServer(); mqttServer.StartAsync(optionsBuilder.Build()); Running = true; publisher = new Publisher(mqttServer); subscriber = new Subscriber(mqttServer); //var list = DeviceList.Local; //list.Changed += List_Changed; //list.RaiseChanged(); SystemTraverser systemTraverser = new SystemTraverser(); publisher.Register(systemTraverser); subscriber.Register(systemTraverser); Measurement cpuTemp = systemTraverser.AllMeasurements.Where(m => m.Path.Equals("amdcpu/0/temperature/6")).FirstOrDefault(); Measurement gpuTemp = systemTraverser.AllMeasurements.Where(m => m.Path.Equals("gpu/0/temperature/0")).FirstOrDefault(); Measurement liquidTemp = systemTraverser.AllMeasurements.Where(m => m.Path.Equals("nzxt/krakenx3/1A/temperature/0")).FirstOrDefault(); Setting radiatorFans = systemTraverser.AllSettings.Where(s => s.Path.Equals("lpc/it8688e/control/0/control")).FirstOrDefault(); Setting caseFans = systemTraverser.AllSettings.Where(s => s.Path.Equals("lpc/it8688e/control/2/control")).FirstOrDefault(); Setting pumpControl = systemTraverser.AllSettings.Where(s => s.Path.Equals("nzxt/krakenx3/1A/control/0/control")).FirstOrDefault(); Measurement[] loadStats = systemTraverser.AllMeasurements.Where(m => m.Path.StartsWith("amdcpu/0/load")).ToArray(); var radiatorFanController = new LinearAdjuster(liquidTemp, radiatorFans) { LowerValue = 35, UpperValue = 50, LowerTarget = 0, UpperTarget = 100 }; var pumpController = new LinearAdjuster(cpuTemp, pumpControl) { LowerValue = 50, UpperValue = 70, LowerTarget = 30, UpperTarget = 100 }; var caseFanController = new LinearAdjuster(gpuTemp, caseFans) { LowerValue = 60, UpperValue = 80, LowerTarget = 0, UpperTarget = 50 }; // caseFans.UpdateValue(pumpController, 100.0f); while (Running) { /* * ColorSpace[] values = new ColorSpace[16]; * * int sleeptime = (int)(loadStats.Select(m => (float)m.MeasurementValue).Average() * 2); * * Thread.Sleep(205 - sleeptime); * * for (int i = 0; i < 8; i++) * { * // hue = (hue + 1) % 360; * * var lead_color = new Hsl { H = hue, S = 1, L = 0.7 }; * var mid_color = new Hsl { H = hue, S = 1, L = 0.5 }; * var trail_color = new Hsl { H = hue, S = 1, L = 0.25 }; * * values[(j - 1) % 8] = trail_color; * values[j] = mid_color; * values[(j + 1) % 8] = lead_color; * } * // nzxtKrakenX3.RgbControl.UpdateValue(nzxtKrakenX3, values); * * j = ++j % 8; */ Thread.Yield(); //caseFans.UpdateValue(pumpController, 100.0f); Thread.Sleep(1000); // caseFans.UpdateValue(pumpController, 1.0f); //Thread.Sleep(1000); } }