using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IACommService4CSharp
{
    public enum AXENCRYPTED_COM
    {
        REQUIRED = 0,
        SUPPORTED,
        NO_SUPPORTED
    }

    public class DeviceBaseInfo_t : ComplexBase_t
    {
        public DeviceBaseInfo_t() : base()
        {
        }
        //Internal use
        public DeviceBaseInfo_t(IDataValue4CSharp value) : base(value)
        {
        }
        public string Name
        {
            get
            {
                return GetFieldValue("Name") as string;
            }
            set
            {
                SetFieldValue("Name", value);
            }
        }
        public string Address
        {
            get
            {
                return GetFieldValue("Address") as string;
            }
            set
            {
                SetFieldValue("Address", value);
            }
        }
        public string Vendor
        {
            get
            {
                return GetFieldValue("Vendor") as string;
            }
            set
            {
                SetFieldValue("Vendor", value);
            }
        }
        public string SeriesName
        {
            get
            {
                return GetFieldValue("SeriesName") as string;
            }
            set
            {
                SetFieldValue("SeriesName", value);
            }
        }
        public string SerialNumber
        {
            get
            {
                return GetFieldValue("SerialNumber") as string;
            }
            set
            {
                SetFieldValue("SerialNumber", value);
            }
        }
        public uint DeviceID
        {
            get
            {
                return (uint)GetFieldValue("DeviceID");
            }
            set
            {
                SetFieldValue("DeviceID", value);
            }
        }
        public uint DeviceType
        {
            get
            {
                return (uint)GetFieldValue("DeviceType");
            }
            set
            {
                SetFieldValue("DeviceType", value);
            }
        }
        public uint ChannelNumber
        {
            get
            {
                return (uint)GetFieldValue("ChannelNumber");
            }
            set
            {
                SetFieldValue("ChannelNumber", value);
            }
        }
        public AXENCRYPTED_COM EncryptedCommunication
        {
            get
            {
                return (AXENCRYPTED_COM)(Int16)GetFieldValue("EncryptedCommunication");
            }
            set
            {
                SetFieldValue("EncryptedCommunication", (Int16)value);
            }
        }
    }
}
