2025-07-17 17:27:16 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
2025-07-18 22:21:16 +08:00
|
|
|
|
using DMS.Core.Enums;
|
2025-07-17 17:27:16 +08:00
|
|
|
|
|
2025-07-19 11:11:01 +08:00
|
|
|
|
using DMS.WPF.Models;
|
|
|
|
|
|
|
|
|
|
|
|
namespace DMS.WPF.Models;
|
2025-07-17 17:27:16 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表示变量数据与MQTT服务器之间的关联模型,包含MQTT别名。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public partial class VariableMqtt : ObservableObject
|
|
|
|
|
|
{
|
|
|
|
|
|
public VariableMqtt()
|
|
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-17 20:13:21 +08:00
|
|
|
|
public VariableMqtt(Variable variable, Mqtt mqtt)
|
2025-07-17 17:27:16 +08:00
|
|
|
|
{
|
2025-07-18 19:15:29 +08:00
|
|
|
|
if (mqtt != null && variable != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
Variable = variable;
|
|
|
|
|
|
Mqtt = mqtt;
|
|
|
|
|
|
MqttAlias = MqttAlias != String.Empty ? MqttAlias : variable.Name;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-07-17 17:27:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关联的唯一标识符。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 关联的变量数据ID。
|
|
|
|
|
|
/// </summary>
|
2025-07-17 20:13:21 +08:00
|
|
|
|
public int VariableId { get; set; }
|
2025-07-17 17:27:16 +08:00
|
|
|
|
|
|
|
|
|
|
/// <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
|
|
|
|
|
|
{
|
2025-07-18 19:15:29 +08:00
|
|
|
|
if (Variable!=null)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-17 20:13:21 +08:00
|
|
|
|
if (Variable.ProtocolType == ProtocolType.S7)
|
2025-07-17 17:27:16 +08:00
|
|
|
|
{
|
2025-07-17 20:13:21 +08:00
|
|
|
|
return Variable.S7Address;
|
2025-07-17 17:27:16 +08:00
|
|
|
|
}
|
2025-07-17 20:13:21 +08:00
|
|
|
|
else if (Variable.ProtocolType == ProtocolType.OpcUA)
|
2025-07-17 17:27:16 +08:00
|
|
|
|
{
|
2025-07-17 20:13:21 +08:00
|
|
|
|
return Variable.OpcUaNodeId;
|
2025-07-17 17:27:16 +08:00
|
|
|
|
}
|
2025-07-18 19:15:29 +08:00
|
|
|
|
}
|
2025-07-17 17:27:16 +08:00
|
|
|
|
return string.Empty;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 创建时间。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DateTime CreateTime { get; set; } = DateTime.Now;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更新时间。
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DateTime UpdateTime { get; set; } = DateTime.Now;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 导航属性:关联的变量数据。
|
|
|
|
|
|
/// </summary>
|
2025-07-17 20:13:21 +08:00
|
|
|
|
public Variable Variable { get; set; }
|
2025-07-17 17:27:16 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 导航属性:关联的MQTT服务器。
|
|
|
|
|
|
/// </summary>
|
2025-07-17 20:13:21 +08:00
|
|
|
|
public Mqtt Mqtt { get; set; }
|
2025-07-17 17:27:16 +08:00
|
|
|
|
}
|