1 实现 MQTT 变量数据发布功能

2
   3 - 迁移 IMqttServiceManager 接口到 DMS.Core
   4 - 在 DataCenterService 中添加 MQTT 服务器和变量别名的加载逻辑
   5 - 实现 MqttPublishProcessor 的核心处理逻辑
   6 - 为 DTO 和 ViewModel 的 MqttAliases 属性提供默认空列表初始化
   7 - 更新 AutoMapper 映射配置以支持 VariableMqttAliasDto
This commit is contained in:
2025-09-07 08:51:18 +08:00
parent be16e1a5d7
commit 1f9c0a1111
11 changed files with 122 additions and 44 deletions

View File

@@ -0,0 +1,65 @@
using DMS.Core.Models;
namespace DMS.Core.Interfaces.Services
{
/// <summary>
/// MQTT服务管理器接口负责管理MQTT连接和变量监控
/// </summary>
public interface IMqttServiceManager : IDisposable
{
/// <summary>
/// 初始化服务管理器
/// </summary>
Task InitializeAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 添加MQTT服务器到监控列表
/// </summary>
void AddMqttServer(MqttServer mqttServer);
/// <summary>
/// 移除MQTT服务器监控
/// </summary>
Task RemoveMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
/// <summary>
/// 更新MQTT服务器变量别名
/// </summary>
void UpdateVariableMqttAliases(int mqttServerId, List<VariableMqttAlias> variableMqttAliases);
/// <summary>
/// 获取MQTT服务器连接状态
/// </summary>
bool IsMqttServerConnected(int mqttServerId);
/// <summary>
/// 重新连接MQTT服务器
/// </summary>
Task ReconnectMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
/// <summary>
/// 获取所有监控的MQTT服务器ID
/// </summary>
IEnumerable<int> GetMonitoredMqttServerIds();
/// <summary>
/// 连接MQTT服务器
/// </summary>
Task ConnectMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
/// <summary>
/// 断开MQTT服务器连接
/// </summary>
Task DisconnectMqttServerAsync(int mqttServerId, CancellationToken cancellationToken = default);
/// <summary>
/// 发布变量数据到MQTT服务器
/// </summary>
Task PublishVariableDataAsync(VariableMqtt variableMqtt, CancellationToken cancellationToken = default);
/// <summary>
/// 发布批量变量数据到MQTT服务器
/// </summary>
Task PublishVariablesDataAsync(List<VariableMqtt> variableMqtts, CancellationToken cancellationToken = default);
}
}