namespace MWS.Model
{
    public class V_DeviceTag
    {
        /// <summary>
        /// 设备Id
        /// </summary>
        public short DeviceId { get; set; }
        /// <summary>
        /// 设备名称
        /// </summary>
        public string DeviceName { get; set; }

        /// <summary>
        /// 采集源Id
        /// </summary>
        public short ComponentId { get; set; }
        /// <summary>
        /// 采集源类型 1 PLC 2 Modbus
        /// </summary>
        public short ComponentType { get; set; }
        /// <summary>
        /// 采集源型号 PLC型号或Modbus站号
        /// </summary>
        public string ComponentModel { get; set; }
        /// <summary>
        /// 采集源地址
        /// </summary>
        public string ComponentAddress { get; set; }
        /// <summary>
        /// 变量Id
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 变量Code
        /// </summary>
        public string Code { get; set; }
        /// <summary>
        /// 变量名称
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 变量地址
        /// </summary>
        public string Address { get; set; }
        /// <summary>
        /// 报警判断条件
        /// </summary>
        public string AlertConditions { get; set; }
        /// <summary>
        /// 报警消息内容
        /// </summary>
        public string AlertMessage { get; set; }
        /// <summary>
        /// 报警阀值
        /// </summary>
        public string AlertValue { get; set; }
        /// <summary>
        /// 数据类型 1 bool 2 ushort 3 short 4 uint 5 int 6 float 7 string
        /// </summary>
        public short DataType { get; set; } = 1;

        /// <summary>
        /// PLC数据类型  PLC数据类型 1 BOOL 布尔 2 BYTE 字节 3 WORD 字(无符号整数) 4 INT 整数(带符号的整数) 5 DWORD 双字(无符号双整数) 6 DINT 双整数(带符号的双整数) 7 REAL 实数(32位浮点数)
        /// </summary>
        public short SourceDataType { get; set; } = 1;

        /// <summary>
        /// 是否需要标定
        /// </summary>
        public bool IsCalibration { get; set; } = false;

        /// <summary>
        /// 是否报警
        /// </summary>
        public bool IsAlert { get; set; } = false;

        /// <summary>
        /// 是否取反向值 变量为开关量时是否取反显示
        /// </summary>
        public bool IsReverse { get; set; } = false;

        /// <summary>
        /// 所属机构 1 大车 2 小车 3 起升  4 配电
        /// </summary>
        public short MecType { get; set; }

        /// <summary>
        /// 开关量类型 1 指示 True 绿灯 False 灰灯 2 警告 True 黄灯 False 绿灯 3 报警 True 红灯 False 绿灯
        /// </summary>
        public short SwitchType { get; set; } = 1;

        /// <summary>
        /// 单位 单位id
        /// </summary>
        public string Unit { get; set; }

        /// <summary>
        /// 折算率 折算率 如重量0.01 即 实际重量为重量乘以0.01
        /// </summary>
        public float Translate { get; set; } = 1;

        /// <summary>
        /// 变量类型  0 正常 1 档位 2 重量 3 行程高度 4 载荷  5 电流 6 电压 7 速度 8 振幅 9 温度 10 力矩  11 频率 12 虚拟档位
        /// </summary>
        public short TagType { get; set; } = 1;

        /// <summary>
        /// 是否关联总接触器
        /// </summary>
        public bool IsLinkedContactor { get; set; } = true;

        /// <summary>
        /// 是否存储
        /// </summary>
        public bool IsSave { get; set; }
        /// <summary>
        /// 排序 升序
        /// </summary>
        public short Sort { get; set; }
    }
}