diff --git a/GSS2.UI.Core/ViewModels/CameraViewModel.cs b/GSS2.UI.Core/ViewModels/CameraViewModel.cs index 14d3ac7..029f635 100644 --- a/GSS2.UI.Core/ViewModels/CameraViewModel.cs +++ b/GSS2.UI.Core/ViewModels/CameraViewModel.cs @@ -13,8 +13,9 @@ namespace GSS2.UI.Core.ViewModels; public partial class CameraViewModel : ViewModelBase, IDisposable { private bool _disposedValue; - private readonly CameraService _cameraService; + private readonly ILogger _logger; + private readonly CameraService _cameraService; private readonly System.Timers.Timer _renderTimer; public event EventHandler? RenderReqested; @@ -23,17 +24,20 @@ public partial class CameraViewModel : ViewModelBase, IDisposable [ObservableProperty] private Stretch _stretchMode = Stretch.Uniform; [ObservableProperty] private TileMode _tileMode = TileMode.None; - public CameraViewModel(CameraService cameraService, ILogger logger) + public CameraViewModel(ILogger logger, CameraService cameraService) { - _cameraService = cameraService; _logger = logger; + _logger.LogInformation("Initialization"); + + _cameraService = cameraService; _renderTimer = new System.Timers.Timer(33); _renderTimer.Elapsed += (_, _) => { if (!_cameraService.IsImageCapturing) RenderReqested?.Invoke(this, new EventArgs()); }; - _logger.LogInformation("{} initialized", nameof(CameraViewModel)); + + _logger.LogInformation("Initialized"); } public void StartViewFinder() diff --git a/GSS2.UI.Core/ViewModels/IlluminatorControllerViewModel.cs b/GSS2.UI.Core/ViewModels/IlluminatorControllerViewModel.cs index 32ee2a5..322c4f6 100644 --- a/GSS2.UI.Core/ViewModels/IlluminatorControllerViewModel.cs +++ b/GSS2.UI.Core/ViewModels/IlluminatorControllerViewModel.cs @@ -1,17 +1,17 @@ using Microsoft.Extensions.Logging; -using GSS2.Core.Hardware; - using CommunityToolkit.Mvvm.ComponentModel; using Avalonia.Layout; +using GSS2.Core.Hardware; + namespace GSS2.UI.Core.ViewModels; public partial class IlluminatorControllerViewModel : ViewModelBase { - private readonly IlluminatorService _illuminatorService; private readonly ILogger _logger; + private readonly IlluminatorService _illuminatorService; private bool _whiteIntencityChanging = false; private bool _uv365IntencityChanging = false; @@ -23,16 +23,19 @@ public partial class IlluminatorControllerViewModel : ViewModelBase [ObservableProperty] private bool _enabled; [ObservableProperty] Orientation _orientation; - public IlluminatorControllerViewModel(IlluminatorService illuminatorService, ILogger logger) + public IlluminatorControllerViewModel(ILogger logger, IlluminatorService illuminatorService) { - _illuminatorService = illuminatorService; _logger = logger; + _logger.LogInformation("Initialization"); + + _illuminatorService = illuminatorService; WhiteIntencity = 0; Uv365Intencity = 0; Uv254Intencity = 0; Orientation = Orientation.Horizontal; Enabled = false; + _logger.LogInformation("Initialized"); } diff --git a/GSS2.UI.Core/ViewModels/MainWindowViewModel.cs b/GSS2.UI.Core/ViewModels/MainWindowViewModel.cs new file mode 100644 index 0000000..f0b7196 --- /dev/null +++ b/GSS2.UI.Core/ViewModels/MainWindowViewModel.cs @@ -0,0 +1,22 @@ +using CommunityToolkit.Mvvm.ComponentModel; + +using Microsoft.Extensions.Logging; + +namespace GSS2.UI.Core.ViewModels; + +public partial class MainWindowViewModel : ViewModelBase +{ + private readonly ILogger _logger; + + [ObservableProperty] private string _title; + + public MainWindowViewModel(ILogger logger) + { + _logger = logger; + _logger.LogInformation("Initialization"); + + Title = "GranuSight Software 2"; + + _logger.LogInformation("Initialized"); + } +} \ No newline at end of file diff --git a/GSS2.UI.Core/ViewModels/ResourceBarViewModel.cs b/GSS2.UI.Core/ViewModels/ResourceBarViewModel.cs index 4f730ad..7a57c8c 100644 --- a/GSS2.UI.Core/ViewModels/ResourceBarViewModel.cs +++ b/GSS2.UI.Core/ViewModels/ResourceBarViewModel.cs @@ -1,23 +1,32 @@ using System.Collections.ObjectModel; -using Avalonia; - using CommunityToolkit.Mvvm.ComponentModel; +using Avalonia; + using LiveChartsCore; using LiveChartsCore.Defaults; using LiveChartsCore.SkiaSharpView; +using Microsoft.Extensions.Logging; + namespace GSS2.UI.Core.ViewModels; public partial class ResourceBarViewModel : ViewModelBase { + private readonly ILogger _logger; + [ObservableProperty] private ObservableCollection _series; [ObservableProperty] private Rect _bounds; - public ResourceBarViewModel(IEnumerable series) + public ResourceBarViewModel(ILogger logger, IEnumerable series) { + _logger = logger; + _logger.LogInformation("Initialization"); + Series = new ObservableCollection(series); + + _logger.LogInformation("Initialized"); } partial void OnBoundsChanged(Rect value) diff --git a/GSS2.UI.Core/ViewModels/ResourceChartViewModel.cs b/GSS2.UI.Core/ViewModels/ResourceChartViewModel.cs index af6f0bf..64f6776 100644 --- a/GSS2.UI.Core/ViewModels/ResourceChartViewModel.cs +++ b/GSS2.UI.Core/ViewModels/ResourceChartViewModel.cs @@ -1,9 +1,11 @@ using System.Collections.ObjectModel; -using Avalonia; +using Microsoft.Extensions.Logging; using CommunityToolkit.Mvvm.ComponentModel; +using Avalonia; + using LiveChartsCore; using LiveChartsCore.SkiaSharpView; @@ -11,16 +13,22 @@ namespace GSS2.UI.Core.ViewModels; public partial class ResourceChartViewModel : ViewModelBase { + private readonly ILogger _logger; [ObservableProperty] private ObservableCollection _series; [ObservableProperty] private ObservableCollection _yAxes; [ObservableProperty] private ObservableCollection _xAxes; [ObservableProperty] private Rect _bounds; - public ResourceChartViewModel(IEnumerable series, IEnumerable yAxes, IEnumerable xAxes) + public ResourceChartViewModel(ILogger logger, IEnumerable series, IEnumerable yAxes, IEnumerable xAxes) { + _logger = logger; + _logger.LogInformation("Initialization"); + Series = new ObservableCollection(series); YAxes = new ObservableCollection(yAxes); XAxes = new ObservableCollection(xAxes); + + _logger.LogInformation("Initialized"); } partial void OnBoundsChanged(Rect value) diff --git a/GSS2.UI.Core/ViewModels/ResourceCpuUsageBarsViewModel.cs b/GSS2.UI.Core/ViewModels/ResourceCpuUsageBarsViewModel.cs index 1b314a0..a0c74ef 100644 --- a/GSS2.UI.Core/ViewModels/ResourceCpuUsageBarsViewModel.cs +++ b/GSS2.UI.Core/ViewModels/ResourceCpuUsageBarsViewModel.cs @@ -1,27 +1,42 @@ -using Avalonia; +using Microsoft.Extensions.Logging; using CommunityToolkit.Mvvm.ComponentModel; +using Avalonia; + namespace GSS2.UI.Core.ViewModels; public partial class ResourceCpuUsageBarsViewModel : ViewModelBase { + private readonly ILogger _logger; + [ObservableProperty] private Rect _bounds; [ObservableProperty] private bool _isCoresColumnVisible; - [ObservableProperty] private ResourceBarViewModel _cpu; [ObservableProperty] private ResourceBarViewModel _cpu0; [ObservableProperty] private ResourceBarViewModel _cpu1; [ObservableProperty] private ResourceBarViewModel _cpu2; [ObservableProperty] private ResourceBarViewModel _cpu3; - public ResourceCpuUsageBarsViewModel(ResourceBarViewModel cpu, ResourceBarViewModel cpu0, ResourceBarViewModel cpu1, ResourceBarViewModel cpu2, ResourceBarViewModel cpu3) + public ResourceCpuUsageBarsViewModel( + ILogger logger, + ResourceBarViewModel cpu, + ResourceBarViewModel cpu0, + ResourceBarViewModel cpu1, + ResourceBarViewModel cpu2, + ResourceBarViewModel cpu3 + ) { + _logger = logger; + _logger.LogInformation("Initialized"); + Cpu = cpu; Cpu0 = cpu0; Cpu1 = cpu1; Cpu2 = cpu2; Cpu3 = cpu3; + + _logger.LogInformation("Initialized"); } partial void OnBoundsChanged(Rect value) diff --git a/GSS2.UI.Core/ViewModels/ResourcesViewModel.cs b/GSS2.UI.Core/ViewModels/ResourcesViewModel.cs index c05f672..765639d 100644 --- a/GSS2.UI.Core/ViewModels/ResourcesViewModel.cs +++ b/GSS2.UI.Core/ViewModels/ResourcesViewModel.cs @@ -4,6 +4,7 @@ using Microsoft.Extensions.Logging; using CommunityToolkit.Mvvm.ComponentModel; +using Avalonia; using Avalonia.Threading; using SkiaSharp; @@ -13,13 +14,13 @@ using LiveChartsCore.SkiaSharpView.Painting; using LiveChartsCore.Defaults; using GSS2.Core.Hardware; -using Avalonia; namespace GSS2.UI.Core.ViewModels; public partial class ResourcesViewModel : ViewModelBase, IDisposable { private bool _disposedValue; + private readonly ComputeResourcesService _computeResourcesService; private readonly ILogger _logger; private readonly int _intervalMs = 500; @@ -29,26 +30,38 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable [ObservableProperty] private Rect _bounds; [ObservableProperty] private bool _isChartsColumnVisible; [ObservableProperty] private bool _isBarsColumnVisible; - [ObservableProperty] private ResourceChartViewModel _cpuUsageChartViewModel; [ObservableProperty] private ResourceChartViewModel _cpuTemperatureChartViewModel; [ObservableProperty] private ResourceChartViewModel _memoryUsageChartViewModel; - [ObservableProperty] private ResourceCpuUsageBarsViewModel _cpuUsageBarsViewModel; [ObservableProperty] private ResourceBarViewModel _cpuTemperatureBarViewModel; [ObservableProperty] private ResourceBarViewModel _memoryUsageBarViewModel; - public ResourcesViewModel(ComputeResourcesService computeResourcesService, ILogger logger) + public ResourcesViewModel( + ILogger logger, + ILogger resourceCpuUsageBarsViewModelLogger, + ILogger resourceChartViewModelCpuUsageLogger, + ILogger resourceChartViewModelCpuTemperatureLogger, + ILogger resourceChartViewModelMemoryUsageLogger, + ILogger resourceBarViewModelCpuUsageLogger, + ILogger resourceBarViewModelCpu0UsageLogger, + ILogger resourceBarViewModelCpu1UsageLogger, + ILogger resourceBarViewModelCpu2UsageLogger, + ILogger resourceBarViewModelCpu3UsageLogger, + ILogger resourceBarViewModelCpuTemperatureLogger, + ILogger resourceBarViewModelMemoryUsageLogger, + ComputeResourcesService computeResourcesService + ) { _logger = logger; - _logger.LogInformation("Initialization"); _computeResourcesService = computeResourcesService; - ResourceChartViewModel CreateChartViewModel(string name, double minLimit, double maxLimit, double minStep) + ResourceChartViewModel CreateChartViewModel(ILogger logger, string name, double minLimit, double maxLimit, double minStep) { return new ResourceChartViewModel( + logger: logger, series: [ new LineSeries @@ -85,9 +98,10 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable ] ); } - ResourceBarViewModel CreateBarViewModel(Func, string> formater) + ResourceBarViewModel CreateBarViewModel(ILogger logger, Func, string> formater) { return new ResourceBarViewModel( + logger: logger, series: [ new PieSeries @@ -113,19 +127,20 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable ); } - CpuUsageChartViewModel = CreateChartViewModel("Нагрузка ЦПУ, %", 0, 100, 10); - CpuTemperatureChartViewModel = CreateChartViewModel("Температура ЦПУ, ℃", 0, 100, 10); - MemoryUsageChartViewModel = CreateChartViewModel("Нагрузка ОЗУ, МБ", 0, 8000, 1000); + CpuUsageChartViewModel = CreateChartViewModel(resourceChartViewModelCpuUsageLogger, "Нагрузка ЦПУ, %", 0, 100, 10); + CpuTemperatureChartViewModel = CreateChartViewModel(resourceChartViewModelCpuTemperatureLogger, "Температура ЦПУ, ℃", 0, 100, 10); + MemoryUsageChartViewModel = CreateChartViewModel(resourceChartViewModelMemoryUsageLogger, "Нагрузка ОЗУ, МБ", 0, 8000, 1000); CpuUsageBarsViewModel = new ResourceCpuUsageBarsViewModel( - CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"), - CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"), - CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"), - CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"), - CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %") + resourceCpuUsageBarsViewModelLogger, + CreateBarViewModel(resourceBarViewModelCpuUsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"), + CreateBarViewModel(resourceBarViewModelCpu0UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"), + CreateBarViewModel(resourceBarViewModelCpu1UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"), + CreateBarViewModel(resourceBarViewModelCpu2UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"), + CreateBarViewModel(resourceBarViewModelCpu3UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %") ); - CpuTemperatureBarViewModel = CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} ℃"); - MemoryUsageBarViewModel = CreateBarViewModel(value => $"{value.Model?.Value?.ToString("000.00")} МБ"); + CpuTemperatureBarViewModel = CreateBarViewModel(resourceBarViewModelCpuTemperatureLogger, value => $"{value.Model?.Value?.ToString("00.00")} ℃"); + MemoryUsageBarViewModel = CreateBarViewModel(resourceBarViewModelMemoryUsageLogger, value => $"{value.Model?.Value?.ToString("000.00")} МБ"); Update();