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": {