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防止空引用异常
This commit is contained in:
2025-10-05 00:28:25 +08:00
parent d4562e600e
commit a6fc543e4f
25 changed files with 497 additions and 537 deletions

View File

@@ -0,0 +1,83 @@
namespace DMS.Core.Enums
{
/// <summary>
/// MQTT服务器属性类型枚举
/// </summary>
public enum MqttServerPropertyType
{
/// <summary>
/// 服务器名称
/// </summary>
ServerName,
/// <summary>
/// 服务器URL
/// </summary>
ServerUrl,
/// <summary>
/// 端口
/// </summary>
Port,
/// <summary>
/// 是否连接
/// </summary>
IsConnect,
/// <summary>
/// 用户名
/// </summary>
Username,
/// <summary>
/// 密码
/// </summary>
Password,
/// <summary>
/// 是否激活
/// </summary>
IsActive,
/// <summary>
/// 订阅主题
/// </summary>
SubscribeTopic,
/// <summary>
/// 发布主题
/// </summary>
PublishTopic,
/// <summary>
/// 客户端ID
/// </summary>
ClientId,
/// <summary>
/// 消息格式
/// </summary>
MessageFormat,
/// <summary>
/// 消息头
/// </summary>
MessageHeader,
/// <summary>
/// 消息内容
/// </summary>
MessageContent,
/// <summary>
/// 消息尾
/// </summary>
MessageFooter,
/// <summary>
/// 所有属性
/// </summary>
All
}
}

View File

@@ -12,6 +12,8 @@ public class MqttServer
public string Username { get; set; } // 用户名
public string Password { get; set; } // 密码
public bool IsActive { get; set; } // 是否启用
public bool IsConnect { get; set; } // 是否启用
/// <summary>
/// MQTT订阅主题。