FeederData.cs 5.16 KB
using FLY.OBJComponents.IService;
using System.Collections.Generic;
using System.ComponentModel;

namespace FLY.DownBlowing.Common
{
    public class FeederData : INotifyPropertyChanged
    {
        public FeederData()
        {

        }
        public void Init(string number) 
        {
            Number = number;
            FeedersBinding();
        }
        /// <summary>
        /// 名称:A,B,C,D,E
        /// </summary>
        public string Number { get; set; }

        #region 辅助代码生成
        /// <summary>
        /// 吸料开1
        /// </summary>
        [Description("吸料开1")]
        public bool IsFeederOn1{ get; set; }

        /// <summary>
        /// 吸料开2
        /// </summary>
        [Description("吸料开2")]
        public bool IsFeederOn2{ get; set; }

        /// <summary>
        /// 吸料开3
        /// </summary>
        [Description("吸料开3")]
        public bool IsFeederOn3{ get; set; }

        /// <summary>
        /// 吸料开4
        /// </summary>
        [Description("吸料开4")]
        public bool IsFeederOn4{ get; set; }

        /// <summary>
        /// 吸料开5
        /// </summary>
        [Description("吸料开5")]
        public bool IsFeederOn5{ get; set; }

        /// <summary>
        /// 吸料开6
        /// </summary>
        [Description("吸料开6")]
        public bool IsFeederOn6{ get; set; }

        /// <summary>
        /// 吸料复位1(按1)
        /// </summary>
        [Description("吸料复位1(按1)")]
        public bool FeederReset1{ get; set; }

        /// <summary>
        /// 吸料复位2(按1)
        /// </summary>
        [Description("吸料复位2(按1)")]
        public bool FeederReset2{ get; set; }

        /// <summary>
        /// 吸料复位3(按1)
        /// </summary>
        [Description("吸料复位3(按1)")]
        public bool FeederReset3{ get; set; }

        /// <summary>
        /// 吸料复位4(按1)
        /// </summary>
        [Description("吸料复位4(按1)")]
        public bool FeederReset4{ get; set; }

        /// <summary>
        /// 吸料复位5(按1)
        /// </summary>
        [Description("吸料复位5(按1)")]
        public bool FeederReset5{ get; set; }

        /// <summary>
        /// 吸料复位6(按1)
        /// </summary>
        [Description("吸料复位6(按1)")]
        public bool FeederReset6{ get; set; }

        /// <summary>
        /// 吸料复位有效1
        /// </summary>
        [Description("吸料复位有效1")]
        public bool IsFeederResetValid1{ get; set; }

        /// <summary>
        /// 吸料复位有效2
        /// </summary>
        [Description("吸料复位有效2")]
        public bool IsFeederResetValid2{ get; set; }

        /// <summary>
        /// 吸料复位有效3
        /// </summary>
        [Description("吸料复位有效3")]
        public bool IsFeederResetValid3{ get; set; }

        /// <summary>
        /// 吸料复位有效4
        /// </summary>
        [Description("吸料复位有效4")]
        public bool IsFeederResetValid4{ get; set; }

        /// <summary>
        /// 吸料复位有效5
        /// </summary>
        [Description("吸料复位有效5")]
        public bool IsFeederResetValid5{ get; set; }

        /// <summary>
        /// 吸料复位有效6
        /// </summary>
        [Description("吸料复位有效6")]
        public bool IsFeederResetValid6{ get; set; }

        #endregion

        [Newtonsoft.Json.JsonIgnore]
        public List<FeederCell> Feeders { get; } = new List<FeederCell>();

        /// <summary>
        /// 每个料仓 绑定到 对应的队列
        /// </summary>
        void FeedersBinding()
        {
            Feeders.Clear();

            for (int i = 0; i < 6; i++)
            {
                int no = i + 1;
                FeederCell feeder = new FeederCell();
                feeder.Number = no.ToString();

                Misc.BindingOperations.SetBinding(this, $"IsFeederOn{no}", feeder, nameof(feeder.IsFeederOn), Misc.BindingOperations.BindingMode.TwoWay);
                Misc.BindingOperations.SetBinding(this, $"FeederReset{no}", feeder, nameof(feeder.FeederReset), Misc.BindingOperations.BindingMode.TwoWay);
                Misc.BindingOperations.SetBinding(this, $"IsFeederResetValid{no}", feeder, nameof(feeder.IsFeederResetValid));

                Feeders.Add(feeder);
            }


        }

        public event PropertyChangedEventHandler PropertyChanged;
    }

    public class FeederCell : INotifyPropertyChanged
    {
        /// <summary>
        /// 序号
        /// </summary>
        public string Number { get; set; }

        /// <summary>
        /// 吸料开1
        /// </summary>
        [Description("吸料开")]
        public bool IsFeederOn { get; set; }

        /// <summary>
        /// 吸料复位1(按1)
        /// </summary>
        [Description("吸料复位(按1)")]
        public bool FeederReset { get; set; }

        /// <summary>
        /// 吸料复位有效6
        /// </summary>
        [Description("吸料复位有效")]
        public bool IsFeederResetValid { get; set; }

        public event PropertyChangedEventHandler PropertyChanged;
    }
}