Commit Graph

10 Commits

Author SHA1 Message Date
b85ffdc21b 1 feat: 重构数据加载完成事件的处理机制
2
    3 - 从IDataLoaderService接口中移除OnLoadDataCompleted事件
    4 - 在IEventService接口中新增OnLoadDataCompleted事件和RaiseLoadDataCompleted方法
    5 - 在EventService实现类中实现数据加载完成事件的触发功能
    6 - 修改DataLoaderService不再直接触发事件,而是通过IEventService来触发
    7 - 更新MQTT、OPC UA和S7后台服务以订阅事件服务中的数据加载完成事件
    8 - 修改数据加载完成事件的监听方式,统一使用事件服务进行管理
    9
   10 此重构改进了事件处理的架构设计,使事件管理更加集中和一致。
2025-10-05 11:21:05 +08:00
5eae862d5f feat.修复新添加设备添加变量OpcServer报错问题,修改初始化菜单的内容 2025-10-04 00:42:59 +08:00
745cd43513 本次提交对系统进行了两项主要的重构和优化:
1.  重构数据处理链:
      *   移除了 CheckValueChangedProcessor 和 LoggingProcessor,简化了数据处理流程。
      *   调整了 App.xaml.cs 中的处理器注册顺序,使处理链更加清晰。

  2.  优化OPC UA变量变更处理:
      *   完全重构了 OpcUaServiceManager 中的 OnVariableChanged 事件处理方法。
      *   新逻辑能够根据变量属性(IsActive, PollingInterval 等)的变化,进行精确的、针对单个节点的订阅和取消订阅操作,取代了之前重置整个设备订阅的低效方式。
      *   实现了对已删除变量的订阅取消逻辑,确保了资源的正确释放。

  这些变更显著提升了 OPC UA 订阅管理的效率和精确性。
2025-10-02 22:30:24 +08:00
c4a840c8b8 本次提交对 OPC UA 服务的接口进行了重构,主要变更如下:
1.  简化接口: OpcUaService 的 SubscribeToNode 和 UnsubscribeFromNode 方法的参数类型从 OpcUaNode 对象更改为 string 类型的节点ID。这使得上层服务在调用时无需构造完整的
  OpcUaNode 对象,降低了接口的复杂性。

  2.  更新实现: OpcUaService 和 OpcUaServiceManager 的内部实现已更新,以兼容新的基于字符串的接口。

  3.  优化变量更新: OpcUaServiceManager 中的 OnVariableChanged
  事件处理逻辑被修改,现在能够更细粒度地处理单个变量的激活状态和轮询间隔的变化,避免了不必要的整个设备订阅的重新加载。
2025-10-02 22:03:31 +08:00
acd397ea55 特性:为 OpcUaServiceManager 和 S7ServiceManager 添加 VariableChanged 事件订阅
- OpcUaServiceManager 更新:
     - 添加了 OnVariableChanged 事件订阅
     - 实现了 OnVariableChanged 事件处理方法,根据变量属性变化类型进行相应处理
     - 对于 OPC UA Node ID、更新类型或轮询间隔变化,重新设置设备订阅
     - 对于激活状态变化,更新设备上下文中的变量列表
     - 对于变量删除,从设备上下文中移除对应变量

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

   - 改进系统响应性:
     - 使 OPC UA 和 S7 服务能够实时响应变量属性变更
     - 提高了系统在变量配置更改时的动态适应能力
     - 确保服务能够根据变量状态变化及时更新其内部数据结构
2025-10-02 19:47:29 +08:00
cdfb906112 feat(处理器): 增强变量处理链并实现批量更新
- 新增 UpdateDbVariableProcessor 处理器,通过队列和定时器实现数据库的批量更新,以降低负载。
  - 重构 ValueConvertProcessor 处理器,使其能够解析 ConversionFormula 公式,计算出最终的 DisplayValue。
  - 扩展 IVariableRepository 仓储接口,添加 UpdateBatchAsync 方法,并使用SqlSugar实现高效的批量更新。
  - 优化 VariableContext 模型,将 NewValue 类型统一为 string,简化了数据流并提升了类型安全。
2025-10-02 17:35:35 +08:00
6e9f7c4a44 feat: 为多个服务添加日志记录功能并改进批量导入变量处理
- 为OpcUaServiceManager添加日志记录功能,并实现OnBatchImportVariables事件处理器
  - 为OpcUaService添加全面的日志记录,包括连接、断开、读写节点等操作
  - 为DataEventService添加日志记录功能,跟踪数据加载和变量值变更事件
  - 为S7ServiceManager添加OnBatchImportVariables事件处理器,处理批量导入变量事件
  - 在VariableTableViewModel中改进变量添加逻辑,确保变量被正确添加到数据存储中
  - 在VariableManagementService中完善变量表信息的填充逻辑
2025-10-02 11:26:50 +08:00
e84a202438 主要变更:
1. 创建了 DeviceStateType 枚举来区分状态类型(激活/连接)
   2. 创建了 DeviceStateChangedEventArgs 统一事件类
   3. 更新了 IEventService 接口,将两个事件合并为一个
   4. 更新了 EventService 实现以支持新事件
   5. 更新了所有相关服务(DeviceMonitoringService, OpcUaServiceManager, S7ServiceManager, DeviceDataService, DeviceItemViewModel)

  关键优点:
   - 减少了事件类型的数量,简化了事件系统
   - 为设备状态变化提供了一致的处理方式
   - 保持了向后兼容性,将旧类标记为 [Obsolete]
2025-10-01 18:41:05 +08:00
c0223b083a 实现的功能:
1. 添加了对 EventService.OnDeviceChanged 事件的订阅
   2. 实现了 OnDeviceChanged 事件处理方法,根据变化类型进行相应处理
   3. 实现了 HandleDeviceAdded 方法,当设备添加时:
      - 检查设备协议是否为 OPC UA
      - 将设备添加到监控列表
      - 如果设备是激活状态,则自动连接设备
2025-10-01 18:28:06 +08:00
74fde6bd8b 完成S7变量启用和停用更新 2025-09-16 14:42:23 +08:00