using Bro.Common.Helper;
using Bro.Common.Interface;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Bro.Common.Model
{
///
/// PLC监听设置
///
public class MonitorSet : IComplexDisplay
{
[Category("监听配置")]
[Description("监听设备")]
[TypeConverter(typeof(MonitorDeviceConverter))]
public string MonitorDevice { get; set; }
[Category("监听配置")]
[Description("调用方法")]
[TypeConverter(typeof(MonitorCodeConverter))]
public string MethodCode { get; set; }
[Category("监听配置")]
[Description("方法操作配置")]
[TypeConverter(typeof(ComplexObjectConvert))]
public IOperationConfig OpConfig { get; set; }
///
/// 监听地址索引 按照PLC监听地址从0开始的索引
///
[Category("监听设置")]
[Description("监听地址索引 按照PLC监听地址从0开始的索引")]
public int TriggerIndex { get; set; } = -1;
///
/// 触发值
///
[Category("监听设置")]
[Description("触发值,设置为-999时变化即触发")]
public int TriggerValue { get; set; } = -1;
///
/// 传入数据地址的索引 按照PLC监听地址从0开始的索引集合
///
[Category("监听设置")]
[Description("传入数据地址的索引 按照PLC监听地址从0开始的索引")]
[TypeConverter(typeof(SimpleCollectionConvert))]
public List InputDataIndex { get; set; } = new List();
///
/// 数据地址 实际PLC寄存器的地址,例如 40012
///
[Category("回传设置")]
[Description("回传数据地址 实际PLC寄存器的地址,10进制,例如 40012")]
public int ReplyDataAddress { get; set; } = -1;
///
/// 通知地址 实际PLC寄存器的地址,例如 40012
///
[Category("回传设置")]
[Description("通知地址 实际PLC寄存器的地址,10进制,例如 40012")]
public int NoticeAddress { get; set; } = -1;
public MonitorSet() { }
public MonitorSet(int triggerIndex, int triggerValue, List inputDataIndex, int dataIndex, int noticeIndex)
{
TriggerIndex = triggerIndex;
TriggerValue = triggerValue;
InputDataIndex = inputDataIndex;
ReplyDataAddress = dataIndex;
NoticeAddress = noticeIndex;
}
public string GetDisplayText()
{
return "";
}
}
public class MonitorCodeConverter : ComboBoxItemTypeConvert
{
public override void GetConvertHash()
{
throw new NotImplementedException();
}
}
public class MonitorDeviceConverter : ComboBoxItemTypeConvert
{
public override void GetConvertHash()
{
throw new NotImplementedException();
}
}
}