ProvidingEquip_Config.cs 7.8 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 : DeviceConfig
    {
        public ProvidingEquip_Config()
            : base()
        {
        }
        public ProvidingEquip_Config(int id, string cid, string type, string filepath)
            : base(id, cid, LoadCSVLibrary.DeviceType.ProvidingEquip, filepath)
        {
        }


        /// <summary>
        /// 设备是否处于调试状态(1=调试,0=正常)
        /// </summary>
        [ConfigProAttribute("IsDebug")]
        public int IsDebug { get; set; }

        /// <summary>
        ///  PRO,0,对应的横移模块,SidesWayNum,3,,,,,
        /// </summary>
        [ConfigProAttribute("SidesWayNum", false)]
        public int SidesWayNum { get; set; }
         
        /// <summary>
        /// PRO,0,设备对应的出料流水线的编号,DLineEquipNum,1,,,,,
        /// </summary>
        [ConfigProAttribute("DLineEquipNum", false)]
        public int DLineEquipNum { get; set; }

        /// <summary>
        ///  PRO,0,设备对应的出料流水线的第几条流水线,DLineLineNum,1,,,,,
        /// </summary>
        [ConfigProAttribute("DLineLineNum", false)]
        public int DLineLineNum { 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,移栽上下轴下降速度,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;
        }
    }
}