openatc-components 0.3.118 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openatc-components",
3
- "version": "0.3.118",
3
+ "version": "0.4.2",
4
4
  "description": "A Vue.js project",
5
5
  "author": "openatc developer",
6
6
  "private": false,
@@ -1068,6 +1068,15 @@ const en = {
1068
1068
  'opensourceagreement': 'Opensource Agreement'
1069
1069
  },
1070
1070
  'message': {
1071
+ // 全局异常错误
1072
+ '0001': 'Null pointer',
1073
+ '0002': 'Wrong request method',
1074
+ '0003': 'Incorrect input parameter type',
1075
+ '0004': 'Incomplete input parameters',
1076
+ '0005': 'Input parameters do not meet constraints',
1077
+ '0006': 'system error',
1078
+ '0007': 'Empty Name',
1079
+ '0008': 'Service Expired !',
1071
1080
  'errorcode': 'Error code',
1072
1081
  '10000': 'Parameter is empty',
1073
1082
  '10001': 'Parameter length error',
@@ -1081,13 +1090,6 @@ const en = {
1081
1090
  '20008': 'File read failed!',
1082
1091
  '20009': 'File does not exist!',
1083
1092
  '20010': 'I/O close mistake!',
1084
- // 全局异常错误
1085
- '0001': 'Null pointer',
1086
- '0002': 'Wrong request method',
1087
- '0003': 'Incorrect input parameter type',
1088
- '0004': 'Incomplete input parameters',
1089
- '0005': 'Input parameters do not meet constraints',
1090
- '0006': 'system error',
1091
1093
  // 用户管理错误
1092
1094
  '3001': 'Username does not exist',
1093
1095
  '3002': 'Authentication failed',
@@ -214,7 +214,7 @@ const zh = {
214
214
  'phasewalk': '行人过街',
215
215
  'websteroptimization': 'Webster单点优化',
216
216
  'inductivePedestrianCrossControl': '感应式行人过街控制',
217
- 'selfadaption': '自适应控制',
217
+ 'selfadaption': '方案生成',
218
218
  'custom': '自定义',
219
219
  'controlmodevalue': '控制方式数值',
220
220
  'patternstate': '方案状态',
@@ -253,10 +253,10 @@ const zh = {
253
253
  'modelList4': '步进',
254
254
  'modelList4-': '阶段锁定',
255
255
  'modelList5': '定周期',
256
- 'modelList6': '单点感应',
256
+ 'modelList6': '自适应',
257
257
  'modelList7': '协调感应控制',
258
258
  'modelList8': '方案选择控制',
259
- 'modelList9': '自适应控制',
259
+ 'modelList9': '方案生成',
260
260
  'modelList10': '无电缆协调',
261
261
  'modelList11': '平台协调',
262
262
  'modelList12': '行人过街',
@@ -501,8 +501,8 @@ const zh = {
501
501
  'ControlOption3': '关灯',
502
502
  'ControlOption4': '步进',
503
503
  'ControlOption5': '定周期控制',
504
- 'ControlOption6': '单点感应控制',
505
- 'ControlOption9': '自适应控制',
504
+ 'ControlOption6': '自适应',
505
+ 'ControlOption9': '方案生成',
506
506
  'ControlOption10': '无电缆控制',
507
507
  'ControlOption12': '行人过街控制',
508
508
  'ControlOption19': '感应式行人过街控制',
@@ -1068,6 +1068,15 @@ const zh = {
1068
1068
  'opensourceagreement': '开源协议'
1069
1069
  },
1070
1070
  'message': {
1071
+ // 全局异常错误
1072
+ '0001': '空指针',
1073
+ '0002': '错误请求方式',
1074
+ '0003': '输入参数类型不正确',
1075
+ '0004': '输入参数不全',
1076
+ '0005': '输入参数不满足约束',
1077
+ '0006': '系统错误',
1078
+ '0007': '名称为空',
1079
+ '0008': '服务过期 !',
1071
1080
  'errorcode': '错误码',
1072
1081
  '10000': '参数为空',
1073
1082
  '10001': '参数长度错误',
@@ -1081,13 +1090,6 @@ const zh = {
1081
1090
  '20008': '文件读取失败!',
1082
1091
  '20009': '文件不存在!',
1083
1092
  '20010': 'I/O关闭错误!',
1084
- // 全局异常错误
1085
- '0001': '空指针',
1086
- '0002': '错误请求方式',
1087
- '0003': '输入参数类型不正确',
1088
- '0004': '输入参数不全',
1089
- '0005': '输入参数不满足约束',
1090
- '0006': '系统错误',
1091
1093
  // 用户管理错误
1092
1094
  '3001': '用户名不存在',
1093
1095
  '3002': '认证失败',
@@ -171,8 +171,8 @@ export default {
171
171
  detectorStatusTimer: null, // 检测器定时器
172
172
  ParamsMode: new Map([[0, '自主控制'], [1, '本地手动'], [2, '平台控制'], [3, '配置软件控制'], [4, '遥控器控制'], [5, '黄闪器控制'], [6, '降级控制'], [7, '脚本控制'], [8, '算法控制']]),
173
173
  ParamsModeEn: new Map([[0, 'Autonomous Control'], [1, 'Local Manual'], [2, 'Platform Control'], [3, 'Configuration Software Control'], [4, 'Remote Control'], [5, 'Yellow Flasher Control'], [6, 'Degradation Control'], [7, 'Script Control'], [8, 'Algorithm Control']]),
174
- ParamsControl: new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '单点感应控制'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '自适应控制'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '感应式自适应'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']]),
175
- ParamsControlEn: new Map([[0, 'Multi Period'], [1, 'Yellow Flash Control'], [2, 'Red Control'], [3, 'Dark Control'], [4, 'Step'], [5, 'Fixed_Cycle Control'], [6, 'Free Control'], [7, 'Coordinated Induction Control'], [8, 'Pattern Selection Control'], [9, 'Adaptive Control'], [10, 'Wireless Control'], [11, 'Cable Control'], [12, 'Pedestrian Crossing Control'], [13, 'Pattern recovery'], [14, 'Phase dwell'], [15, 'Channel Detection'], [16, 'Direction lock'], [17, 'Webster Single Point Coordination'], [18, 'Inductive Adaptive'], [19, 'Inductive Pedestrian Crossing Control'], [20, 'Program Intervention'], [100, 'Program Intervention'], [21, 'Reserving21'], [22, 'Priority Control'], [23, 'Close Phase'], [24, 'Emergency Control'], [99, 'Device Mantenance']]),
174
+ ParamsControl: new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '自适应'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '方案生成'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '预留18'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']]),
175
+ ParamsControlEn: new Map([[0, 'Multi Period'], [1, 'Yellow Flash Control'], [2, 'Red Control'], [3, 'Dark Control'], [4, 'Step'], [5, 'Fixed_Cycle Control'], [6, 'Free Control'], [7, 'Coordinated Induction Control'], [8, 'Pattern Selection Control'], [9, 'Adaptive Control'], [10, 'Wireless Control'], [11, 'Cable Control'], [12, 'Pedestrian Crossing Control'], [13, 'Pattern recovery'], [14, 'Phase dwell'], [15, 'Channel Detection'], [16, 'Direction lock'], [17, 'Webster Single Point Coordination'], [18, 'Reserving18'], [19, 'Inductive Pedestrian Crossing Control'], [20, 'Program Intervention'], [100, 'Program Intervention'], [21, 'Reserving21'], [22, 'Priority Control'], [23, 'Close Phase'], [24, 'Emergency Control'], [99, 'Device Mantenance']]),
176
176
  phaseType: new Map([[1, '红'], [2, '黄'], [3, '绿'], [4, '绿闪']]), // phaseType表示红,黄,绿
177
177
  phaseTypeEn: new Map([[1, 'Red'], [2, 'Yellow'], [3, 'Green'], [4, 'Greenclear']]), // phaseType表示红,黄,绿
178
178
  ip: '--',
@@ -1139,6 +1139,17 @@ export default {
1139
1139
  j.value = this.controlPhase.phase.filter(item => item.id === j.id)[0].split
1140
1140
  })
1141
1141
  })
1142
+ let valSplit = val.map(item => {
1143
+ return item.map(val => {
1144
+ return val.value + (val.sum ? val.sum : 0)
1145
+ })
1146
+ })
1147
+ let splitCycle = valSplit.length > 0 ? valSplit.map(item => {
1148
+ return item.length > 0 ? item.reduce((a, b) => {
1149
+ return a + b
1150
+ }) : 0
1151
+ }) : 0
1152
+ this.fixCycle = Math.max(...splitCycle)// 每个环的周期最大值
1142
1153
  }
1143
1154
  // 按环序分组
1144
1155
  let ringlength = []
@@ -1160,7 +1171,6 @@ export default {
1160
1171
  }) : 0
1161
1172
  }) : 0
1162
1173
  let cycle = Math.max(...splitCycle)// 每个环的周期最大值
1163
- this.fixCycle = cycle// 每个环的周期最大值
1164
1174
  let newRings = ringsequence.filter(item => item)
1165
1175
  let minLength = Math.min(...ringlength)
1166
1176
  let resultArrs = [] // 环1分组
@@ -1215,7 +1225,7 @@ export default {
1215
1225
  }
1216
1226
  barrierRing1.push(...ring1, ...ring1s)
1217
1227
  let resultList = []
1218
- if (newRings.length > 1) {
1228
+ if (newRings.length >= 1) {
1219
1229
  let ring2s = [] // 环2与关系1的并集
1220
1230
  for (let h = 0; h < newCurrent.length; h++) {
1221
1231
  let addRing2 = [...new Set(resultArr[1])].filter(item => newCurrent[h].includes(item))
@@ -1341,7 +1351,7 @@ export default {
1341
1351
  }
1342
1352
  }
1343
1353
  obj.split = split
1344
- obj.cycle = cycle
1354
+ obj.cycle = this.fixCycle ? this.fixCycle : this.max ? this.max : this.newCycle
1345
1355
  const isZero = split - currPhase.redclear - currPhase.yellow - currPhase.flashgreen
1346
1356
  const allAdd = split + currPhase.redclear + currPhase.yellow + currPhase.flashgreen
1347
1357
  if (isZero <= 0) {
@@ -263,7 +263,7 @@ export default {
263
263
  faultTimer: null, // 当前故障定时器
264
264
  ParamsMode: new Map([[0, '自主控制'], [1, '本地手动'], [2, '平台控制'], [3, '配置软件控制'], [4, '遥控器控制'], [5, '黄闪器控制'], [6, '降级控制'], [7, '脚本控制'], [8, '算法控制']]),
265
265
  ParamsModeEn: new Map([[0, 'Autonomous Control'], [1, 'Local Manual'], [2, 'Platform Control'], [3, 'Configuration Software Control'], [4, 'Remote Control'], [5, 'Yellow Flasher Control'], [6, 'Degradation Control'], [7, 'Script Control'], [8, 'Algorithm Control']]),
266
- ParamsControl: new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '单点感应控制'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '自适应控制'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '预留18'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']]),
266
+ ParamsControl: new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '自适应'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '方案生成'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '预留18'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']]),
267
267
  ParamsControlEn: new Map([[0, 'Multi Period'], [1, 'Yellow Flash Control'], [2, 'Red Control'], [3, 'Dark Control'], [4, 'Step'], [5, 'Fixed_Cycle Control'], [6, 'Free Control'], [7, 'Coordinated Induction Control'], [8, 'Pattern Selection Control'], [9, 'Adaptive Control'], [10, 'Wireless Control'], [11, 'Cable Control'], [12, 'Pedestrian Crossing Control'], [13, 'Pattern recovery'], [14, 'Phase dwell'], [15, 'Channel Detection'], [16, 'Direction lock'], [17, 'Webster Single Point Coordination'], [18, 'Reserving18'], [19, 'Inductive Pedestrian Crossing Control'], [20, 'Program Intervention'], [100, 'Program Intervention'], [21, 'Reserving21'], [22, 'Priority Control'], [23, 'Close Phase'], [24, 'Emergency Control'], [99, 'Device Mantenance']]),
268
268
  phaseType: new Map([[1, '红'], [2, '黄'], [3, '绿']]), // phaseType表示红,黄,绿
269
269
  phaseTypeEn: new Map([[1, 'Red'], [2, 'Yellow'], [3, 'Green']]), // phaseType表示红,黄,绿
@@ -303,7 +303,7 @@ export default {
303
303
  id: 9,
304
304
  iconClass: 'zishiying',
305
305
  permission: 'configer:manual:base',
306
- iconName: '自适应控制'
306
+ iconName: '方案生成'
307
307
  }, {
308
308
  id: 10,
309
309
  iconClass: 'wuxianlan',
@@ -387,14 +387,14 @@ export default {
387
387
  iconName: this.$t('openatccomponents.overview.modelList5'),
388
388
  bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
389
389
  }, {
390
- type: '单点感应',
390
+ type: '自适应',
391
391
  id: 6,
392
392
  iconClass: 'ganyingkongzhi',
393
393
  permission: 'configer:manual:base',
394
394
  iconName: this.$t('openatccomponents.overview.modelList6'),
395
395
  bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
396
396
  }, {
397
- type: '自适应控制',
397
+ type: '方案生成',
398
398
  id: 9,
399
399
  iconClass: 'zishiying',
400
400
  permission: 'configer:manual:base',
@@ -227,7 +227,7 @@ PURPOSE. * See the Mulan PSL v2 for more details. **/
227
227
  </g>
228
228
  </svg>
229
229
  <svg
230
- v-if="type === '单点感应'"
230
+ v-if="type === '自适应'"
231
231
  version="1.1"
232
232
  id="图层_1"
233
233
  xmlns="http://www.w3.org/2000/svg"
@@ -266,7 +266,7 @@ PURPOSE. * See the Mulan PSL v2 for more details. **/
266
266
  </svg>
267
267
 
268
268
  <svg
269
- v-if="type === '自适应控制'"
269
+ v-if="type === '方案生成'"
270
270
  xmlns="http://www.w3.org/2000/svg"
271
271
  viewBox="0 0 24.53 21.2"
272
272
  :width="iconWidth"
@@ -153,8 +153,8 @@ export default {
153
153
  volumeControlTimer: null, // 流量定时器
154
154
  ParamsMode: new Map([[0, '自主控制'], [1, '本地手动'], [2, '平台控制'], [3, '配置软件控制'], [4, '遥控器控制'], [5, '黄闪器控制'], [6, '降级控制'], [7, '脚本控制'], [8, '算法控制']]),
155
155
  ParamsModeEn: new Map([[0, 'Autonomous Control'], [1, 'Local Manual'], [2, 'Platform Control'], [3, 'Configuration Software Control'], [4, 'Remote Control'], [5, 'Yellow Flasher Control'], [6, 'Degradation Control'], [7, 'Script Control'], [8, 'Algorithm Control']]),
156
- ParamsControl: new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '单点感应控制'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '自适应控制'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '感应式自适应'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']]),
157
- ParamsControlEn: new Map([[0, 'Multi Period'], [1, 'Yellow Flash Control'], [2, 'Red Control'], [3, 'Dark Control'], [4, 'Step'], [5, 'Fixed_Cycle Control'], [6, 'Free Control'], [7, 'Coordinated Induction Control'], [8, 'Pattern Selection Control'], [9, 'Adaptive Control'], [10, 'Wireless Control'], [11, 'Cable Control'], [12, 'Pedestrian Crossing Control'], [13, 'Pattern recovery'], [14, 'Phase dwell'], [15, 'Channel Detection'], [16, 'Direction lock'], [17, 'Webster Single Point Coordination'], [18, 'Inductive Adaptive'], [19, 'Inductive Pedestrian Crossing Control'], [20, 'Program Intervention'], [100, 'Program Intervention'], [21, 'Reserving21'], [22, 'Priority Control'], [23, 'Close Phase'], [24, 'Emergency Control'], [99, 'Device Mantenance']]),
156
+ ParamsControl: new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '自适应'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '方案生成'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '预留18'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']]),
157
+ ParamsControlEn: new Map([[0, 'Multi Period'], [1, 'Yellow Flash Control'], [2, 'Red Control'], [3, 'Dark Control'], [4, 'Step'], [5, 'Fixed_Cycle Control'], [6, 'Free Control'], [7, 'Coordinated Induction Control'], [8, 'Pattern Selection Control'], [9, 'Adaptive Control'], [10, 'Wireless Control'], [11, 'Cable Control'], [12, 'Pedestrian Crossing Control'], [13, 'Pattern recovery'], [14, 'Phase dwell'], [15, 'Channel Detection'], [16, 'Direction lock'], [17, 'Webster Single Point Coordination'], [18, 'Reserving18'], [19, 'Inductive Pedestrian Crossing Control'], [20, 'Program Intervention'], [100, 'Program Intervention'], [21, 'Reserving21'], [22, 'Priority Control'], [23, 'Close Phase'], [24, 'Emergency Control'], [99, 'Device Mantenance']]),
158
158
  phaseType: new Map([[1, '红'], [2, '黄'], [3, '绿']]), // phaseType表示红,黄,绿
159
159
  phaseTypeEn: new Map([[1, 'Red'], [2, 'Yellow'], [3, 'Green']]), // phaseType表示红,黄,绿
160
160
  ip: '--',
@@ -14,8 +14,8 @@ export default class ControlFormat {
14
14
  constructor (crossStatusData, phaseList) {
15
15
  this.ParamsMode = new Map([[0, '自主控制'], [1, '本地手动'], [2, '平台控制'], [3, '配置软件控制'], [4, '遥控器控制'], [5, '黄闪器控制'], [6, '降级控制'], [7, '脚本控制'], [8, '算法控制']])
16
16
  this.ParamsModeEn = new Map([[0, 'Autonomous Control'], [1, 'Local Manual'], [2, 'Platform Control'], [3, 'Configuration Software Control'], [4, 'Remote Control'], [5, 'Yellow Flasher Control'], [6, 'Degradation Control'], [7, 'Script Control'], [8, 'Algorithm Control']])
17
- this.ParamsControl = new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '单点感应控制'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '自适应控制'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '感应式自适应'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']])
18
- this.ParamsControlEn = new Map([[0, 'Multi Period'], [1, 'Yellow Flash Control'], [2, 'Red Control'], [3, 'Dark Control'], [4, 'Step'], [5, 'Fixed_Cycle Control'], [6, 'Free Control'], [7, 'Coordinated Induction Control'], [8, 'Pattern Selection Control'], [9, 'Adaptive Control'], [10, 'Wireless Control'], [11, 'Cable Control'], [12, 'Pedestrian Crossing Control'], [13, 'Pattern recovery'], [14, 'Phase dwell'], [15, 'Channel Detection'], [16, 'Direction lock'], [17, 'Webster Single Point Coordination'], [18, 'Inductive Adaptive'], [19, 'Inductive Pedestrian Crossing Control'], [20, 'Program Intervention'], [100, 'Program Intervention'], [21, 'Reserving21'], [22, 'Priority Control'], [23, 'Close Phase'], [24, 'Emergency Control'], [99, 'Device Mantenance']])
17
+ this.ParamsControl = new Map([[0, '多时段'], [1, '黄闪'], [2, '全红'], [3, '关灯'], [4, '步进'], [5, '定周期控制'], [6, '自适应'], [7, '协调感应控制'], [8, '方案选择控制'], [9, '方案生成'], [10, '无电缆控制'], [11, '有电缆控制'], [12, '行人过街控制'], [13, '方案恢复过渡'], [14, '相位驻留'], [15, '通道检测'], [16, '方向锁定'], [17, '韦伯斯特单点控制'], [18, '预留18'], [19, '感应式行人过街'], [20, '方案干预'], [100, '方案干预'], [21, '预留21'], [22, '相位锁定'], [23, '相位放行控制'], [24, '紧急控制'], [99, '设备维护']])
18
+ this.ParamsControlEn = new Map([[0, 'Multi Period'], [1, 'Yellow Flash Control'], [2, 'Red Control'], [3, 'Dark Control'], [4, 'Step'], [5, 'Fixed_Cycle Control'], [6, 'Free Control'], [7, 'Coordinated Induction Control'], [8, 'Pattern Selection Control'], [9, 'Adaptive Control'], [10, 'Wireless Control'], [11, 'Cable Control'], [12, 'Pedestrian Crossing Control'], [13, 'Pattern recovery'], [14, 'Phase dwell'], [15, 'Channel Detection'], [16, 'Direction lock'], [17, 'Webster Single Point Coordination'], [18, 'Reserving18'], [19, 'Inductive Pedestrian Crossing Control'], [20, 'Program Intervention'], [100, 'Program Intervention'], [21, 'Reserving21'], [22, 'Priority Control'], [23, 'Close Phase'], [24, 'Emergency Control'], [99, 'Device Mantenance']])
19
19
  this.phaseType = new Map([[1, '红'], [2, '黄'], [3, '绿']]) // phaseType表示红,黄,绿
20
20
  this.phaseTypeEn = new Map([[1, 'Red'], [2, 'Yellow'], [3, 'Green']]) // phaseType表示红,黄,绿
21
21
  }