DoubleLineConfig.cs 5.7 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace OnlineStore.LoadCSVLibrary
{
    public class DoubleLineConfig : RobotConfig
    {
        public DoubleLineConfig()
            : base()
        {
        }
        public DoubleLineConfig(  string filepath)
            : base(1, "", "", filepath)
        {
        }


        /// <summary>
        ///  PRO,休眠秒数(秒),SleepSeconds,180,,,,,,,
        /// </summary>
        [ConfigProAttribute("SleepSeconds", false)]
        public int SleepSeconds { get; set; }

        /// <summary>
        ///  PRO	IO信号超时时间(秒)	IOSingle_TimerOut	10
        /// </summary>
        [ConfigProAttribute("IOSingle_TimerOut", false)]
        public int IOSingle_TimerOut { get; set; }
         
        /// <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; }
   
        public double AirCheckSeconds = 60;

        

        /// <summary>
        ///     PRO ABB机器人1IP   ABB1_IP	192.168.103.51
        /// </summary>
        [ConfigProAttribute("ABB1_IP", false)]
        public string ABB1_IP { get; set; }
        /// <summary>
        ///    PRO ABB机器人2IP   ABB2_IP	192.168.103.52
        /// </summary>
        [ConfigProAttribute("ABB2_IP", false)]
        public string ABB2_IP { get; set; }
        /// <summary>
        ///     PRO ABB机器人3IP   ABB3_IP	192.168.103.53
        /// </summary>
        //[ConfigProAttribute("ABB3_IP", false)]
        //public string ABB3_IP { get; set; }
        /// <summary>
        ///    PRO 双层线左侧提升机    L_Updown_Rfid	192.168.103.51
        /// </summary>
        [ConfigProAttribute("L_Updown_Rfid", false)]
        public string L_Updown_Rfid { get; set; }
        /// <summary>
        ///     PRO 双层线中间提升机    M_Updown_Rfid	192.168.103.52
        /// </summary>
        [ConfigProAttribute("M_Updown_Rfid", false)]
        public string M_Updown_Rfid { get; set; }
        /// <summary>
        ///    PRO 双层线上料工位1    S1_Rfid	192.168.103.53
        /// </summary>
        [ConfigProAttribute("S1_Rfid", false)]
        public string S1_Rfid { get; set; }
        /// <summary>
        ///    PRO 双层线上料工位2    S2_Rfid	192.168.103.104
        /// </summary>
        //[ConfigProAttribute("S2_Rfid", false)]
        //public string S2_Rfid { get; set; }
        /// <summary>
        ///    PRO 双层线右侧提升机    R_Updown_Rfid	192.168.103.54
        /// </summary>
        [ConfigProAttribute("R_Updown_Rfid", false)]
        public string R_Updown_Rfid { get; set; }

        /// <summary>
        ///  PRO,包装线RFID,Pkg_Rfid,192.168.103.106
        /// </summary>
        //[ConfigProAttribute("Pkg_Rfid", false)]
        //public string Pkg_Rfid { get; set; }
        /// <summary>
        /// PRO,双层线上层右侧RFID,RHigh_Rfid,192.168.103.55
        /// </summary>
        [ConfigProAttribute("RHigh_Rfid", false)]
        public string RHigh_Rfid { 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;
        }

    }
}