导航相机相关Log改为英文;添加一些图标

This commit is contained in:
李伟
2026-05-18 13:54:56 +08:00
parent 843c4d67a6
commit 9c639f27cd
5 changed files with 67 additions and 45 deletions
+26 -29
View File
@@ -166,12 +166,12 @@ namespace XplorePlane
{ {
var cameraVm = bootstrapper.Container.Resolve<NavigationPropertyPanelViewModel>(); var cameraVm = bootstrapper.Container.Resolve<NavigationPropertyPanelViewModel>();
cameraVm?.Dispose(); cameraVm?.Dispose();
Log.Information("导航相机 ViewModel 已释放"); Log.Information("Navigation camera ViewModel has been released");
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Log.Error(ex, "导航相机 ViewModel 释放失败"); Log.Error(ex, "Navigation camera ViewModel release failed");
} }
// 释放导航相机服务资源 // 释放导航相机服务资源
@@ -182,12 +182,12 @@ namespace XplorePlane
{ {
var cameraService = bootstrapper.Container.Resolve<ICameraService>(); var cameraService = bootstrapper.Container.Resolve<ICameraService>();
cameraService?.Dispose(); cameraService?.Dispose();
Log.Information("导航相机服务资源已释放"); Log.Information("Navigation camera service resources have been released");
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Log.Error(ex, "导航相机服务资源释放失败"); Log.Error(ex, "Navigation camera service resource release failed");
} }
// 释放主界面探测器帧流水线资源 // 释放主界面探测器帧流水线资源
@@ -320,9 +320,6 @@ namespace XplorePlane
// 主窗口加载完成后再连接相机,确保所有模块和原生 DLL 已完成初始化 // 主窗口加载完成后再连接相机,确保所有模块和原生 DLL 已完成初始化
shell.Loaded += (s, e) => shell.Loaded += (s, e) =>
{ {
// [DEV] 导航相机连接已屏蔽,开发阶段跳过以加快启动速度
TryConnectCamera();
// 初始化主界面探测器帧流水线,开始接收探测器图像事件 // 初始化主界面探测器帧流水线,开始接收探测器图像事件
try try
{ {
@@ -333,21 +330,22 @@ namespace XplorePlane
Log.Error(ex, "初始化主界面探测器帧流水线失败"); Log.Error(ex, "初始化主界面探测器帧流水线失败");
} }
// [DEV] 相机状态通知已屏蔽 // [DEV] 导航相机连接已屏蔽,开发阶段跳过以加快启动速度
try //TryConnectCamera();
{ //try
var cameraVm = Container.Resolve<NavigationPropertyPanelViewModel>(); //{
cameraVm.OnCameraReady(); // var cameraVm = Container.Resolve<NavigationPropertyPanelViewModel>();
} // cameraVm.OnCameraReady();
catch (Exception ex) //}
{ //catch (Exception ex)
Log.Error(ex, "通知相机 ViewModel 失败"); //{
} // Log.Error(ex, "Failed to notify the camera ViewModel");
//}
if (_cameraError != null) //if (_cameraError != null)
{ //{
HexMessageBox.Show(_cameraError, MessageBoxButton.OK, MessageBoxImage.Error); // HexMessageBox.Show(_cameraError, MessageBoxButton.OK, MessageBoxImage.Error);
} //}
}; };
return shell; return shell;
@@ -364,17 +362,17 @@ namespace XplorePlane
try try
{ {
var info = camera.Open(); var info = camera.Open();
Log.Information("导航相机已连接: {ModelName} (SN: {SerialNumber})", info.ModelName, info.SerialNumber); Log.Information("Navigation camera connected: {ModelName} (SN: {SerialNumber})", info.ModelName, info.SerialNumber);
} }
catch (DeviceNotFoundException) catch (DeviceNotFoundException)
{ {
Log.Warning("未检测到导航相机"); Log.Warning("Navigation camera not detected");
_cameraError = "未检测到导航相机,请检查连接后重启软件。"; _cameraError = "Navigation camera not detectedPlease check the connection and restart the software.。";
} }
catch (Exception ex) catch (Exception ex)
{ {
Log.Warning(ex, "导航相机自动连接失败: {Message}", ex.Message); Log.Warning(ex, "Automatic connection of navigation camera failed: {Message}", ex.Message);
_cameraError = $"导航相机连接失败: {ex.Message}"; _cameraError = $"Navigation camera connection failed: {ex.Message}";
} }
} }
@@ -408,7 +406,6 @@ namespace XplorePlane
containerRegistry.RegisterSingleton<IImageProcessingService, ImageProcessingService>(); containerRegistry.RegisterSingleton<IImageProcessingService, ImageProcessingService>();
containerRegistry.Register<ImageProcessingViewModel>(); containerRegistry.Register<ImageProcessingViewModel>();
// 注册流水线服务(单例,共享 IImageProcessingService // 注册流水线服务(单例,共享 IImageProcessingService
containerRegistry.RegisterSingleton<IPipelineExecutionService, PipelineExecutionService>(); containerRegistry.RegisterSingleton<IPipelineExecutionService, PipelineExecutionService>();
containerRegistry.RegisterSingleton<IPipelinePersistenceService, PipelinePersistenceService>(); containerRegistry.RegisterSingleton<IPipelinePersistenceService, PipelinePersistenceService>();
@@ -477,9 +474,9 @@ namespace XplorePlane
} }
catch (Exception ex) catch (Exception ex)
{ {
Log.Warning(ex, "读取 CameraType 配置失败,使用默认值 Hikvision"); Log.Warning(ex, "Failed to read CameraType configuration, using default value Hikvision");
} }
Log.Information("相机类型: {CameraType}", cameraType); Log.Information("Camera Type: {CameraType}", cameraType);
return new CameraFactory().CreateController(cameraType); return new CameraFactory().CreateController(cameraType);
}); });
containerRegistry.RegisterSingleton<ICameraService, CameraService>(); containerRegistry.RegisterSingleton<ICameraService, CameraService>();
Binary file not shown.

