forked from amkovkov/GranuSightSoftware2
75 lines
2.2 KiB
C#
75 lines
2.2 KiB
C#
using Microsoft.Extensions.Logging;
|
|
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
|
using Avalonia.Layout;
|
|
|
|
using GSS2.Core.Hardware;
|
|
|
|
namespace GSS2.UI.Core.ViewModels;
|
|
|
|
public partial class IlluminatorControllerViewModel : ViewModelBase
|
|
{
|
|
private readonly ILogger<IlluminatorControllerViewModel> _logger;
|
|
private readonly IlluminatorService _illuminatorService;
|
|
|
|
private bool _whiteIntensityChanging = false;
|
|
private bool _uv365IntensityChanging = false;
|
|
private bool _uv254IntensityChanging = false;
|
|
|
|
[ObservableProperty] private double _whiteIntensity;
|
|
[ObservableProperty] private double _uv365Intensity;
|
|
[ObservableProperty] private double _uv254Intensity;
|
|
[ObservableProperty] private bool _enabled;
|
|
[ObservableProperty] Orientation _orientation;
|
|
|
|
public IlluminatorControllerViewModel(ILogger<IlluminatorControllerViewModel> logger, IlluminatorService illuminatorService)
|
|
{
|
|
_logger = logger;
|
|
_logger.LogInformation("Initialization");
|
|
|
|
_illuminatorService = illuminatorService;
|
|
|
|
WhiteIntensity = 0;
|
|
Uv365Intensity = 0;
|
|
Uv254Intensity = 0;
|
|
Orientation = Orientation.Horizontal;
|
|
Enabled = false;
|
|
|
|
_logger.LogInformation("Initialized");
|
|
}
|
|
|
|
partial void OnWhiteIntensityChanged(double value)
|
|
{
|
|
if (_whiteIntensityChanging)
|
|
return;
|
|
_whiteIntensityChanging = true;
|
|
_illuminatorService.SetIntensity(white: value);
|
|
_whiteIntensityChanging = false;
|
|
}
|
|
partial void OnUv365IntensityChanged(double value)
|
|
{
|
|
if (_uv365IntensityChanging)
|
|
return;
|
|
_uv365IntensityChanging = true;
|
|
_illuminatorService.SetIntensity(uv365: value);
|
|
_uv365IntensityChanging = false;
|
|
}
|
|
partial void OnUv254IntensityChanged(double value)
|
|
{
|
|
if (_uv254IntensityChanging)
|
|
return;
|
|
_uv254IntensityChanging = true;
|
|
_illuminatorService.SetIntensity(uv254: value);
|
|
_uv254IntensityChanging = false;
|
|
}
|
|
|
|
partial void OnEnabledChanged(bool value)
|
|
{
|
|
if (value)
|
|
_illuminatorService.TurnOn();
|
|
else
|
|
_illuminatorService.TurnOff();
|
|
}
|
|
|
|
} |