TSAVPosition.cs 2.9 KB
using System;
using System.Collections.Generic; 
using TSA_V.DeviceLibrary;

namespace TSA_V.LoadCSVLibrary
{
    public class TSAVPosition : PostionBase
    {     /// <summary>
          ///对应号码
          /// </summary>
        [CSVAttribute("对应号码")]
        public int PositionNo { get; set; }
        /// <summary>
        ///旋转位置
        /// </summary>
        [CSVAttribute("旋转位置")]
        public int RotatePosition { get; set; }

     
        /// <summary>
        ///灯列表
        /// </summary>
        [CSVAttribute("灯列表")]
        public string  Leds { get; set; }
        /// <summary>
        ///设备IP
        /// </summary>
        [CSVAttribute("设备IP")]
        public string  DeviceIP { get; set; }
        public NodeInfo GetNode(Dictionary<int, Dictionary<int, NodeInfo>> dictionary)
        {
            string[] array = this.PositionName.Split('_');
            if (array.Length == 3)
            {
                int indexi = Convert.ToInt32(array[0]);
                int indexj = Convert.ToInt32(array[1]);

                if (dictionary.ContainsKey(indexi))
                {
                    if (dictionary[indexi].ContainsKey(indexj))
                    {
                        return dictionary[indexi][indexj];
                    }
                }
            } return null;
        }

        private List<int> list = null;
        public List<int> getLedList()
        {
            if (list == null)
            {
                list = new List<int>();
                if (Leds.IndexOf('#') >= 0)
                {
                    string[] str = Leds.Split('#');
                    foreach (string s in str)
                    {
                        try
                        {
                            int value = Convert.ToInt32(s);
                            list.Add(value);
                        }
                        catch (Exception e)
                        {
                        }
                    }
                }
                else if (Leds.IndexOf('-') >= 0)
                {
                    string[] str = Leds.Split('-');

                    try
                    {
                        int min = Convert.ToInt32(str[0]);
                        int max = Convert.ToInt32(str[str.Length - 1]);
                        for (int i = min; i <= max; i++)
                        {
                            list.Add(i);
                        }
                    }
                    catch (Exception ex)
                    {

                    }
                }
                else
                {
                    try
                    {
                        int value = Convert.ToInt32(Leds);
                        list.Add(value);
                    }
                    catch (Exception e)
                    {
                    }
                }
            }
            return list;
        }
    }
}