using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
using Opc.Ua;
namespace PMSWPF.Models;
///
/// 表示OPC UA节点,用于构建节点树。
///
public partial class OpcUaNode : ObservableObject
{
///
/// 节点的显示名称。
///
public string DisplayName { get; set; }
///
/// 节点的唯一标识符。
///
public NodeId NodeId { get; set; }
///
/// 节点的类型(例如,文件夹、变量)。
///
public NodeType NodeType { get; set; }
///
/// 子节点集合。
///
[ObservableProperty]
private ObservableCollection _children;
///
/// 指示节点是否已加载子节点。
///
[ObservableProperty]
private bool _isLoaded;
///
/// 指示节点是否正在加载子节点。
///
[ObservableProperty]
private bool _isLoading;
///
/// 节点的完整路径(可选,用于调试或显示)。
///
public string Path { get; set; }
///
/// 构造函数。
///
/// 显示名称。
/// 节点ID。
/// 节点类型。
public OpcUaNode(string displayName, NodeId nodeId, NodeType nodeType)
{
DisplayName = displayName;
NodeId = nodeId;
NodeType = nodeType;
Children = new ObservableCollection();
}
}
///
/// OPC UA节点类型枚举。
///
public enum NodeType
{
Folder,
Object,
Variable
}