using System.Threading.Tasks; using DMS.Application.Interfaces; using DMS.Application.Models; using DMS.Core.Models; namespace DMS.Application.Services.Processors; /// /// 负责将变量数据发布到MQTT的处理器。 /// public class MqttPublishProcessor : IVariableProcessor { // private readonly IMqttServiceManager _mqttServiceManager; // public MqttPublishProcessor(IMqttServiceManager mqttServiceManager) // { // // _mqttServiceManager = mqttServiceManager; // } /// /// 处理单个变量上下文,如果有关联的MQTT配置,则将其推送到发送队列。 /// /// 包含变量及其元数据的上下文对象。 public async Task ProcessAsync(VariableContext context) { // var variable = context.Data; // if (variable?.MqttAliases == null || variable.MqttAliases.Count == 0) // { // return; // 没有关联的MQTT配置,直接返回 // } // // // 遍历所有关联的MQTT配置,并将其推入发送队列 // foreach (var variableMqttAlias in variable.MqttAliases) // { // // 创建VariableMqtt对象 // var variableMqtt = new VariableMqtt // { // Variable = variable, // Mqtt = variableMqttAlias.MqttServer, // MqttId = variableMqttAlias.MqttServerId // }; // // // 发布变量数据到MQTT服务器 // await _mqttServiceManager.PublishVariableDataAsync(variableMqtt); // } } }