实现MQTT关联变量的别名问题,实现了,同个变量发给不同的MQTT服务器的名称不同

This commit is contained in:
2025-07-17 17:27:16 +08:00
parent 9cffb57b58
commit aea7a21d57
9 changed files with 416 additions and 0 deletions

84
Models/VariableMqtt.cs Normal file
View File

@@ -0,0 +1,84 @@
using System;
using CommunityToolkit.Mvvm.ComponentModel;
using PMSWPF.Data.Entities;
using PMSWPF.Enums;
namespace PMSWPF.Models;
/// <summary>
/// 表示变量数据与MQTT服务器之间的关联模型包含MQTT别名。
/// </summary>
public partial class VariableMqtt : ObservableObject
{
public VariableMqtt()
{
}
public VariableMqtt(VariableData? variableData, Mqtt? mqtt)
{
VariableData = variableData;
Mqtt = mqtt;
MqttAlias = MqttAlias != String.Empty ? MqttAlias : variableData.Name;
}
/// <summary>
/// 关联的唯一标识符。
/// </summary>
public int Id { get; set; }
/// <summary>
/// 关联的变量数据ID。
/// </summary>
public int VariableDataId { get; set; }
/// <summary>
/// 关联的MQTT服务器ID。
/// </summary>
public int MqttId { get; set; }
/// <summary>
/// 变量在该MQTT服务器上的别名。
/// </summary>
[ObservableProperty]
private string _mqttAlias = string.Empty;
/// <summary>
/// 变量的唯一标识符S7地址或OPC UA NodeId
/// </summary>
public string Identifier
{
get
{
if (VariableData.ProtocolType == ProtocolType.S7)
{
return VariableData.S7Address;
}
else if (VariableData.ProtocolType == ProtocolType.OpcUA)
{
return VariableData.OpcUaNodeId;
}
return string.Empty;
}
}
/// <summary>
/// 创建时间。
/// </summary>
public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 更新时间。
/// </summary>
public DateTime UpdateTime { get; set; } = DateTime.Now;
/// <summary>
/// 导航属性:关联的变量数据。
/// </summary>
public VariableData? VariableData { get; set; }
/// <summary>
/// 导航属性关联的MQTT服务器。
/// </summary>
public Mqtt? Mqtt { get; set; }
}