MoveEquip_Config.cs 7.6 KB
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;

namespace OnlineStore.LoadCSVLibrary
{
   
    public class MoveEquip_Config : DeviceConfig
    {
        public MoveEquip_Config()
            : base()
        {
        }
        public MoveEquip_Config(int id, string cid, string type, string filepath)
            : base(id, cid, LoadCSVLibrary.DeviceType.MoveEquip, filepath)
        {
        }


        /// <summary>
        /// 设备是否处于调试状态(1=调试,0=正常)
        /// </summary>
        [ConfigProAttribute("IsDebug")]
        public int IsDebug { get; set; }
      
        /// <summary>
        ///   PRO	0	移栽上下运动是否使用伺服 UpDownUseAxis	1
        /// </summary>
        [ConfigProAttribute("UpDownUseAxis")]
        public int UpDownUseAxis { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴在移栽上下降的位置 UpDownP2List	0=180000
        /// </summary>
        [ConfigProAttribute("UpDownP2List",false) ]
        public string UpDownP2List { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴在料仓门口下降的位置 UpDownP3List	0=116000
        /// </summary>
        [ConfigProAttribute("UpDownP3List", false)]
        public string UpDownP3List { get; set; }
        /// <summary>
        ///  AXIS	0	移栽上下轴 UpDown_Axis	2
        /// </summary>
        [ConfigProAttribute("UpDown_Axis", false)]
        public ConfigMoveAxis UpDown_Axis { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴待机点 P1 UpDownAxisP1	403000
        /// </summary>
        [ConfigProAttribute("UpDownAxisP1", false)]
        public int UpDownAxisP1 { get; set; }
       

        /// <summary>
        ///  PRO	0	移栽上下轴目标速度 UpdownAxis_TargetSpeed	150
        /// </summary>
        [ConfigProAttribute("UpdownAxis_TargetSpeed", false)]
        public int UpdownAxis_TargetSpeed { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴加速度 UpdownAxis_AddSpeed	400
        /// </summary>
        [ConfigProAttribute("UpdownAxis_AddSpeed", false)]
        public short UpdownAxis_AddSpeed { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴减速度 UpdownAxis_DelSpeed	400
        /// </summary>
        [ConfigProAttribute("UpdownAxis_DelSpeed", false)]
        public short UpdownAxis_DelSpeed { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴原点低速度 UpdownAxis_HomeLowSpeed	100
        /// </summary>
        [ConfigProAttribute("UpdownAxis_HomeLowSpeed", false)]
        public int UpdownAxis_HomeLowSpeed { get; set; }
        /// <summary>
        /// PRO	0	移栽上下轴原点高速 UpdownAxis_HomeHighSpeed	200
        /// </summary>
        [ConfigProAttribute("UpdownAxis_HomeHighSpeed", false)]
        public int UpdownAxis_HomeHighSpeed { get; set; }
        /// <summary>
        /// PRO	0	移栽上下轴原点加速度 UpdownAxis_HomeAddSpeed	200
        /// </summary>
        [ConfigProAttribute("UpdownAxis_HomeAddSpeed", false)]
        public int UpdownAxis_HomeAddSpeed { get; set; }





        /// <summary>
        ///   PRO,0,移栽上下轴走到待机点速度,UpdownAxis_P1Speed,400,,,,,
        /// </summary>
        [ConfigProAttribute("UpdownAxis_P1Speed", false)]
        public int UpdownAxis_P1Speed { get; set; }

        /// <summary>
        ///   PRO,0,移栽上下轴P2速度,UpdownAxis_P2Speed,500,,,,,  
        /// </summary>
        [ConfigProAttribute("UpdownAxis_P2Speed", false)]
        public int UpdownAxis_P2Speed { get; set; }
        /// <summary>
        ///   PRO,0,移栽上下轴P3速度,UpdownAxis_P3Speed,500,,,,,
        /// </summary>
        [ConfigProAttribute("UpdownAxis_P3Speed", false)]
        public int UpdownAxis_P3Speed { get; set; }
        ///// <summary>s
        ///// PRO,0,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,,
        ///// </summary>
        //[ConfigProAttribute("UpdownAxis_DownSpeed", false)]
        //public int UpdownAxis_DownSpeed { get; set; }
        private Dictionary<int, int> UpDownP2Map = null; 
        public int GetUpdownP2(int trayHeight)
        {
            try
            {
                if (UpDownP2Map == null)
                {
                    UpDownP2Map = new Dictionary<int, int>();
                    string[] arrayList = UpDownP2List.Split(';');
                    foreach (string str in arrayList)
                    {
                        string[] arrStr = str.Split('=');
                        if (arrStr.Length == 2)
                        {
                            int height = Convert.ToInt32(arrStr[0].Trim());
                            int length = Convert.ToInt32(arrStr[1].Trim());
                            UpDownP2Map.Add(height, length);
                        }
                    }
                }
            }
            catch (Exception ex)
            {

            }
            if (UpDownP2Map.ContainsKey(trayHeight))
            {
                return UpDownP2Map[trayHeight];
            }else if (UpDownP2Map.ContainsKey(0))
            {
                return UpDownP2Map[0];
            }
            return -1;
        }


        public void UpdateUpdownP2(int size, int sizePosition)
        {
            string newPositionStr = "";
            if (UpDownP2Map.ContainsKey(size))
            {
                UpDownP2Map[size] = sizePosition;
            }
            else
            {

                UpDownP2Map.Add(size, sizePosition);
            }
            foreach(int  key in UpDownP2Map.Keys)
            {
                newPositionStr += key + "=" + UpDownP2Map[key] + ";";
            }
            newPositionStr = newPositionStr.Substring(0, newPositionStr.Length - 1);
            UpDownP2List = newPositionStr;
        }

        private Dictionary<int, int> UpDownP3Map = null;
        public int GetUpdownP3(int trayHeight)
        {
            try
            {
                if (UpDownP3Map == null)
                {
                    UpDownP3Map = new Dictionary<int, int>();
                    string[] arrayList = UpDownP3List.Split(';');
                    foreach (string str in arrayList)
                    {
                        string[] arrStr = str.Split('=');
                        if (arrStr.Length == 2)
                        {
                            int height = Convert.ToInt32(arrStr[0].Trim());
                            int length = Convert.ToInt32(arrStr[1].Trim());
                            UpDownP3Map.Add(height, length);
                        }
                    }
                }
            }
            catch (Exception ex)
            {

            }
            if (UpDownP3Map.ContainsKey(trayHeight))
            {
                return UpDownP3Map[trayHeight];
            }else if (UpDownP3Map.ContainsKey(0))
            {
                return UpDownP3Map[0];
            }
            return -1;
        }

        public void UpdateUpdownP3(int size, int sizePosition)
        {
            string newPositionStr = "";
            if (UpDownP3Map.ContainsKey(size))
            {
                UpDownP3Map[size] = sizePosition;
            }
            else
            {

                UpDownP3Map.Add(size, sizePosition);
            }
            foreach (int key in UpDownP3Map.Keys)
            {
                newPositionStr += key + "=" + UpDownP3Map[key] + ";";
            }
            newPositionStr = newPositionStr.Substring(0, newPositionStr.Length - 1);
            UpDownP3List = newPositionStr;
        }
    }
}