using System.Device.I2c; using Microsoft.Extensions.Logging; using GSS2.Core.Abstractions; using System.Diagnostics; namespace GSS2.Core.Hardware; [Obsolete("Not implemented")] public class UsbService : IDisposable { private bool _disposedValue; private readonly ILogger _logger; private readonly Process _monitor; public UsbService(ILogger logger) { _logger = logger; _logger.LogInformation("Инициализация"); _monitor = new Process(); _monitor.StartInfo = new ProcessStartInfo() { FileName = "udisksctl", Arguments = "monitor", RedirectStandardOutput = true, RedirectStandardError = true }; _monitor.OutputDataReceived += MonitorDataReceived; _monitor.ErrorDataReceived += MonitorDataReceived; _monitor.Exited += (s, ea) => _logger.LogWarning("Монитор udisksctl отключен"); if (_monitor.Start()) _logger.LogInformation("Монитор udisksctl запущен"); else _logger.LogError("Не удалось запустить монитор udisksctl"); _monitor.BeginOutputReadLine(); _monitor.BeginErrorReadLine(); _logger.LogInformation("Инициализировано"); } private void MonitorDataReceived(object sender, DataReceivedEventArgs ea) { if (ea.Data is null) return; _logger.LogInformation("Data rec {}", ea.Data); } protected virtual void Dispose(bool disposing) { if (!_disposedValue) { if (disposing) { try { _monitor.Close(); } catch { } } _disposedValue = true; } } void IDisposable.Dispose() { Dispose(disposing: true); GC.SuppressFinalize(this); } }