Commit Graph

17 Commits

Author SHA1 Message Date
a6fc543e4f 1 feat(mqtt): 实现MQTT服务器状态管理与事件系统
2
    3 1. 在MqttServer和MqttServerDto模型中添加IsConnect属性,用于跟踪连接状态
    4 2. 重构MqttManagementService服务,使用事件驱动方式管理服务器状态变化
    5 3. 实现MqttServerChangedEventArgs事件参数类,支持区分不同变更类型
    6 4. 在IEventService中添加OnMqttServerChanged事件,实现事件通知机制
    7 5. 优化数据存储结构,将MqttServers从ObservableCollection改为ObservableDictionary
    8 6. 更新MqttServiceManager以正确处理连接状态和事件触发
    9 7. 在WPF层更新UI以响应服务器状态变化
   10 8. 删除不再需要的Helper类(DataServicesHelper, MessageHelper, SiemensHelper)
   11 9. 在NLog配置中添加调试器输出目标以便调试
   12 10. 完善VariableHistoryViewModel防止空引用异常
2025-10-05 00:28:25 +08:00
5eae862d5f feat.修复新添加设备添加变量OpcServer报错问题,修改初始化菜单的内容 2025-10-04 00:42:59 +08:00
f330f67767 本次提交对变量管理和数据处理进行了多项重构和优化:
1.  重构变量管理服务:
      *   统一了单个和批量变量的更新逻辑,并引入 AutoMapper 进行对象映射,提高了代码的可维护性。
      *   增加了对 IsHistoryEnabled 属性变更的跟踪,允许系统对此类变更做出响应。

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

  3.  修正值转换逻辑:
      *   ValueConvertProcessor 在应用转换公式后,会同时更新变量的 NumericValue 和 DisplayValue,确保了数据在处理链中的一致性。
2025-10-02 23:14:40 +08:00
f3e7793293 1. VariableChangedEventArgs 重构:
- 创建了 ActionChangeType 枚举(与 DataChangeType 相同)
      - 创建了 VariablePropertyType 枚举标识变量属性类型
      - 重构 VariableChangedEventArgs 类,移除 ChangeTime 和 VariableTable 属性
      - 将 ChangeType 从 DataChangeType 改为 ActionChangeType
      - 添加了 PropertyType 属性用于标识哪个属性发生变化
2025-10-02 19:16:44 +08:00
e5e2e8de5b 功能增强:添加 InputDialog 并改进变量管理功能
- 新增 InputDialog 组件:
     - 添加了 InputDialog.xaml 和 InputDialog.xaml.cs 文件
     - 创建了 InputDialogViewModel.cs,继承自 DialogViewModelBase<string?>
     - 实现了可重用的输入对话框,支持自定义标题、消息、标签和占位符

   - 完善变量管理服务:
     - 在 MappingProfile.cs 中添加了 VariableDto 到 VariableDto 的映射配置
     - 在 VariableManagementService.cs 中注入 IMapper 依赖项
     - 修改了 UpdateVariablesAsync 方法,使用 AutoMapper 进行更安全的更新操作

   - 扩展变量表功能:
     - 在 VariableTableViewModel.cs 中添加了 ModifyConversionFormula 命令
     - 实现了批量修改变量转换公式功能,支持用户通过对话框输入新公式
     - 添加了相应的 UI 通知和错误处理
     - 在 VariableTableView.xaml 中添加了"修改数值转换公式"菜单项

   - 集成 InputDialog 到对话框服务:
     - 在 DialogService.cs 中注册了 InputDialogViewModel 和 InputDialog 的映射关系
2025-10-02 18:34:23 +08:00
6e9f7c4a44 feat: 为多个服务添加日志记录功能并改进批量导入变量处理
- 为OpcUaServiceManager添加日志记录功能,并实现OnBatchImportVariables事件处理器
  - 为OpcUaService添加全面的日志记录,包括连接、断开、读写节点等操作
  - 为DataEventService添加日志记录功能,跟踪数据加载和变量值变更事件
  - 为S7ServiceManager添加OnBatchImportVariables事件处理器,处理批量导入变量事件
  - 在VariableTableViewModel中改进变量添加逻辑,确保变量被正确添加到数据存储中
  - 在VariableManagementService中完善变量表信息的填充逻辑
