This commit is contained in:
zyy 2020-02-11 14:51:11 +08:00
commit e5adb93315
5 changed files with 85 additions and 131 deletions

View File

@ -93,7 +93,7 @@ class SkinCode extends defaultStyle {
spareColor: '#618cc3', // 区段空闲颜色
communicationOccupiedColor: '#FF00FF', // 区段通信车占用颜色
unCommunicationOccupiedColor: '#DE310C', // 区段非通讯车占用颜色
routeLockColor: '#3FFD46', // 区段锁定颜色
routeLockColor: '#3FFD46', // 区段路锁定颜色
faultLockColor: '#006400', // 区段故障锁定颜色
undefinedColor: '#0071C1', // 区段未定义颜色
protectionLockedColor: '#3FFD46', // 保护区段锁闭

View File

@ -4,46 +4,20 @@ const deviceState = {};
deviceState[deviceType.Section] = {
/** 区段状态*/
// status: {
// Default: '01', /** 空闲(缺省值)*/
// State00: '00', /** 未定义状态 */
// State01: '01', /** 空闲 */
// State02: '02', /** 通信车占用 */
// State03: '03', /** 非通信车占用 */
// State04: '04', /** 进路锁闭 */
// State05: '05', /** 故障锁闭 */
// State06: '06', /** 封锁 */
// State07: '07', /** ATC切除 */
// State08: '08', /** ATS切除 */
// State09: '09', /** 进路延续保护 */
// State10: '10', /** 延时释放 */
// State11: '11', /** 保护区段锁闭 */
// State12: '12', /** 保护区段延时解锁 */
// State13: '13', /** ARB出清检测错误状态 */
// State14: '14' /** 计轴失效 */
// },
blockade: false, // 是否封锁
routeLock: false, // 是否进路锁闭
overlapLock: false, // 进路延续保护锁闭
ctOccupied: false, // 通信车占用
nctOccupied: false, // 非通信车占用
// /** 限速*/
// speedUpperLimit: {
// Default: -1 /** 不限速*/
// },
// /** 是否切除*/
// cutOff: {
// Default: false /** 是否切除*/
// },
cutOff: false, // 是否切除
invalid: false, // 是否失效
speedUpLimit: 0, // 最高限速
/** 是否故障*/
fault: false /** 非故障*/
// fault: {
// Default: false /** 非故障*/
// }
};
deviceState[deviceType.Switch] = {
singleLock:1, // 是否单锁
singleLock:0, // 是否单锁
blockade:0, // 是否封锁
routeLock:0, // 是否进路锁闭
overlapLock:0, // 是否进路延续保护锁闭
@ -84,82 +58,13 @@ deviceState[deviceType.Switch] = {
};
deviceState[deviceType.Signal] = {
/** 进路性质类型 */
// natureType: {
// Default: '00', /** 无状态(缺省值)*/
// State01: '01', /** 列车进路 */
// State02: '02', /** 调车进路 */
// State03: '03' /** 折返进路 */
// },
// blockade: false, // 是否封锁
// /** 信号机状态类型 */
// status: {
// Default: '01', /** 关闭(缺省值)*/
// State01: '01', /** 关闭 */
// State02: '02', /** 开放正向 */
// State03: '03', /** 开放侧向 */
// State04: '04', /** 引导 */
// State05: '05', /** 封锁 */
// State06: '06', /** 故障 */
// State07: '07', /** 功能封锁 */
// State08: '08' /** 信号保护区段监视 */
// },
// logicLight: false, // 逻辑点灯 true物理点灯 false
// /** 信号机状态类型 */
// lightType: {
// Default: '01', /** 物理点灯(缺省值)*/
// State01: '01', /** 物理点灯 */
// State02: '02' /** 逻辑点灯 */
// },
// /** 信号机延时状态类型 */
// delayType: {
// Default: '01', /** 未延时解锁(缺省值)*/
// State01: '01', /** 未延时解锁 */
// State02: '02', /** 人工闭塞延时解锁 */
// State03: '03' /** 自动闭塞延时解锁 */
// },
// /** 信号机自动信号状态类型 */
// autoType: {
// Default: '01', /** 隐藏(缺省值)*/
// State01: '01', /** 隐藏 */
// State02: '02', /** 设置自动信号模式状态类型 */
// State03: '03', /** 设置自动进路模式状态类型 */
// State04: '04' /** 信号机进路自动触发模式状态类型 */
// },
// /** 信号机自动通过信号状态类型 */
// autoRouteType: {
// Default: '01', /** 不自动通过(缺省值)*/
// State01: '01', /** 不自动通过 */
// State02: '02' /** 自动通过 */
// },
// /** 信号机按钮状态类型 */
// buttonState: {
// Default: '01', /** 空闲(缺省值)*/
// State01: '01', /** 空闲 */
// State02: '02', /** 选择基本进路始端 */
// State03: '03', /** 选择折返进路始端 */
// State04: '04', /** 基本进路终端待选 */
// State05: '05' /** 折返进路终端待选 */
// },
// /** 引导信号按钮状态类型 */
// guideStatus: {
// Default: '01', /** 空闲(缺省值)*/
// State01: '01', /** 空闲 */
// State02: '02' /** 引导 */
// },
// /** 道岔定位状态*/
// switchLocateType: {
// Default: '01', /** 定位(缺省值)*/
// State01: '01', /** 定位*/
// State02: '02' /** 反位*/
// },
// /** 信号机进路办理*/
// routeSetting: {
// Default: false /** 信号机进路办理*/
// },
/** 是否故障*/
fault: false /** 非故障*/
blockade: false, // 是否锁闭
logicLight: false, // 逻辑点灯
greenOpen: false, // 绿灯开放
yellowOpen: false, // 黄灯开放
redOpen: true, // 红灯开放(默认状态)
delayTime: 0, // 信号机延迟解锁倒计时
fault: false // 是否故障
};
deviceState[deviceType.Station] = {

View File

@ -814,15 +814,30 @@ export default class Section extends Group {
// this.alxeFailure();
// break;
// }
// /** 区段切除*/
/** 道岔保护区段锁闭 */
if (model.overlapLock) {
this.protectiveLock();
}
/** 空闲锁闭或者叫进路锁闭 */
if (model.routeLock) {
this.routeLock();
}
/** 非CBTC车占用 */
if (model.nctOccupied) {
this.unCommunicationOccupied();
}
/** CBTC车占用 */
if (model.ctOccupied) {
this.communicationOccupied();
}
/** 区段切除*/
if (model.cutOff) {
this.sectionCutOff();
}
// /** 是否限速*/
// if (model.speedUpperLimit >= 0) {
// this.setSpeedUpperLimit();
// }
/** 是否限速*/
if (model.speedUpLimit > 0) {
this.setSpeedUpperLimit();
}
}
/** 计算提示位置*/

View File

@ -474,23 +474,12 @@ class Signal extends Group {
// case '07': this.block(); break; // 功能封锁
// case '08': this.signalCheck(); break; // 信号保护区段检测
// }
// if (model.blockade) {
// this.block(); // 封锁
// }
// /** 进路性质类型*/
// switch (model.natureType) {
// case '01': this.trainRoute(); break; // 列车进路
// case '02': this.shuntRoute(); break; // 调车进路
// }
// /** 设置点灯类型*/
// if (model.lightType) {
// this.logicalLight(); // 设置逻辑点灯
// } else {
// this.physicsLight(); // 设置物理点灯
// }
// /** 设置自动类型*/
// switch (model.autoType) {
// case '01': this.setAutoClose(); break; // 隐藏 隐藏自动信号和自动进路
@ -510,6 +499,39 @@ class Signal extends Group {
// if (model.routeSetting && (model.autoType == '03' || model.autoType == '04')) {
// this.setAutoFlicker();
// }
/** 信号机封锁 */
if (model.blockade) {
this.block();
}
/** 设置点灯类型*/
if (model.lightType) {
this.logicalLight(); // 设置逻辑点灯
} else {
this.physicsLight(); // 设置物理点灯
}
/** 设置灯的颜色 */
if (model.greenOpen) {
if (this.lamps[0]) {
this.lamps[0].setColor(this.style.Signal.lamp.greenColor);
}
if (this.lamps[1]) {
this.lamps[1].setColor(this.style.Signal.lamp.greenColor);
}
} else if (model.redOpen) {
if (this.lamps[0]) {
this.lamps[0].setColor(this.style.Signal.lamp.redColor);
}
if (this.lamps[1]) {
this.lamps[1].setColor(this.style.Signal.lamp.redColor);
}
} else if (model.yellowOpen) {
if (this.lamps[0]) {
this.lamps[0].setColor(this.style.Signal.lamp.yellowColor);
}
if (this.lamps[1]) {
this.lamps[1].setColor(this.style.Signal.lamp.yellowColor);
}
}
}
getBoundingRect() {

View File

@ -419,8 +419,20 @@ export default class Switch extends Group {
}
setState(model) {
this.setLocateType(model);
// this.setLocateType(model);
if (model.normalPosition) {
this.setLocationAction(); /** 定位*/
} else if (model.reversePosition) {
this.setInversionAction(); /** 反位*/
}
/** 道岔单锁 */
if (model.singleLock) {
this.setMonolock();
}
/** 道岔锁闭 */
if (model.blockade) {
this.block();
}
// switch (model.status) {
// case '01':
// this.spare(); /** 空闲*/