using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using NucuCar.Sensors.Abstractions; using NucuCar.Sensors.Grpc; using NucuCar.Sensors.Modules.Environment; using NucuCar.Sensors.Modules.Health; using NucuCar.Sensors.Modules.Heartbeat; using NucuCar.Telemetry; namespace NucuCar.Sensors { public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.Configure(hostContext.Configuration.GetSection("Telemetry")); services.Configure(hostContext.Configuration.GetSection("EnvironmentSensor")); services.Configure(hostContext.Configuration.GetSection("HealthSensor")); services.Configure(hostContext.Configuration.GetSection("HeartbeatSensor")); // Singletons services.AddSingleton(); services.AddSingleton, Bme680Sensor>(); services.AddSingleton, CpuTempSensor>(); services.AddSingleton, HeartbeatSensor>(); // Workers // Telemetry services.AddHostedService(); // Sensors services.AddHostedService(); services.AddHostedService(); services.AddHostedService(); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); }); } }