2025-10-02 11:26:50 +08:00
078d7b3903 1. 创建了 BatchImportVariablesEventArgs 事件参数类
2. 在 IEventService 接口中添加了 OnBatchImportVariables 事件和 RaiseBatchImportVariables 方法
   3. 在 EventService 实现中添加了对新事件的支持
   4. 在 IVariableManagementService 接口中添加了 BatchImportVariablesAsync 方法
   5. 在 VariableManagementService 中实现了该方法,并在批量导入后触发事件
   6. 更新了 VariableTableViewModel 以使用 IVariableManagementService 而不是 IVariableAppService
2025-10-01 20:13:30 +08:00
226c6c7387 主要变更:
1. 将内存操作和事件触发逻辑合并到数据库操作方法中
   2. 删除了独立的内存操作方法(AddVariableToMemory、UpdateVariableInMemory、RemoveVariableFromMemory)
   3. 更新了接口定义,移除了内存操作方法
   4. 确保了数据库操作和内存状态保持同步
2025-10-01 19:21:48 +08:00
e43c0df1cf 完成的变更:
1. 向 VariableTableManagementService 添加了 IEventService 依赖
   2. 将内存操作和事件触发逻辑合并到数据库操作方法中:
      - CreateVariableTableAsync 现在会在数据库创建后自动添加到内存并触发事件
      - UpdateVariableTableAsync 现在会在数据库更新后自动更新内存并触发事件
      - DeleteVariableTableAsync 现在会在数据库删除后自动从内存移除并触发事件
   3. 从类中删除了独立的内存操作方法
   4. 从接口中移除了内存操作方法
   5. 更新了所有调用这些服务的代码,使它们不再调用已删除的内存方法
   6. 扩展了 IEventService 以支持 VariableTableChanged 事件
2025-10-01 19:16:47 +08:00
438ee0fe58 1. 已成功将内存操作直接合并到数据库操作方法中
2. 已删除了独立的内存操作方法
   3. 已更新接口定义,去除了内存操作方法
   4. 保留了 IEventService 依赖,因为需要用于触发事件
2025-10-01 19:06:12 +08:00
62ce7093cf 1. 从 IDeviceManagementService 接口中移除了 OnDeviceChanged 事件
2. 在 DeviceManagementService 中添加了对 IEventService 的依赖
   3. 在 DeviceManagementService 的三个内存操作方法中,将直接事件触发改为通过 _eventService.RaiseDeviceChanged 方法触发
   4. EventService 本身已经实现了 OnDeviceChanged 事件和对应的 RaiseDeviceChanged 方法
2025-10-01 18:15:51 +08:00
2dda2029bd 1. 重构 DeviceManagementService 类:
- 修改 CreateDeviceWithDetailsAsync 方法,在数据库创建成功后自动添加到内存
      - 修改 UpdateDeviceAsync 方法,在数据库更新成功后自动更新内存
      - 修改 DeleteDeviceByIdAsync 方法,在数据库删除成功后自动从内存移除
      - 修改 ToggleDeviceActiveStateAsync 方法,在数据库切换激活状态后更新内存

   2. 更新 DeviceDataService 类:
      - 移除了在 AddDevice 方法中的独立 AddDeviceToMemory 调用
      - 移除了在 DeleteDevice 方法中的独立 RemoveDeviceFromMemory 调用
      - 为 UpdateDevice 方法添加了注释,说明内存自动更新

   3. 更新 DeviceMonitoringService 类:
      - 在 OnDeviceActiveChanged 方法中使用 Task 运行异步的 UpdateDeviceAsync 调用

   4. 更新接口文档:
      - 在 IDeviceManagementService 接口中更新了内存操作方法的注释,说明通常由其他操作自动调用
2025-10-01 18:09:30 +08:00
eb4bee8963 修改触发器相关的内容 2025-09-23 09:28:08 +08:00
2d457ae248 修改使用TriggerDataService模式 2025-09-23 06:51:29 +08:00
bcdb119d11 修改画面 2025-09-19 07:27:56 +08:00
74fde6bd8b 完成S7变量启用和停用更新 2025-09-16 14:42:23 +08:00
ffa24f861e 修改了目录架构 2025-09-16 12:29:09 +08:00