ProvidingEquip_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 ProvidingEquip_Config : StoreConfig
    {
        public ProvidingEquip_Config()
            : base()
        {
        }
        public ProvidingEquip_Config(int id, string cid, string type, string filepath)
            : base(id, cid, type, filepath)
        {
        }


        /// <summary>
        /// 设备是否处于调试状态(1=调试,0=正常)
        /// </summary>
        [ConfigProAttribute("IsDebug")]
        public int IsDebug { get; set; }
        ///// <summary>
        ///// 阻挡气缸控制信号(1-4分别对应夹具检测1-4)
        ///// </summary>
        //[ConfigProAttribute("StopCylinderIOType")]
        //public int StopCylinderIOType { get; set; }


        /// <summary>
        ///   PRO	0	移栽上下运动是否使用伺服 UpDownUseAxis	1
        /// </summary>
        [ConfigProAttribute("UpDownUseAxis")]
        public int UpDownUseAxis { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴在移栽上下降的位置 UpDownPositions	0=180000
        /// </summary>
        [ConfigProAttribute("UpDownPositions",false) ]
        public string UpDownPositions { get; set; }
        /// <summary>
        ///  PRO	0	移栽上下轴在料仓门口下降的位置 UpDownBoxPositions	0=116000
        /// </summary>
        [ConfigProAttribute("UpDownBoxPositions", false)]
        public string UpDownBoxPositions { 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,移栽上下轴下降速度,UpdownAxis_DownSpeed,500,,,,,
        /// </summary>
        [ConfigProAttribute("UpdownAxis_DownSpeed", false)]
        public int UpdownAxis_DownSpeed { get; set; }
        private Dictionary<int, int> UpDownPositionMap = null; 
        public int GetUpdownPosition(int trayHeight)
        {
            try
            {
                if (UpDownPositionMap == null)
                {
                    UpDownPositionMap = new Dictionary<int, int>();
                    string[] arrayList = UpDownPositions.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());
                            UpDownPositionMap.Add(height, length);
                        }
                    }
                }
            }
            catch (Exception ex)
            {

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

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

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

        private Dictionary<int, int> UpDownBoxPositionMap = null;
        public int GetUpdownBoxPosition(int trayHeight)
        {
            try
            {
                if (UpDownBoxPositionMap == null)
                {
                    UpDownBoxPositionMap = new Dictionary<int, int>();
                    string[] arrayList = UpDownBoxPositions.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());
                            UpDownBoxPositionMap.Add(height, length);
                        }
                    }
                }
            }
            catch (Exception ex)
            {

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

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

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