using Bro.Common.Helper;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using static Bro.Common.Helper.EnumHelper;
namespace Bro.Common.Model
{
public class IOItem : IComplexDisplay
{
///
/// IO点编号
///
[Category("IO配置")]
[Description("IO点编号")]
public virtual int IONum { get; set; }
///
/// IO点的值
///
[Category("IO配置")]
[Description("IO数值")]
public virtual int Value { get; set; }
///
/// IO点是in还是out
///
[Category("IO配置")]
[Description("IO类型")]
public virtual IOType IOType { get; set; }
public string GetDisplayText()
{
return $"{IOType.GetEnumDescription()},编号{IONum},IO点的值{Value}";
}
}
public class IODefinition : IOItem
{
[Category("IO配置")]
[Description("IO用途描述")]
public string IODesc { get; set; }
[Category("IO配置")]
[Description("备注说明")]
public string Remark { get; set; }
[Browsable(false)]
[JsonIgnore]
public override int Value { get; set; }
public new string GetDisplayText()
{
return $"{IODesc} {IOType.GetEnumDescription()} {IONum}";
}
}
public class IORefrenceItem
{
[Category("IO操作配置")]
[Description("需要操作的IO")]
public IOItem IOItem { get; set; } = new IOItem();
[Category("IO操作配置")]
[Description("需要操作的IO的数值")]
public int CheckValue { get => IOItem.Value; set => IOItem.Value = value; }
[Browsable(false)]
[JsonIgnore]
public List IOItemSource { get; set; } = new List();
}
}