using DMS.Core.Enums; using SqlSugar; using SqlSugar.DbConvert; namespace DMS.Infrastructure.Entities; /// /// 代表数据库中的变量实体,与 'variable' 表对应。 /// public class DbVariable { /// /// 主键ID,自增长。 /// [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// /// 变量名称。 /// public string Name { get; set; } /// /// 变量的描述信息,可以为空。 /// [SugarColumn(IsNullable = true)] public string Description { get; set; } /// /// 变量的信号类型(例如:状态、控制、报警等)。 /// [SugarColumn(ColumnDataType="varchar(20)",SqlParameterDbType=typeof(EnumToStringConvert))] public SignalType SignalType { get; set; } /// /// 变量的轮询级别,决定数据采集频率。 /// [SugarColumn(ColumnDataType="varchar(20)",SqlParameterDbType=typeof(EnumToStringConvert))] public PollLevelType PollLevel { get; set; } /// /// 指示此变量是否处于激活状态。 /// public bool IsActive { get; set; } /// /// 所属变量表的ID (外键)。 /// public int VariableTableId { get; set; } /// /// 从设备读取到的原始值。 /// [SugarColumn(IsNullable = true)] public string DataValue { get; set; } /// /// 经过转换公式计算后的显示值。 /// [SugarColumn(IsNullable = true)] public string DisplayValue { get; set; } /// /// S7协议中的地址 (例如: DB1.DBD0, M100.0),可以为空。 /// [SugarColumn(IsNullable = true)] public string S7Address { get; set; } /// /// OPC UA协议中的NodeId,可以为空。 /// [SugarColumn(IsNullable = true)] public string OpcUaNodeId { get; set; } /// /// 是否启用历史数据记录。 /// public bool IsHistoryEnabled { get; set; } /// /// 历史数据记录的死区值,变化量超过该值时才记录。 /// public double HistoryDeadband { get; set; } /// /// 是否启用报警功能。 /// public bool IsAlarmEnabled { get; set; } /// /// 报警下限值。 /// public double AlarmMinValue { get; set; } /// /// 报警上限值。 /// public double AlarmMaxValue { get; set; } /// /// 报警死区值,变化量超过该值时才触发报警。 /// public double AlarmDeadband { get; set; } /// /// 变量使用的通讯协议类型。 /// [SugarColumn(ColumnDataType="varchar(20)",SqlParameterDbType=typeof(EnumToStringConvert))] public ProtocolType Protocol { get; set; } /// /// 变量的数据类型。 /// [SugarColumn(ColumnDataType="varchar(20)",SqlParameterDbType=typeof(EnumToStringConvert))] public DataType DataType { get; set; } /// /// 数值转换公式 (例如: "+3*5"),可以为空。 /// [SugarColumn(IsNullable = true)] public string ConversionFormula { get; set; } /// /// 记录创建时间。 /// public DateTime CreatedAt { get; set; } /// /// 记录最后更新时间。 /// public DateTime UpdatedAt { get; set; } /// /// 最后更新记录的用户名或系统进程名。 /// [SugarColumn(IsNullable = true)] public string UpdatedBy { get; set; } /// /// 标记该记录是否被修改,用于同步。 /// public bool IsModified { get; set; } /// /// OPC UA的更新类型(例如:轮询、订阅)。 /// [SugarColumn(ColumnDataType="varchar(20)",SqlParameterDbType=typeof(EnumToStringConvert))] public OpcUaUpdateType OpcUaUpdateType { get; set; } }