Files
DMS/Models/VariableMqtt.cs

84 lines
2.0 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 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; }
}