After

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

+40 -15
View File
@@ -165,7 +165,7 @@
Size="Medium" Size="Medium"
SmallImage="/Assets/Icons/crosshair.png" SmallImage="/Assets/Icons/crosshair.png"
Text="辅助线" /> Text="辅助线" />
<telerik:RadRibbonToggleButton <telerik:RadRibbonToggleButton
telerik:ScreenTip.Description="显示/隐藏图像比例尺" telerik:ScreenTip.Description="显示/隐藏图像比例尺"
telerik:ScreenTip.Title="比例尺" telerik:ScreenTip.Title="比例尺"
IsChecked="{Binding IsScaleBarVisible, Mode=TwoWay}" IsChecked="{Binding IsScaleBarVisible, Mode=TwoWay}"
@@ -192,13 +192,6 @@
Size="Medium" Size="Medium"
SmallImage="/Assets/Icons/film-darken.png" SmallImage="/Assets/Icons/film-darken.png"
Text="黑底检测" /> Text="黑底检测" />
<telerik:RadRibbonButton
telerik:ScreenTip.Description="框选模板、调参并在当前图像上试跑旋转模板匹配"
telerik:ScreenTip.Title="模板匹配助手"
Command="{Binding OpenTemplateMatchAssistantCommand}"
Size="Medium"
SmallImage="/Assets/Icons/dynamic-range.png"
Text="模板助手" />
</StackPanel> </StackPanel>
<StackPanel> <StackPanel>
<telerik:RadRibbonButton <telerik:RadRibbonButton
@@ -213,13 +206,6 @@
Size="Medium" Size="Medium"
SmallImage="/Assets/Icons/dynamic-range.png" SmallImage="/Assets/Icons/dynamic-range.png"
Text="增强" /> Text="增强" />
<telerik:RadRibbonButton
telerik:ScreenTip.Description="沿搜索线放置卡尺检测边缘点并拟合直线"
telerik:ScreenTip.Title="直线拟合"
Command="{Binding EdgeLineFitCommand}"
Size="Medium"
SmallImage="/Assets/Icons/ptol.png"
Text="直线拟合" />
</StackPanel> </StackPanel>
</telerik:RadRibbonGroup> </telerik:RadRibbonGroup>
@@ -517,6 +503,45 @@
Text="坐标标定" /> Text="坐标标定" />
</StackPanel> </StackPanel>
</telerik:RadRibbonGroup> </telerik:RadRibbonGroup>
<telerik:RadRibbonGroup
telerik:ScreenTip.Description="Show the Alignment tab of the Format Cells dialog box."
telerik:ScreenTip.Title="Format Cells: Alignment"
DialogLauncherCommand="{Binding Path=ShowFormatCellsDialog.Command}"
DialogLauncherCommandParameter="Alignment"
DialogLauncherVisibility="{Binding Path=ShowFormatCellsDialog.IsEnabled, Converter={StaticResource BoolToVisibilityValueConverter}}"
Header="识别定位"
IsEnabled="{Binding Path=AlignmentGroup.IsEnabled}">
<telerik:RadRibbonGroup.Variants>
<telerik:GroupVariant Priority="0" Variant="Large" />
</telerik:RadRibbonGroup.Variants>
<telerik:RadRibbonGroup.Resources>
<spreadsheetControls:RadHorizontalAlignmentToBooleanConverter x:Key="horizontalAlignmentToBooleanConverter" />
<spreadsheetControls:RadVerticalAlignmentToBooleanConverter x:Key="verticalAlignmentToBooleanConverter" />
</telerik:RadRibbonGroup.Resources>
<StackPanel />
<StackPanel>
<telerik:RadRibbonButton
telerik:ScreenTip.Description="框选模板、调参并在当前图像上试跑旋转模板匹配"
telerik:ScreenTip.Title="模板匹配助手"
Command="{Binding OpenTemplateMatchAssistantCommand}"
Size="Medium"
SmallImage="/Assets/Icons/Matching.png"
Text="模板助手" />
<telerik:RadRibbonButton
telerik:ScreenTip.Description="沿搜索线放置卡尺检测边缘点并拟合直线"
telerik:ScreenTip.Title="拟合直线"
Command="{Binding EdgeLineFitCommand}"
Size="Medium"
SmallImage="/Assets/Icons/FittedLine.png"
Text="拟合直线" />
<telerik:RadRibbonButton
telerik:ScreenTip.Description="沿搜索线放置卡尺检测边缘点并拟合圆"
telerik:ScreenTip.Title="拟合圆"
Size="Medium"
SmallImage="/Assets/Icons/FittedCircle.png"
Text="拟合圆" />
</StackPanel>
</telerik:RadRibbonGroup>
<telerik:RadRibbonGroup Header="多语言"> <telerik:RadRibbonGroup Header="多语言">
<telerik:RadRibbonGroup.Variants> <telerik:RadRibbonGroup.Variants>