Config.cs 10.7 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace LoadCSVLibrary
{
    public class LineConfig : RobotConfig
    {
        public LineConfig()
            : base()
        {
        }
        public LineConfig(  string filepath)
            : base(1, "", "", filepath)
        {
        }
         
        /// <summary>
        ///  PRO IO模块对应的DI数量 IO_DILength	192.168.200.10#16;192.168.200.11#4	
        /// </summary>
        [ConfigProAttribute("IO_DILength")]
        public string IO_DILength { get; set; }
        /// <summary>
        /// PRO 模块对应的DO数量   IO_DOLength	192.168.200.10#16;192.168.200.11#4	
        /// </summary>
        [ConfigProAttribute("IO_DOLength")]
        public string IO_DOLength { get; set; }

        /// <summary>
        /// DI,D2-任务应答,LIFT_D2_Response,0,PRO_AOI_IP_1,0,D2-任务应答,X21,X21,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_Response", false)]
        public string LIFT_D2_Response { get; set; }
        /// <summary>
        /// DI,D2-到达1F,LIFT_D2_AtFirst,1,PRO_AOI_IP_1,0,D2-到达1F,X22,X22,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_AtFirst", false)]
        public string LIFT_D2_AtFirst { get; set; }
        /// <summary>
        /// DI,D2-到达3F,D2_AtThird,2,PRO_AOI_IP_1,0,D2-到达3F,X23,X23,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_AtThird", false)]
        public string LIFT_D2_AtThird { get; set; }
        /// <summary>
        /// DI,D2-到达4F,D2_AtFourth,3,PRO_AOI_IP_1,0,D2-到达4F,X24,X24,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_AtFourth", false)]
        public string LIFT_D2_AtFourth { get; set; }
        /// <summary>
        /// DI,D2-门已开,D2_DoorOpen,4,PRO_AOI_IP_1,0,D2-门已开,X25,X25,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_DoorOpen", false)]
        public string LIFT_D2_DoorOpen { get; set; }
        /// <summary>
        /// DI,D2-故障中,D2_InFault,5,PRO_AOI_IP_1,0,D2-故障中,X26,X26,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_Fault", false)]
        public string LIFT_D2_Fault { get; set; }
        /// <summary>
        /// DI,D2-运行中,D2_InRun,6,PRO_AOI_IP_1,0,D2-运行中,X27,X27,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_InRun", false)]
        public string LIFT_D2_InRun { get; set; }
        /// <summary>
        /// DI,D2-运行中,D2_InRun,6,PRO_AOI_IP_1,0,D2-运行中,X27,X27,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2__HasEmptyFinished", false)]
        public string LIFT_D2__HasEmptyFinished { get; set; }

        /// <summary>
        /// DO,D2-AGV请求,D2_AGVRequest,0,PRO_AOI_IP_1,0,D2-AGV请求,Y21,Y21,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_AGVRequest", false)]
        public string LIFT_D2_AGVRequest { get; set; }
        /// <summary>
        /// DO,D2-AGV离开,D2_AGVLeave,1,PRO_AOI_IP_1,0,D2-AGV离开,Y22,Y22,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_AGVLeave", false)]
        public string LIFT_D2_AGVLeave { get; set; }
        /// <summary>
        /// DO,D2-AGV呼叫1F,D2_FirstCall,2,PRO_AOI_IP_1,0,D2-AGV呼叫1F,Y23,Y23,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_FirstCall", false)]
        public string LIFT_D2_FirstCall { get; set; }
        /// <summary>
        /// DO,D2-AGV呼叫3F,D2_ThirdCall,3,PRO_AOI_IP_1,0,D2-AGV呼叫3F,Y24,Y24,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_ThirdCall", false)]
        public string LIFT_D2_ThirdCall { get; set; }
        /// <summary>
        /// DO,D2-AGV呼叫4F,D2_FourthCall,4,PRO_AOI_IP_1,0,D2-AGV呼叫4F,Y25,Y25,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_FourthCall", false)]
        public string LIFT_D2_FourthCall { get; set; }
        /// <summary>
        /// DO,D2-送料信号1F,D2_RunToFirst,5,PRO_AOI_IP_1,0,D2-送料信号1F,Y26,Y26,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_RunToFirst", false)]
        public string LIFT_D2_RunToFirst { get; set; }
        /// <summary>
        /// DO,D2-送料信号3F,D2_RunToThird,6,PRO_AOI_IP_1,0,D2-送料信号3F,Y27,Y27,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_RunToThird", false)]
        public string LIFT_D2_RunToThird { get; set; }
        /// <summary>
        /// DO,D2-送料信号4F,D2_RunToFourth,7,PRO_AOI_IP_1,0,D2-送料信号4F,Y27,Y27,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2_RunToFourth", false)]
        public string LIFT_D2_RunToFourth { get; set; }
        /// <summary>
        /// DO,D2-送料信号4F,D2_RunToFourth,7,PRO_AOI_IP_1,0,D2-送料信号4F,Y27,Y27,0
        /// </summary>
        [ConfigProAttribute("LIFT_D2__HasFullFinished", false)]
        public string LIFT_D2__HasFullFinished { get; set; }
        /// <summary>
        /// DI,C1-任务应答,LIFT_C1_Response,0,PRO_AOI_IP_2,0,C1-任务应答,X31,X31,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_Response", false)]
        public string LIFT_C1_Response { get; set; }
        /// <summary>
        /// DI,C1-到达1F,LIFT_C1_AtFirst,1,PRO_AOI_IP_2,0,C1-到达1F,X32,X32,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_AtFirst", false)]
        public string LIFT_C1_AtFirst { get; set; }
        /// <summary>
        /// DI,C1-到达3F,C1_AtThird,2,PRO_AOI_IP_2,0,C1-到达3F,X33,X33,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_AtThird", false)]
        public string LIFT_C1_AtThird { get; set; }
        /// <summary>
        /// DI,C1-到达4F,C1_AtFourth,3,PRO_AOI_IP_2,0,C1-到达4F,X34,X34,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_AtFourth", false)]
        public string LIFT_C1_AtFourth { get; set; }
        /// <summary>
        /// DI,C1-门已开,C1_DoorOpen,4,PRO_AOI_IP_2,0,C1-门已开,X35,X35,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_DoorOpen", false)]
        public string LIFT_C1_DoorOpen { get; set; }
        /// <summary>
        /// DI,C1-故障中,C1_InFault,5,PRO_AOI_IP_2,0,C1-故障中,X36,X36,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_Fault", false)]
        public string LIFT_C1_Fault { get; set; }
        /// <summary>
        /// DI,C1-运行中,C1_InRun,6,PRO_AOI_IP_2,0,C1-运行中,X37,X37,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_InRun", false)]
        public string LIFT_C1_InRun { get; set; }


        /// <summary>
        /// DO,C1-AGV请求,C1_AGVRequest,0,PRO_AOI_IP_2,0,C1-AGV请求,Y31,Y31,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_AGVRequest", false)]
        public string LIFT_C1_AGVRequest { get; set; }
        /// <summary>
        /// DO,C1-AGV离开,C1_AGVLeave,1,PRO_AOI_IP_2,0,C1-AGV离开,Y32,Y32,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_AGVLeave", false)]
        public string LIFT_C1_AGVLeave { get; set; }
        /// <summary>
        /// DO,C1-AGV呼叫1F,C1_FirstCall,2,PRO_AOI_IP_2,0,C1-AGV呼叫1F,Y33,Y33,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_FirstCall", false)]
        public string LIFT_C1_FirstCall { get; set; }
        /// <summary>
        /// DO,C1-AGV呼叫3F,C1_ThirdCall,3,PRO_AOI_IP_2,0,C1-AGV呼叫3F,Y34,Y34,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_ThirdCall", false)]
        public string LIFT_C1_ThirdCall { get; set; }
        /// <summary>
        /// DO,C1-AGV呼叫4F,C1_FourthCall,4,PRO_AOI_IP_2,0,C1-AGV呼叫4F,Y35,Y35,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_FourthCall", false)]
        public string LIFT_C1_FourthCall { get; set; }
        /// <summary>
        /// DO,C1-送料信号1F,C1_RunToFirst,5,PRO_AOI_IP_2,0,C1-送料信号1F,Y36,Y36,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_RunToFirst", false)]
        public string LIFT_C1_RunToFirst { get; set; }
        /// <summary>
        /// DO,C1-送料信号3F,C1_RunToThird,6,PRO_AOI_IP_2,0,C1-送料信号3F,Y37,Y37,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_RunToThird", false)]
        public string LIFT_C1_RunToThird { get; set; }
        /// <summary>
        /// DO,C1-送料信号4F,C1_RunToFourth,7,PRO_AOI_IP_2,0,C1-送料信号4F,Y38,Y38,0
        /// </summary>
        [ConfigProAttribute("LIFT_C1_RunToFourth", false)]
        public string LIFT_C1_RunToFourth { get; set; }
        protected override void initMustHavePro()
        {
            MustHaveDIList = new List<string>();
            MustHaveDOList = new List<string>();
            //MustHaveDIList.Add(IO_Type.SuddenStop_BTN);
            //MustHaveDIList.Add(IO_Type.Reset_BTN); 

            //MustHaveDOList.Add(IO_Type.AutoRun_HddLed);
            //MustHaveDOList.Add(IO_Type.Alarm_HddLed); 
        }
      
        private Dictionary<string, ushort> DILengthMap = null;
        private Dictionary<string, ushort> DOLengthMap = null;
        public ushort GetDILength(string ip)
        {
            try
            {
                if (DILengthMap == null)
                {
                    DILengthMap = new Dictionary<string, ushort>();
                    string[] arrayList = IO_DILength.Split(';');
                    foreach (string str in arrayList)
                    {
                        string[] arrStr = str.Split('#');
                        if (arrStr.Length == 2)
                        {
                            string ioip = arrStr[0];
                            ushort length = Convert.ToUInt16(arrStr[1]);
                            DILengthMap.Add(ioip, length);
                        }
                    }
                }
            }
            catch (Exception ex)
            {

            }
            if (DILengthMap.ContainsKey(ip))
            {
                return DILengthMap[ip];
            }
            return 16;
        }
        public ushort GetDOLength(string ip)
        {
            try
            {
                if (DOLengthMap == null)
                {
                    DOLengthMap = new Dictionary<string, ushort>();
                    string[] arrayList = IO_DOLength.Split(';');
                    foreach (string str in arrayList)
                    {
                        string[] arrStr = str.Split('#');
                        if (arrStr.Length == 2)
                        {
                            string ioip = arrStr[0];
                            ushort length = Convert.ToUInt16(arrStr[1]);
                            DOLengthMap.Add(ioip, length);
                        }
                    }
                }
            }
            catch (Exception ex)
            {

            }
            if (DOLengthMap.ContainsKey(ip))
            {
                return DOLengthMap[ip];
            }
            return 16;
        }

    }
}