using MECF.Framework.Common.CommonData;
using MECF.Framework.Common.Device.LinMot;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace MECF.Framework.Common.Device.PowerSupplier
{
    public class PowerSupplierDeviceConfig : NotifiableItem
    {
        #region 内部变量
        private List<PowerSupplierDevice> _devices;
        #endregion

        #region 属性

        [XmlAttribute(AttributeName = "Name", Form = XmlSchemaForm.Unqualified, DataType = "string")]
        public string Name { get; set; }

        [XmlAttribute(AttributeName = "IpAddress", Form = XmlSchemaForm.Unqualified, DataType = "string")]
        public string IpAddress { get; set; }

        [XmlAttribute(AttributeName = "Port", Form = XmlSchemaForm.Unqualified, DataType = "int")]
        public int Port { get; set; }

        [XmlAttribute(AttributeName = "SendTimeout", Form = XmlSchemaForm.Unqualified, DataType = "int")]
        public int SendTimeout { get; set; }

        [XmlAttribute(AttributeName = "RecvTimeout", Form = XmlSchemaForm.Unqualified, DataType = "int")]
        public int RecvTimeout { get; set; }

        [XmlElement(Type = typeof(PowerSupplierDevice), ElementName = "Device", IsNullable = false, Form = XmlSchemaForm.Qualified)]
        public List<PowerSupplierDevice> Devices { get { return _devices; } set { _devices = value; InvokePropertyChanged(nameof(Devices)); } }
        #endregion
    }
}