#0049 硬件层射线源控件的初步集成
This commit is contained in:
@@ -24,6 +24,13 @@
|
|||||||
<add key="RaySource:StatusPollingInterval" value="500" />
|
<add key="RaySource:StatusPollingInterval" value="500" />
|
||||||
<add key="RaySource:EnableAutoStatusMonitoring" value="true" />
|
<add key="RaySource:EnableAutoStatusMonitoring" value="true" />
|
||||||
|
|
||||||
|
<!-- SQLite 数据库配置 -->
|
||||||
|
<add key="Sqlite:DbFilePath" value="Data\XP.db" />
|
||||||
|
<add key="Sqlite:ConnectionTimeout" value="30" />
|
||||||
|
<add key="Sqlite:CreateIfNotExists" value="true" />
|
||||||
|
<add key="Sqlite:EnableWalMode" value="true" />
|
||||||
|
<add key="Sqlite:EnableSqlLogging" value="false" />
|
||||||
|
|
||||||
<!-- 探测器配置 -->
|
<!-- 探测器配置 -->
|
||||||
<add key="Detector.Type" value="Varex4343"/>
|
<add key="Detector.Type" value="Varex4343"/>
|
||||||
<add key="Detector.IPAddress" value="192.168.1.101"/>
|
<add key="Detector.IPAddress" value="192.168.1.101"/>
|
||||||
|
|||||||
+57
-6
@@ -14,8 +14,20 @@ using Prism.DryIoc;
|
|||||||
using Prism.Modularity;
|
using Prism.Modularity;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
using XP.Common.Module;
|
using XP.Common.Module;
|
||||||
|
using XP.Common.Configs;
|
||||||
|
using XP.Common.Database.Interfaces;
|
||||||
|
using XP.Common.Database.Implementations;
|
||||||
|
using XP.Common.Localization.Configs;
|
||||||
|
using XP.Common.Localization.Implementations;
|
||||||
|
using XP.Common.Localization.Interfaces;
|
||||||
|
using XP.Common.Localization.Extensions;
|
||||||
|
using XP.Common.Dump.Configs;
|
||||||
|
using XP.Common.Dump.Implementations;
|
||||||
|
using XP.Common.Dump.Interfaces;
|
||||||
using XP.Hardware.RaySource.Module;
|
using XP.Hardware.RaySource.Module;
|
||||||
using XP.Hardware.RaySource.Services;
|
using XP.Hardware.RaySource.Services;
|
||||||
|
using XP.Hardware.RaySource.Abstractions;
|
||||||
|
using XP.Hardware.RaySource.Factories;
|
||||||
|
|
||||||
namespace XplorePlane
|
namespace XplorePlane
|
||||||
{
|
{
|
||||||
@@ -214,18 +226,57 @@ namespace XplorePlane
|
|||||||
containerRegistry.Register<PipelineEditorViewModel>();
|
containerRegistry.Register<PipelineEditorViewModel>();
|
||||||
containerRegistry.Register<OperatorToolboxViewModel>();
|
containerRegistry.Register<OperatorToolboxViewModel>();
|
||||||
|
|
||||||
|
// 注册硬件库的 ViewModel(供 ViewModelLocator 自动装配)
|
||||||
|
containerRegistry.Register<XP.Hardware.RaySource.ViewModels.RaySourceOperateViewModel>();
|
||||||
|
|
||||||
|
// 注册 SQLite 配置和数据库上下文(FilamentLifetimeService 依赖)
|
||||||
|
var sqliteConfig = XP.Common.Helpers.ConfigLoader.LoadSqliteConfig();
|
||||||
|
containerRegistry.RegisterInstance(sqliteConfig);
|
||||||
|
containerRegistry.RegisterSingleton<IDbContext, SqliteContext>();
|
||||||
|
|
||||||
|
// 手动注册射线源模块的所有服务(确保 DryIoc 容器中可用,避免模块加载顺序问题)
|
||||||
|
var raySourceConfig = XP.Hardware.RaySource.Config.ConfigLoader.LoadConfig();
|
||||||
|
containerRegistry.RegisterInstance(raySourceConfig);
|
||||||
|
containerRegistry.RegisterSingleton<XP.Hardware.RaySource.Abstractions.IRaySourceFactory, XP.Hardware.RaySource.Factories.RaySourceFactory>();
|
||||||
|
containerRegistry.RegisterSingleton<IRaySourceService, XP.Hardware.RaySource.Services.RaySourceService>();
|
||||||
|
containerRegistry.RegisterSingleton<XP.Hardware.RaySource.Services.IFilamentLifetimeService, XP.Hardware.RaySource.Services.FilamentLifetimeService>();
|
||||||
|
|
||||||
|
// 手动注册通用模块的服务(本地化、Dump)
|
||||||
|
containerRegistry.RegisterSingleton<ILocalizationConfig, LocalizationConfig>();
|
||||||
|
containerRegistry.RegisterSingleton<ILocalizationService, ResxLocalizationService>();
|
||||||
|
containerRegistry.RegisterSingleton<DumpConfig>(() => XP.Common.Helpers.ConfigLoader.LoadDumpConfig());
|
||||||
|
containerRegistry.RegisterSingleton<IDumpService, DumpService>();
|
||||||
|
|
||||||
Log.Information("依赖注入容器配置完成");
|
Log.Information("依赖注入容器配置完成");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
|
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
|
||||||
{
|
{
|
||||||
// 通用模块(注册 ILocalizationService、ILocalizationConfig)— 必须在 RaySourceModule 之前
|
// 所有模块服务已在 RegisterTypes 中手动注册
|
||||||
moduleCatalog.AddModule<CommonModule>();
|
// CommonModule: ILocalizationService, IDumpService
|
||||||
|
// RaySourceModule: IRaySourceService, IRaySourceFactory, IFilamentLifetimeService
|
||||||
// 射线源模块(自动注册 IRaySourceService、IRaySourceFactory、RaySourceConfig)
|
|
||||||
moduleCatalog.AddModule<RaySourceModule>();
|
|
||||||
|
|
||||||
base.ConfigureModuleCatalog(moduleCatalog);
|
base.ConfigureModuleCatalog(moduleCatalog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void InitializeModules()
|
||||||
|
{
|
||||||
|
base.InitializeModules();
|
||||||
|
|
||||||
|
// 手动初始化本地化扩展(原由 CommonModule.OnInitialized 完成)
|
||||||
|
// 必须在 CreateShell 之前执行,XAML 中的 {loc:Localization} 标记扩展依赖它
|
||||||
|
var locService = Container.Resolve<ILocalizationService>();
|
||||||
|
LocalizationExtension.Initialize(locService);
|
||||||
|
|
||||||
|
// 启动 Dump 服务
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var dumpService = Container.Resolve<IDumpService>();
|
||||||
|
dumpService.Start();
|
||||||
|
}
|
||||||
|
catch (System.Exception ex)
|
||||||
|
{
|
||||||
|
Log.Warning(ex, "Dump 服务启动失败,跳过");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -453,11 +453,11 @@
|
|||||||
<ColumnDefinition Width="250*" />
|
<ColumnDefinition Width="250*" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="100" />
|
<RowDefinition Height="250" />
|
||||||
<RowDefinition Height="*" />
|
<RowDefinition Height="*" />
|
||||||
<RowDefinition Height="340" />
|
<RowDefinition Height="340" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<views:RaySourceOperateView Grid.Row="0" Grid.ColumnSpan="2" />
|
<views1:RaySourceOperateView Grid.Row="0" Grid.ColumnSpan="2" />
|
||||||
<views:MotionControlPanelView
|
<views:MotionControlPanelView
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.RowSpan="2"
|
Grid.RowSpan="2"
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
|
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.Debug" Version="3.0.0" />
|
<PackageReference Include="Serilog.Sinks.Debug" Version="3.0.0" />
|
||||||
<PackageReference Include="System.Data.SQLite" Version="1.0.118" />
|
<PackageReference Include="System.Data.SQLite" Version="1.0.118" />
|
||||||
|
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.3" />
|
||||||
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
|
<PackageReference Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
|
||||||
<PackageReference Include="Emgu.CV" Version="4.10.0.5680" />
|
<PackageReference Include="Emgu.CV" Version="4.10.0.5680" />
|
||||||
<PackageReference Include="Emgu.CV.runtime.windows" Version="4.10.0.5680" />
|
<PackageReference Include="Emgu.CV.runtime.windows" Version="4.10.0.5680" />
|
||||||
|
|||||||
@@ -24,6 +24,13 @@
|
|||||||
<add key="RaySource:StatusPollingInterval" value="500" />
|
<add key="RaySource:StatusPollingInterval" value="500" />
|
||||||
<add key="RaySource:EnableAutoStatusMonitoring" value="true" />
|
<add key="RaySource:EnableAutoStatusMonitoring" value="true" />
|
||||||
|
|
||||||
|
<!-- SQLite 数据库配置 -->
|
||||||
|
<add key="Sqlite:DbFilePath" value="Data\XP.db" />
|
||||||
|
<add key="Sqlite:ConnectionTimeout" value="30" />
|
||||||
|
<add key="Sqlite:CreateIfNotExists" value="true" />
|
||||||
|
<add key="Sqlite:EnableWalMode" value="true" />
|
||||||
|
<add key="Sqlite:EnableSqlLogging" value="false" />
|
||||||
|
|
||||||
<!-- 探测器配置 -->
|
<!-- 探测器配置 -->
|
||||||
<add key="Detector.Type" value="Varex4343"/>
|
<add key="Detector.Type" value="Varex4343"/>
|
||||||
<add key="Detector.IPAddress" value="192.168.1.101"/>
|
<add key="Detector.IPAddress" value="192.168.1.101"/>
|
||||||
|
|||||||
@@ -24,6 +24,13 @@
|
|||||||
<add key="RaySource:StatusPollingInterval" value="500" />
|
<add key="RaySource:StatusPollingInterval" value="500" />
|
||||||
<add key="RaySource:EnableAutoStatusMonitoring" value="true" />
|
<add key="RaySource:EnableAutoStatusMonitoring" value="true" />
|
||||||
|
|
||||||
|
<!-- SQLite 数据库配置 -->
|
||||||
|
<add key="Sqlite:DbFilePath" value="Data\XP.db" />
|
||||||
|
<add key="Sqlite:ConnectionTimeout" value="30" />
|
||||||
|
<add key="Sqlite:CreateIfNotExists" value="true" />
|
||||||
|
<add key="Sqlite:EnableWalMode" value="true" />
|
||||||
|
<add key="Sqlite:EnableSqlLogging" value="false" />
|
||||||
|
|
||||||
<!-- 探测器配置 -->
|
<!-- 探测器配置 -->
|
||||||
<add key="Detector.Type" value="Varex4343"/>
|
<add key="Detector.Type" value="Varex4343"/>
|
||||||
<add key="Detector.IPAddress" value="192.168.1.101"/>
|
<add key="Detector.IPAddress" value="192.168.1.101"/>
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
2、将telerik 升级到 2024.1.408.310;调整界面和主题;引入 硬件层依赖 √
|
2、将telerik 升级到 2024.1.408.310;调整界面和主题;引入 硬件层依赖 √
|
||||||
3、图像算子流程文件,保存文件后缀 .imw, image process workflow 缩写 √
|
3、图像算子流程文件,保存文件后缀 .imw, image process workflow 缩写 √
|
||||||
4、CNC保存文件后缀为.xp, 表示 XplorePlane CNC file 的缩写
|
4、CNC保存文件后缀为.xp, 表示 XplorePlane CNC file 的缩写
|
||||||
5、硬件层射线源控件的集成
|
5、硬件层射线源控件的初步集成(采用库层面的自定义控件方式)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user