特性:为 OpcUaServiceManager 和 S7ServiceManager 添加 VariableChanged 事件订阅

- OpcUaServiceManager 更新:
     - 添加了 OnVariableChanged 事件订阅
     - 实现了 OnVariableChanged 事件处理方法,根据变量属性变化类型进行相应处理
     - 对于 OPC UA Node ID、更新类型或轮询间隔变化,重新设置设备订阅
     - 对于激活状态变化,更新设备上下文中的变量列表
     - 对于变量删除,从设备上下文中移除对应变量

   - S7ServiceManager 更新:
     - 添加了 OnVariableChanged 事件订阅
     - 实现了 OnVariableChanged 事件处理方法,根据变量属性变化类型进行相应处理
     - 对于 S7 地址变化,更新设备上下文中的变量映射
     - 对于激活状态变化,更新设备上下文中的变量列表
     - 对于变量删除,从设备上下文中移除对应变量

   - 改进系统响应性:
     - 使 OPC UA 和 S7 服务能够实时响应变量属性变更
     - 提高了系统在变量配置更改时的动态适应能力
     - 确保服务能够根据变量状态变化及时更新其内部数据结构
This commit is contained in:
2025-10-02 19:47:29 +08:00
parent f3e7793293
commit acd397ea55
3 changed files with 171 additions and 29 deletions

View File

@@ -723,7 +723,7 @@ partial class VariableTableViewModel : ViewModelBase, INavigatable
if (result > 0)
{
_eventService.RaiseVariableActiveChanged(this,new VariablesActiveChangedEventArgs(validVariables.Select(v=>v.Id).ToList(),CurrentVariableTable.DeviceId,newIsActive.Value));
// _eventService.RaiseVariableActiveChanged(this,new VariablesActiveChangedEventArgs(validVariables.Select(v=>v.Id).ToList(),CurrentVariableTable.DeviceId,newIsActive.Value));
// 显示成功通知
_notificationService.ShowSuccess($"已成功更新 {validVariables.Count} 个变量的启用状态");
}