Commit Graph

19 Commits

Author SHA1 Message Date
b753e5ea73 refactor:删除了DeviceDto,VariableDto,VariableTableDto,改为使用DMS.Core中的实体 2025-10-07 17:51:24 +08:00
a3af5dd0cc refactor: 移除 VariableMqttAliasDto 并替换为 VariableMqttAlias
本次重构移除了 VariableMqttAliasDto,并将其所有用法替换为 VariableMqttAlias 模型。

  主要变更:
  - 在 DTO、服务和接口中将 VariableMqttAliasDto 替换为 VariableMqttAlias。
  - 删除了 VariableMqttAliasDto 的 AutoMapper 映射。
  - 删除了 VariableMqttAliasDto.cs 文件。
2025-10-06 17:25:05 +08:00
1f0495fbe7 1 feat: 优化MQTT服务器详情页面功能
2
    3 - 修改MQTT发布处理器,使用DisplayValue代替DataValue进行数据发布
    4 - 在MqttServiceManager中使用DisplayValue进行消息内容替换
    5 - 增加MQTT服务器编辑功能,允许用户修改服务器配置
    6 - 添加变量MQTT发布别名修改功能,支持右键菜单修改发布名称
    7 - 实现变量值变化事件监听,实时更新UI显示
    8 - 优化MQTT服务器详情页面UI,改进变量关联数据显示
    9 - 修复变量表关联MQTT服务器时的逻辑问题
   10 - 完善导航生命周期事件处理
2025-10-05 19:57:58 +08:00
1dbae9c208 feat(HistoryProcessor): 添加死区检查功能以优化数据库写入
- 引入 ConcurrentDictionary 作为安全字典来缓存最后写入的数值
- 实现死区检查逻辑,仅当数值变化超过 HistoryDeadband 时才写入数据库
- 添加日志记录,显示因未超过死区值而跳过写入的情况
- 保持原有功能完整性,仅优化不必要的数据库写入操作
2025-10-03 20:13:19 +08:00
d6bb606b0e 本次提交包含了两个主要部分:一个关键的数据库并发问题修复,以及一个关于历史记录功能的增强。
1. 数据库并发修复 (Bug Fix):
   2. 历史记录功能增强 (Feature):
  `
  fix(db): 修复数据库并发连接问题并增强历史记录功能
  `

  正文:

  `
  本次提交主要包含一个关键的 Bug 修复和一项功能增强。

  1.  修复数据库并发问题:
      *   重构 SqlSugarDbContext,使其作为 SqlSugarClient 的工厂。
      *   GetInstance() 方法现在每次调用都会返回一个新的客户端实例,解决了因单例客户端导致的多线程并发访问 MySqlConnection 的问题。

  2.  增强历史记录功能:
      *   为 VariableHistory 相关的模型、DTO 和实体添加了 NumericValue 属性,以便在历史记录中同时存储数值和字符串值。
      *   更新了 HistoryProcessor 以保存 NumericValue。
      *   对 ValueConvertProcessor 的逻辑进行了重构,以更好地支持值转换流程。
2025-10-03 00:05:17 +08:00
f330f67767 本次提交对变量管理和数据处理进行了多项重构和优化:
1.  重构变量管理服务:
      *   统一了单个和批量变量的更新逻辑,并引入 AutoMapper 进行对象映射,提高了代码的可维护性。
      *   增加了对 IsHistoryEnabled 属性变更的跟踪,允许系统对此类变更做出响应。

  2.  改进历史记录:
      *   HistoryProcessor 现在记录变量的 DisplayValue,使得历史数据与用户界面显示的值保持一致。

  3.  修正值转换逻辑:
      *   ValueConvertProcessor 在应用转换公式后,会同时更新变量的 NumericValue 和 DisplayValue,确保了数据在处理链中的一致性。
2025-10-02 23:14:40 +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
3958275367 重构:修改 VariableValueChangedEventArgs 以包含 VariableDto 对象
- 修改 VariableValueChangedEventArgs 类:
     - 移除了 VariableId、VariableName、NewValue 和 UpdateTime 属性
     - 添加了 Variable(VariableDto 类型)和 OldValue 属性
     - 更新了构造函数以接收 VariableDto 对象和旧值

   - 更新事件触发代码:
     - 修改了 UpdateViewProcessor.cs 中的事件触发代码,改为传递 VariableDto 对象和旧值

   - 更新事件处理代码:
     - 修改了 DataEventService.cs 中的事件处理逻辑,改为访问 e.Variable 属性
     - 修改了 VariableHistoryViewModel.cs 中的事件处理逻辑,改为使用 e.Variable 属性
2025-10-02 18:47:45 +08:00
cdfb906112 feat(处理器): 增强变量处理链并实现批量更新
- 新增 UpdateDbVariableProcessor 处理器,通过队列和定时器实现数据库的批量更新,以降低负载。
  - 重构 ValueConvertProcessor 处理器,使其能够解析 ConversionFormula 公式,计算出最终的 DisplayValue。
  - 扩展 IVariableRepository 仓储接口,添加 UpdateBatchAsync 方法,并使用SqlSugar实现高效的批量更新。
  - 优化 VariableContext 模型,将 NewValue 类型统一为 string,简化了数据流并提升了类型安全。
2025-10-02 17:35:35 +08:00
74fde6bd8b 完成S7变量启用和停用更新 2025-09-16 14:42:23 +08:00
5ab18f95f0 修复S7服务轮询问题 2025-09-15 20:54:32 +08:00
15e2caed22 初步添加报警功能 2025-09-13 12:30:12 +08:00
5ca4fe7124 初步完成历史记录(未完成) 2025-09-11 11:04:07 +08:00
3c47276406 初步完成历史记录存储功能 2025-09-11 09:42:44 +08:00
a43b978097 基本完成MQTT消息的发送 2025-09-10 18:15:31 +08:00
1f9c0a1111 1 实现 MQTT 变量数据发布功能
2
   3 - 迁移 IMqttServiceManager 接口到 DMS.Core
   4 - 在 DataCenterService 中添加 MQTT 服务器和变量别名的加载逻辑
   5 - 实现 MqttPublishProcessor 的核心处理逻辑
   6 - 为 DTO 和 ViewModel 的 MqttAliases 属性提供默认空列表初始化
   7 - 更新 AutoMapper 映射配置以支持 VariableMqttAliasDto
2025-09-07 08:51:18 +08:00
e4cb38cd1d 初步完成Mqtt后台服务的改造 2025-09-06 15:19:04 +08:00
bb650e2682 将NlogHelper,和NotificationHelper,改为服务的方式注入使用 2025-09-04 17:29:24 +08:00
bc8bc58d9b 初步完成数据处理链条 2025-09-04 13:40:07 +08:00