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