Files
DMS/DMS.Core/Interfaces/Services/IMqttServiceManager.cs
David P.G 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

65 lines
2.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}