本次提交对系统进行了两项主要的重构和优化:
1. 重构数据处理链:
* 移除了 CheckValueChangedProcessor 和 LoggingProcessor,简化了数据处理流程。
* 调整了 App.xaml.cs 中的处理器注册顺序,使处理链更加清晰。
2. 优化OPC UA变量变更处理:
* 完全重构了 OpcUaServiceManager 中的 OnVariableChanged 事件处理方法。
* 新逻辑能够根据变量属性(IsActive, PollingInterval 等)的变化,进行精确的、针对单个节点的订阅和取消订阅操作,取代了之前重置整个设备订阅的低效方式。
* 实现了对已删除变量的订阅取消逻辑,确保了资源的正确释放。
这些变更显著提升了 OPC UA 订阅管理的效率和精确性。
This commit is contained in:
@@ -80,11 +80,9 @@ public partial class App : System.Windows.Application
|
||||
var dataProcessingService = Host.Services.GetRequiredService<IDataProcessingService>();
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<ValueConvertProcessor>());
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<UpdateViewProcessor>());
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<CheckValueChangedProcessor>());
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<LoggingProcessor>());
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<HistoryProcessor>());
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<MqttPublishProcessor>());
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<UpdateDbVariableProcessor>());
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<HistoryProcessor>());
|
||||
// 添加报警处理器
|
||||
dataProcessingService.AddProcessor(Host.Services.GetRequiredService<DMS.Application.Services.Processors.AlarmProcessor>());
|
||||
// 添加触发器处理器
|
||||
@@ -204,8 +202,6 @@ public partial class App : System.Windows.Application
|
||||
(DataProcessingService)provider.GetRequiredService<IDataProcessingService>());
|
||||
services.AddSingleton<ValueConvertProcessor>();
|
||||
services.AddSingleton<UpdateViewProcessor>();
|
||||
services.AddSingleton<CheckValueChangedProcessor>();
|
||||
services.AddSingleton<LoggingProcessor>();
|
||||
services.AddSingleton<UpdateDbVariableProcessor>();
|
||||
services.AddSingleton<HistoryProcessor>();
|
||||
services.AddSingleton<MqttPublishProcessor>();
|
||||
|
||||
Reference in New Issue
Block a user