Commit Graph

358 Commits

Author SHA1 Message Date
1a666b79c8 1. 在 AppSettings 类中添加了 DefaultPollingInterval 属性,用于存储全局默认轮询间隔值
2. 更新了 SettingViewModel 以包含对轮询间隔设置的支持,允许用户在设置页面中修改该值
   3. 修改了 VariableItemViewModel,使其在初始化时从 AppSettings 加载默认轮询间隔值
   4. 更新了 SettingView.xaml,在设置页面的"通用设置"部分添加了轮询间隔配置项
2025-10-02 12:35:42 +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
4e63ebcb94 修复添加变量切换变量表界面后不显示的问题 2025-10-01 19:41: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
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
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
03e92811dd 修复删除设备时的错误 2025-10-01 18:02:33 +08:00
eb4bee8963 修改触发器相关的内容 2025-09-23 09:28:08 +08:00
2d457ae248 修改使用TriggerDataService模式 2025-09-23 06:51:29 +08:00
87942a45c8 修改了加载触发器 2025-09-23 05:48:21 +08:00
f61c505774 修改了添加触发器的对话框界面 2025-09-22 23:33:34 +08:00
042bc15288 继续修改触发器(未完成,修改一个触发器可以添加多个变量) 2025-09-22 22:58:51 +08:00
0f869cf410 将图形库替换为LiveChartsCore.SkiaSharpView.WPF 2025-09-22 06:24:08 +08:00
bcdb119d11 修改画面 2025-09-19 07:27:56 +08:00
ed4f9b1a0c 修复添加设备界面不显示默认变量表的问题 2025-09-18 11:24:56 +08:00
f7ee80bcdd 简单实现图表 2025-09-17 17:18:10 +08:00
e023bf3b55 初步完成图表功能 2025-09-17 14:13:48 +08:00
82c355a392 初步完成单个变量的历史记录查询 2025-09-17 13:32:29 +08:00
74fde6bd8b 完成S7变量启用和停用更新 2025-09-16 14:42:23 +08:00
3102938f92 将设备列表,变量表列表,变量列表从ObservableCollection更换为字典类型的ObservableDictionary 2025-09-16 13:05:37 +08:00
ffa24f861e 修改了目录架构 2025-09-16 12:29:09 +08:00
5ab18f95f0 修复S7服务轮询问题 2025-09-15 20:54:32 +08:00
4773e87886 修改批量导入变量返回实体,防止Io为0的问题 2025-09-15 13:12:14 +08:00
d622d73057 继续修改触发器 2025-09-14 21:18:01 +08:00
d923b6a116 修改了设备列表的界面 2025-09-14 20:46:31 +08:00
ebf67b98fa 修改了触发器的问题 2025-09-14 19:58:18 +08:00
8e039e657a 继续修改触发器 2025-09-14 19:13:53 +08:00
a8d240b4f9 继续修改触发器 2025-09-14 19:13:40 +08:00
a079cf8de8 千问写完触发器功能,错误未修复 2025-09-14 16:16:10 +08:00
25cd43d436 继续修改报警系统 2025-09-14 09:03:07 +08:00
58c9340640 继续完成邮件功能 2025-09-13 19:39:18 +08:00
42aaf9c01b 初步完成邮件功能 2025-09-13 19:08:43 +08:00
15e2caed22 初步添加报警功能 2025-09-13 12:30:12 +08:00
5a39796f0e 添加 double 类型的变量值 2025-09-13 08:24:06 +08:00
c173ab08d3 完成设备的启用和停用并更新界面 2025-09-12 17:22:15 +08:00
d20b35185f 初步完成OpcUa设备的开启连接,关闭断开连接的功能 2025-09-12 15:45:14 +08:00
6796a06325 添加了事件服务,并完成了设备状态改变后写入数据库 2025-09-12 14:59:32 +08:00
cb739f4cb9 初步添加事件服务 2025-09-12 13:25:39 +08:00
071347bc91 初步完成报警设置 2025-09-12 12:26:57 +08:00
c8d7543c7e 初步完成变量历史记录修改 2025-09-12 08:57:41 +08:00
8afb989486 修改了历史记录页面 2025-09-12 08:35:35 +08:00
5680c38fa9 修改历史记录功能(未完成) 2025-09-11 18:09:35 +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