新增软件启动后立即连接探测器,连接后主动连续采集。
This commit is contained in:
@@ -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!;
|
||||
|
||||
/// <summary>
|
||||
/// 模块初始化 | Module initialization
|
||||
/// </summary>
|
||||
@@ -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<ILoggerService>().ForModule<DetectorModule>();
|
||||
|
||||
// 自动初始化探测器服务 | Auto-initialize detector service
|
||||
var detectorService = containerProvider.Resolve<IDetectorService>();
|
||||
_ = InitializeDetectorAsync(detectorService);
|
||||
|
||||
_logger.Info("模块已初始化 | Module initialized");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步初始化探测器 | Async initialize detector
|
||||
/// </summary>
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -47,8 +102,6 @@ namespace XP.Hardware.Detector.Module
|
||||
|
||||
// 注册图像服务(Singleton)| Register image service (Singleton)
|
||||
containerRegistry.RegisterSingleton<IImageService, ImageService>();
|
||||
|
||||
System.Console.WriteLine("[DetectorModule] 类型注册完成 | Type registration completed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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": {
|
||||
|
||||
Reference in New Issue
Block a user