diff --git a/XP.Hardware.Detector/Module/DetectorModule.cs b/XP.Hardware.Detector/Module/DetectorModule.cs index 002ddd0..dbbc255 100644 --- a/XP.Hardware.Detector/Module/DetectorModule.cs +++ b/XP.Hardware.Detector/Module/DetectorModule.cs @@ -1,8 +1,12 @@ using Prism.Ioc; using Prism.Modularity; +using System; using System.Resources; +using System.Threading.Tasks; +using System.Windows; using XP.Common.Localization; using XP.Common.Localization.Interfaces; +using XP.Common.Logging.Interfaces; using XP.Hardware.Detector.Factories; using XP.Hardware.Detector.Services; @@ -15,6 +19,8 @@ namespace XP.Hardware.Detector.Module [Module(ModuleName = "DetectorModule")] public class DetectorModule : IModule { + private ILoggerService _logger = null!; + /// /// 模块初始化 | Module initialization /// @@ -31,7 +37,56 @@ namespace XP.Hardware.Detector.Module // Initialize LocalizationHelper to use ILocalizationService for string lookup (supports Fallback Chain) LocalizationHelper.Initialize(localizationService); - System.Console.WriteLine("[DetectorModule] 模块已初始化 | Module initialized"); + // 获取日志服务 | Get logger service + _logger = containerProvider.Resolve().ForModule(); + + // 自动初始化探测器服务 | Auto-initialize detector service + var detectorService = containerProvider.Resolve(); + _ = InitializeDetectorAsync(detectorService); + + _logger.Info("模块已初始化 | Module initialized"); + } + + /// + /// 异步初始化探测器 | Async initialize detector + /// + private async Task InitializeDetectorAsync(IDetectorService detectorService) + { + try + { + _logger.Info("开始自动连接探测器 | Starting auto connection to detector"); + + // 初始化探测器 | Initialize detector + var initResult = await detectorService.InitializeAsync(); + if (!initResult.IsSuccess) + { + _logger.Error(initResult.Exception, $"探测器初始化失败 | Detector initialization failed: {initResult.ErrorMessage}"); + //MessageBox.Show($"探测器初始化失败:{initResult.ErrorMessage}", + // "错误 | Error", MessageBoxButton.OK, MessageBoxImage.Error); + return; + } + + _logger.Info("探测器连接成功 | Detector connected successfully"); + + // 启动连续采集 | Start continuous acquisition + var acquireResult = await detectorService.StartAcquisitionAsync(); + if (!acquireResult.IsSuccess) + { + _logger.Error(acquireResult.Exception, $"启动采集失败 | Start acquisition failed: {acquireResult.ErrorMessage}"); + MessageBox.Show($"启动采集失败:{acquireResult.ErrorMessage}", + "错误 | Error", MessageBoxButton.OK, MessageBoxImage.Error); + } + else + { + _logger.Info("连续采集已启动 | Continuous acquisition started"); + } + } + catch (Exception ex) + { + _logger.Error(ex, "自动初始化异常 | Auto initialization exception: {Message}", ex.Message); + MessageBox.Show($"自动初始化异常:{ex.Message}", + "错误 | Error", MessageBoxButton.OK, MessageBoxImage.Error); + } } /// @@ -47,8 +102,6 @@ namespace XP.Hardware.Detector.Module // 注册图像服务(Singleton)| Register image service (Singleton) containerRegistry.RegisterSingleton(); - - System.Console.WriteLine("[DetectorModule] 类型注册完成 | Type registration completed"); } } } diff --git a/XP.Hardware.Detector/Services/DetectorService.cs b/XP.Hardware.Detector/Services/DetectorService.cs index 8f8b159..6f0a564 100644 --- a/XP.Hardware.Detector/Services/DetectorService.cs +++ b/XP.Hardware.Detector/Services/DetectorService.cs @@ -570,6 +570,12 @@ namespace XP.Hardware.Detector.Services { if (disposing) { + // 停止采集(如果正在采集)| Stop acquisition if acquiring + StopAcquisitionAsync().GetAwaiter().GetResult(); + + // 断开探测器连接 | Disconnect detector + DisconnectAsync().GetAwaiter().GetResult(); + // 释放托管资源 | Release managed resources lock (_lock) { diff --git a/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json b/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json index a3e12f2..6861e9d 100644 --- a/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json +++ b/XP.Hardware.Detector/bin/Debug/net8.0-windows7.0/XP.Hardware.Detector.deps.json @@ -1705,7 +1705,10 @@ "Telerik.UI.for.Wpf.NetCore.Xaml": "2024.1.408" }, "runtime": { - "XP.Common.dll": {} + "XP.Common.dll": { + "assemblyVersion": "1.4.16.1", + "fileVersion": "1.4.16.1" + } }, "resources": { "en-US/XP.Common.resources.dll": {