comprehensive update

1) remove unused components: camera view (due it causes segmentation faults), compute resources and all related, illuminator controller (due in useless without camera view), image storage service, temperature and humidity service
2) database schema - reduce tables references, features storing in records themselves in compressed form, add records creation and editing date and time, add separator comment column
3) analysis - rework of pipeline and ui, now database storing only raw data and all display values calculated from it
4) lights service - add reconnection if disconnected
5) add width and height command line arguments
6) fix some typos and other issues
This commit is contained in:
2026-06-29 15:13:29 +03:00
parent caee9fafd5
commit 72ae26eee7
74 changed files with 5219 additions and 4248 deletions
+18 -30
View File
@@ -28,22 +28,22 @@ public static class DependencyInjectionHelper
logging.AddProvider(new FileLoggerProvider("last_run.log", false));
return logging;
}
public static IServiceCollection AddTemperatureHumidityService(this IServiceCollection services, string section) => services
.AddSingleton(
serviceProvider =>
{
var configuration = serviceProvider.GetService<IConfiguration>();
if (configuration is null)
throw new Exception("Cannot get configuration");
var serviceConfiguration = configuration.GetSection(section).Get<TemperatureHumidityService.TemperatureHumidityServiceConfiguration>();
if (serviceConfiguration is null)
throw new InvalidConfigurationException($"Cannot get configuration {section}");
var logger = serviceProvider.GetService<ILogger<TemperatureHumidityService>>();
if (logger is null)
throw new Exception("Cannot get logger");
return new TemperatureHumidityService(logger, serviceConfiguration);
}
);
// public static IServiceCollection AddTemperatureHumidityService(this IServiceCollection services, string section) => services
// .AddSingleton(
// serviceProvider =>
// {
// var configuration = serviceProvider.GetService<IConfiguration>();
// if (configuration is null)
// throw new Exception("Cannot get configuration");
// var serviceConfiguration = configuration.GetSection(section).Get<TemperatureHumidityService.TemperatureHumidityServiceConfiguration>();
// if (serviceConfiguration is null)
// throw new InvalidConfigurationException($"Cannot get configuration {section}");
// var logger = serviceProvider.GetService<ILogger<TemperatureHumidityService>>();
// if (logger is null)
// throw new Exception("Cannot get logger");
// return new TemperatureHumidityService(logger, serviceConfiguration);
// }
// );
public static IServiceCollection AddLightsService(this IServiceCollection services, string section) => services
.AddSingleton(
serviceProvider =>
@@ -92,21 +92,9 @@ public static class DependencyInjectionHelper
return new CameraService(logger, serviceConfiguration, autoInitialize);
}
);
public static IServiceCollection AddComputeResourcesService(this IServiceCollection services) => services
.AddSingleton<ComputeResourcesService>();
[Obsolete]
public static IServiceCollection AddUsbService(this IServiceCollection services) => services
.AddSingleton<UsbService>();
public static IServiceCollection AddImageStorageService(this IServiceCollection services, DirectoryInfo rootDirectory) => services
.AddSingleton<ImageStorageService>(
serviceProvider =>
{
var logger = serviceProvider.GetService<ILogger<ImageStorageService>>();
if (logger is null)
throw new Exception("Cannot get logger");
return new ImageStorageService(logger, rootDirectory);
}
);
public static IServiceCollection AddAmineContentContext(this IServiceCollection services, IConfigurationManager configuration) => services
.AddDbContext<Context>(
@@ -121,9 +109,9 @@ public static class DependencyInjectionHelper
public static IServiceCollection AddAmineContentImageCapturerService(this IServiceCollection services, bool mock = false)
{
if (!mock)
return services.AddSingleton<ImageCapturerService>();
return services.AddSingleton<IImageCapturerService, ImageCapturerService>();
return services.AddSingleton<ImageCapturerMockService>(serviceProvider =>
return services.AddSingleton<IImageCapturerService, ImageCapturerMockService>(serviceProvider =>
{
var logger = serviceProvider.GetService<ILogger<ImageCapturerMockService>>();
if (logger is null)