using SqlSugar;
namespace Model.Entity.Config
{
///
/// 物模型点(属性/指令通用表;通过 OwnerType+OwnerId 归属产品或设备)
/// 一条点 = 一个寄存器/线圈映射;可写点即"下发指令"的入口
///
public class ThingModelPointEntity : BaseEntity
{
///
/// 归属类型(1=产品 2=设备)
///
[SugarColumn(ColumnDescription = "归属类型")]
public ThingOwnerTypeEnum OwnerType { get; set; }
///
/// 归属对象Id(ProductEntity.Id / IotDeviceEntity.Id)
///
[SugarColumn(ColumnDescription = "归属对象Id")]
public long OwnerId { get; set; }
///
/// 点编码(同一归属内唯一,如 TempPV)
///
[SugarColumn(ColumnDescription = "点编码", Length = 64)]
public string Code { get; set; }
///
/// 点名称
///
[SugarColumn(ColumnDescription = "点名称", Length = 100, IsNullable = true)]
public string? Name { get; set; }
///
/// 寄存器类型(线圈/保持寄存器/输入寄存器)
///
[SugarColumn(ColumnDescription = "寄存器类型")]
public ThingRegisterTypeEnum RegisterType { get; set; }
///
/// 读写权限
///
[SugarColumn(ColumnDescription = "读写权限")]
public ThingRwEnum Rw { get; set; }
///
/// 数据类型
///
[SugarColumn(ColumnDescription = "数据类型")]
public ThingDataTypeEnum DataType { get; set; }
///
/// 寄存器起始地址
///
[SugarColumn(ColumnDescription = "寄存器起始地址")]
public ushort Address { get; set; }
///
/// 换算系数(工程值 = 寄存器原始值 / Scale + Offset,对应驱动内 SCALE)
///
[SugarColumn(ColumnDescription = "换算系数", DecimalDigits = 4)]
public double Scale { get; set; } = 1;
///
/// 偏移量
///
[SugarColumn(ColumnDescription = "偏移量", DecimalDigits = 4)]
public double Offset { get; set; }
///
/// 单位
///
[SugarColumn(ColumnDescription = "单位", Length = 16, IsNullable = true)]
public string? Unit { get; set; }
///
/// 是否启用
///
[SugarColumn(ColumnDescription = "是否启用")]
public bool Enabled { get; set; } = true;
///
/// 排序号
///
[SugarColumn(ColumnDescription = "排序号")]
public int Sort { get; set; }
///
/// 备注
///
[SugarColumn(ColumnDescription = "备注", Length = 500, IsNullable = true)]
public string? Remark { get; set; }
}
}