using PMSWPF.Enums; using SqlSugar; using SqlSugar.DbConvert; namespace PMSWPF.Data.Entities; /// /// 表示数据库中的变量数据实体。 /// [SugarTable("VarData")] public class DbVariableData { /// /// 变量唯一标识符。 /// [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] //数据库是自增才配自增 public int Id { get; set; } /// /// 变量名称。 /// public string Name { get; set; } /// /// 节点ID,用于标识变量在设备或系统中的唯一路径。 /// [SugarColumn(IsNullable = true)] public string NodeId { get; set; } = String.Empty; /// /// 节点ID,用于标识变量在设备或系统中的唯一路径。 /// [SugarColumn(IsNullable = true)] public string S7Address { get; set; } = String.Empty; /// /// OPC UA Endpoint URL。 /// [SugarColumn(IsNullable = true)] public string? OpcUaEndpointUrl { get; set; } /// /// OPC UA Node ID。 /// [SugarColumn(IsNullable = true)] public string? OpcUaNodeId { get; set; } /// /// 变量描述。 /// [SugarColumn(IsNullable = true)] public string? Description { get; set; } /// /// 协议类型,例如Modbus、OPC UA等。 /// [SugarColumn(ColumnDataType = "varchar(20)", SqlParameterDbType = typeof(EnumToStringConvert))] public ProtocolType ProtocolType { get; set; } /// /// 信号类型,例如模拟量、数字量等。 /// [SugarColumn(ColumnDataType = "varchar(20)", IsNullable = true, SqlParameterDbType = typeof(EnumToStringConvert))] public SignalType SignalType { get; set; } /// /// 数据类型,例如Int、Float、String等。 /// public string DataType { get; set; } = String.Empty; /// /// 变量当前原始数据值。 /// public string DataValue { get; set; } = String.Empty; /// /// 变量经过转换或格式化后的显示值。 /// public string DisplayValue { get; set; } = String.Empty; /// /// 指示变量是否处于激活状态。 /// public bool IsActive { get; set; } /// /// 指示是否需要保存变量数据。 /// public bool IsSave { get; set; } /// /// 指示是否需要对变量进行报警监测。 /// public bool IsAlarm { get; set; } /// /// 轮询级别,例如1秒、5秒等。 /// [SugarColumn(ColumnDataType = "varchar(20)",IsNullable =true, SqlParameterDbType = typeof(EnumToStringConvert))] public PollLevelType PollLevelType { get; set; } /// /// OPC UA更新类型,例如轮询或订阅。 /// [SugarColumn(ColumnDataType = "varchar(20)", IsNullable = true, SqlParameterDbType = typeof(EnumToStringConvert))] public OpcUaUpdateType OpcUaUpdateType { get; set; } /// /// 指示变量是否已被逻辑删除。 /// public bool IsDeleted { get; set; } /// /// 报警的最大值阈值。 /// public double AlarmMax { get; set; } /// /// 报警的最小值阈值。 /// public double AlarmMin { get; set; } /// /// 数据转换规则或表达式。 /// public string Converstion { get; set; } = String.Empty; /// /// 数据保存的范围或阈值。 /// public double SaveRange { get; set; } /// /// 变量数据最后更新时间。 /// [SugarColumn(IsNullable = true)] public DateTime CreateTime { get; set; } /// /// 变量数据最后更新时间。 /// public DateTime UpdateTime { get; set; } = DateTime.Now; /// /// 最后更新变量数据的用户。 /// [SugarColumn(IsNullable = true)] public DbUser? UpdateUser { get; set; } /// /// 关联的变量表ID。 /// public int VariableTableId { get; set; } /// /// 关联的变量表实体。 /// [Navigate(NavigateType.ManyToOne, nameof(VariableTableId))] public DbVariableTable? VariableTable { get; set; } /// /// 关联的MQTT配置列表。 /// [Navigate(typeof(DbVariableDataMqtt), "VariableDataId", "MqttId")] public List? Mqtts { get; set; } }