TSAVPosition.cs
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using System;
using System.Collections.Generic;
using TSA_V.DeviceLibrary;
namespace TSA_V.LoadCSVLibrary
{
public class TSAVPosition : PostionBase
{
/// <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> ledList = null;
public List<int> getLedList(string text = "")
{
if (text == "")
{
if (ledList == null)
{
ledList = TextToIndexs(Leds);
}
return ledList;
}
else
{
return TextToIndexs(text);
}
}
private List<int> TextToIndexs(string text)
{
List<int> list = new List<int>();
if (text.IndexOf('#') >= 0)
{
string[] str = text.Split('#');
foreach (string s in str)
{
try
{
int value = Convert.ToInt32(s);
list.Add(value);
}
catch (Exception e)
{
}
}
}
else if (text.IndexOf('-') >= 0)
{
string[] str = text.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(text);
list.Add(value);
}
catch (Exception e)
{
}
}
return list;
}
public bool IsRgbLed()
{
return PositionType.Equals(3);
}
public bool IsLedLabel()
{
return PositionType.Equals(2);
}
public bool IsNodePos()
{
if(PositionType.Equals(2))
{
return false;
}
if (PositionType.Equals(3))
{
return false;
}
return true;
}
}
}