Box_Config.cs 10.8 KB
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace OnlineStore.LoadCSVLibrary
{
    public class BOX_Config : BaseConfig
    {
        public BOX_Config()
            : base()
        {
        }
        public BOX_Config(int id, string cid, string type, string filepath)
            : base(id,cid,  type, filepath)
        {
        }

        /// <summary>
        ///  AXIS,,L1_旋转轴,Middle_Axis,1,COM1,,250,1000,1000,80,60,50,10,1000,0,0
        /// </summary>
        [ConfigProAttribute("Middle_Axis")]
        public ConfigMoveAxis Middle_Axis { get; set; }
        /// <summary>
        ///  AXIS,,L2_上下轴,UpDown_Axis,2,COM1,,300,400,400,400,400,400,10,1000,0,0
        /// </summary>
        [ConfigProAttribute("UpDown_Axis")]
        public ConfigMoveAxis UpDown_Axis { get; set; }
        /// <summary>
        ///  AXIS,,L3_进出轴,InOut_Axis,3,COM1,,100,300,300,20,60,200,10,1000,0,0
        /// </summary>
        [ConfigProAttribute("InOut_Axis")]
        public ConfigMoveAxis InOut_Axis { get; set; }
        /// <summary>
        ///  AXIS,,L4_压紧轴,Comp_Axis,4,COM1,,100,300,300,20,60,200,10,1000,0,0
        /// </summary>
        [ConfigProAttribute("Comp_Axis")]
        public ConfigMoveAxis Comp_Axis { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P1待机点/扫码放料低点,UpDownAxis_P1,585000
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P1")]
        public int UpDownAxis_P1 { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P2扫码放料高点缓冲点,UpDownAxis_P2,604500
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P2")]
        public int UpDownAxis_P2 { get; set; }
        /// <summary>
        ///  PRO,,L1_旋转轴_P1待机点/扫码放料点,MiddleAxis_P1,307200
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P1")]
        public int MiddleAxis_P1 { get; set; }
        /// <summary>
        ///  PRO,,L3_进出轴_P1待机点,InOutAxis_P1,1000
        /// </summary>
        [ConfigProAttribute("InOutAxis_P1")]
        public int InOutAxis_P1 { get; set; }
        /// <summary>
        ///  PRO,,L4_压紧轴_P1待机点,CompAxis_P1,140000
        /// </summary>
        [ConfigProAttribute("CompAxis_P1")]
        public int CompAxis_P1 { get; set; }
        /// <summary>
        ///  PRO,,L4_压紧轴_P3压紧前点,CompAxis_P3,180000
        /// </summary>
        [ConfigProAttribute("CompAxis_P3")]
        public int CompAxis_P3 { get; set; }
        /// <summary>
        ///  PRO,,L4_压紧轴_P2压紧点范围对应值,CompAxis_P2_List,8=385001;12=383001;16=379001;
        /// </summary>
        [ConfigProAttribute("CompAxis_P2_List")]
        public string  CompAxis_P2_List { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P11-出料口-低点,UpDownAxis_P11,1000000
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P11")]
        public int UpDownAxis_P11 { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P12-出料口-高点,UpDownAxis_P12,1023000
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P12")]
        public int UpDownAxis_P12 { get; set; }
        /// <summary>
        ///  PRO,,L1_旋转轴_P11-出料口位置,MiddleAxis_P11,306900
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P11")]
        public int MiddleAxis_P11 { get; set; }
        /// <summary>
        ///  PRO,,L3_进出轴_P2-入料口取放料点,InOutAxis_P2,140800
        /// </summary>
        [ConfigProAttribute("InOutAxis_P2")]
        public int InOutAxis_P2 { get; set; }
        /// <summary>
        ///  PRO,,L3_进出轴_P11-出料口取放料点,InOutAxis_P11,148000
        /// </summary>
        [ConfigProAttribute("InOutAxis_P11")]
        public int InOutAxis_P11 { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P1速度,UpDownAxis_P1_Speed,600
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P1_Speed")]
        public int UpDownAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P2速度,UpDownAxis_P2_Speed,600
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P2_Speed")]
        public int UpDownAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P3速度,UpDownAxis_P3_Speed,1000 
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P3_Speed")]
        public int UpDownAxis_P3_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P4速度,UpDownAxis_P4_Speed,200
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P4_Speed")]
        public int UpDownAxis_P4_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P5速度,UpDownAxis_P5_Speed,1000
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P5_Speed")]
        public int UpDownAxis_P5_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P6速度,UpDownAxis_P6_Speed,200
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P6_Speed")]
        public int UpDownAxis_P6_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P7速度,UpDownAxis_P7_Speed,600
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P7_Speed")]
        public int UpDownAxis_P7_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P8速度,UpDownAxis_P8_Speed,600
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P8_Speed")]
        public int UpDownAxis_P8_Speed { get; set; }
        /// <summary>
        ///  PRO,,L1_旋转轴_P1速度,MiddleAxis_P1_Speed,300
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P1_Speed")]
        public int MiddleAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,,L1_旋转轴_P2速度,MiddleAxis_P2_Speed,300
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P2_Speed")]
        public int MiddleAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO,,L3_进出轴_P1速度,InOutAxis_P1_Speed,300
        /// </summary>
        [ConfigProAttribute("InOutAxis_P1_Speed")]
        public int InOutAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,,L3_进出轴_P2速度,InOutAxis_P2_Speed,300
        /// </summary>
        [ConfigProAttribute("InOutAxis_P2_Speed")]
        public int InOutAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO,,L3_进出轴_P3速度,InOutAxis_P3_Speed,300
        /// </summary>
        [ConfigProAttribute("InOutAxis_P3_Speed")]
        public int InOutAxis_P3_Speed { get; set; }
        /// <summary>
        ///  PRO,,L4_压紧轴_P1速度,CompAxis_P1_Speed,400
        /// </summary>
        [ConfigProAttribute("CompAxis_P1_Speed")]
        public int CompAxis_P1_Speed { get; set; }
        /// <summary>
        ///  PRO,,L4_压紧轴_P2速度,CompAxis_P2_Speed,400
        /// </summary>
        [ConfigProAttribute("CompAxis_P2_Speed")]
        public int CompAxis_P2_Speed { get; set; }
        /// <summary>
        ///  PRO,,L4_压紧轴_P3速度,CompAxis_P3_Speed,400
        /// </summary>
        [ConfigProAttribute("CompAxis_P3_Speed")]
        public int CompAxis_P3_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P11速度,UpDownAxis_P11_Speed,600
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P11_Speed")]
        public int UpDownAxis_P11_Speed { get; set; }
        /// <summary>
        ///  PRO,,L2_上下轴_P12速度,UpDownAxis_P12_Speed,600
        /// </summary>
        [ConfigProAttribute("UpDownAxis_P12_Speed")]
        public int UpDownAxis_P12_Speed { get; set; }
        /// <summary>
        ///  PRO,,L3_进出轴_P11速度,InOutAxis_P11_Speed,300
        /// </summary>
        [ConfigProAttribute("InOutAxis_P11_Speed")]
        public int InOutAxis_P11_Speed { get; set; }
        /// <summary>
        ///  PRO,,L1_旋转轴_P11速度,MiddleAxis_P11_Speed,300
        /// </summary>
        [ConfigProAttribute("MiddleAxis_P11_Speed")]
        public int MiddleAxis_P11_Speed { get; set; }
        /// <summary>
        ///  PRO,,温湿度端口号,Humiture_Port,COM5
        /// </summary>
        [ConfigProAttribute("Humiture_Port")]
        public string  Humiture_Port { get; set; }


        /// <summary>
        ///  PRO,,是否是调试状态,IsInDebug,0
        /// </summary>
        [ConfigProAttribute("IsInDebug")]
        public int IsInDebug { get; set; }

        private Dictionary< int,int > ComP2Map =null   ;
        public int  GetComP2(int plateh)
        {
            //查找指定的高度
            analysisComP2();
            if (ComP2Map.ContainsKey(plateh))
            {
                return ComP2Map[plateh];
            }
            return new List<int>(ComP2Map.Values).First<int>();
        }


        public void UpdateComP2(int height, int p2)
        {
            analysisComP2(); 
            if (ComP2Map.ContainsKey(height))
            {
                ComP2Map[height] = p2;
            }
            else
            {
                ComP2Map.Add(height, p2);
            } 
            string tt = "";
            foreach (int p in ComP2Map.Keys)
            {
                tt += p + "=" + ComP2Map[p] + ";";
            }
            CompAxis_P2_List = tt;
        }

        private void analysisComP2()
        {
            if (ComP2Map == null)
            {
                try
                {
                    //    8=385001;424000#12=383001;385000#16=379001;
                    ComP2Map = new Dictionary<int, int>();
                    string[] arrayList = CompAxis_P2_List.Split(';');
                    foreach (string str in arrayList)
                    {
                        if (str.Equals(""))
                        {
                            continue;
                        }
                        string[] com2A = str.Split('=');
                        if (com2A.Length.Equals(2))
                        {
                            int plateH = Convert.ToInt32(com2A[0]);
                            int p2 = Convert.ToInt32(com2A[1]); 
                            ComP2Map.Add(plateH, p2); 
                        }
                    }
                }
                catch (Exception ex)
                {
                    LogUtil.error("解析CompAxis_P2_List【" + CompAxis_P2_List + "】出错:" + ex.ToString());
                }
            }
        }
 
     

    }

    public class ComP2Info
    {
        public ComP2Info()
        {

        }
        public ComP2Info(int plateh, int minp, int maxp)
        {
            this.PlateH = plateh;
            this.MinComP = minp;
            this.MaxComP = maxp;
        }

        public int PlateH = 0;
        public int MinComP = 0;
        public int MaxComP = 0;

        public int TargetComP2()
        {
            return (MinComP + MaxComP) / 2;
        }
    }
}