forked from amkovkov/GranuSightSoftware2
refactor: hardware services
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
using System.Device.I2c;
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using GSS2.Core.Abstractions;
|
||||
|
||||
namespace GSS2.Core.Hardware;
|
||||
|
||||
public class TemperatureHumidityService : IDisposable
|
||||
{
|
||||
public class TemperatureHumidityServiceConfiguration
|
||||
public record TemperatureHumidityServiceConfiguration : ServiceConfigurationBase
|
||||
{
|
||||
public static TemperatureHumidityServiceConfiguration Default => new TemperatureHumidityServiceConfiguration
|
||||
{
|
||||
@@ -26,32 +29,27 @@ public class TemperatureHumidityService : IDisposable
|
||||
{
|
||||
_logger = logger;
|
||||
|
||||
_logger.LogInformation("Temperature and humidity sensor initialization");
|
||||
|
||||
if (configuration is null)
|
||||
{
|
||||
_logger.LogWarning("Temperature and humidity sensor configuration not set. Using default configuration.");
|
||||
_configuration = TemperatureHumidityServiceConfiguration.Default;
|
||||
}
|
||||
else
|
||||
{
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
_logger.LogDebug(@$"Temperature and humidity sensor use following configuration:
|
||||
Bus: {_configuration.Bus}
|
||||
Address: {_configuration.Address}
|
||||
");
|
||||
_logger.LogInformation("Initialization");
|
||||
|
||||
try
|
||||
{
|
||||
if (configuration is null)
|
||||
{
|
||||
configuration = TemperatureHumidityServiceConfiguration.Default;
|
||||
_logger.LogWarning("Configuration not set. Using default configuration.");
|
||||
}
|
||||
_configuration = configuration;
|
||||
_logger.LogInformation("Using following configuration: \n{}", _configuration.ToString("\n", 4));
|
||||
|
||||
_sensor = I2cDevice.Create(new I2cConnectionSettings(_configuration.Bus, _configuration.Address));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_logger.LogCritical(e, "An exception occurred while temperature and humidity sensor initialization");
|
||||
_logger.LogCritical(e, "An exception occurred while initialization");
|
||||
throw;
|
||||
}
|
||||
|
||||
_logger.LogInformation("Initialized");
|
||||
}
|
||||
|
||||
public (double temperature, double relativeHumidity) Measure(int measurementsCount = 1, bool checkCrc = true, CancellationToken cancellationToken = default)
|
||||
|
||||
Reference in New Issue
Block a user