增加三维驾驶超速报警和牵引状态mmi显示,增加剧本设计中三维驾驶

This commit is contained in:
sunzhenyu 2020-06-17 18:16:49 +08:00
parent 3ec20a75c6
commit b70feae183
9 changed files with 145 additions and 60 deletions

View File

@ -73,3 +73,12 @@ export function getPublish3dMapDetail(id) {
}); });
return datad.then(); return datad.then();
} }
/** 更新地图3d数据*/
export function tuoguan3ddrive(group,on,data) {
return request({
url: `/api/scriptSimulation/${group}/${on}/trust`,
method: 'put',
data: data
});
}

View File

@ -102,13 +102,13 @@ export function getmodels(data) {
deviceType:"suidaobg", deviceType:"suidaobg",
type:"nbsuidao", type:"nbsuidao",
picUrl:"", picUrl:"",
assetUrl:"../../static/model/suidao/nbsuidao.FBX" assetUrl:"../../static/model/suidao/suidao.FBX"
} }
assets.push(backgroundmodel); assets.push(backgroundmodel);
models.assets = assets; models.assets = assets;
models.stationtexture = "nb1"; models.stationtexture = "fz1";
models.istexture = true; models.istexture = false;
console.log(models); console.log(models);
postmap.assets = JSON.stringify(models); postmap.assets = JSON.stringify(models);
//link轨道 //link轨道

View File

@ -85,23 +85,23 @@
} }
}, },
watch: { watch: {
move:function(val,oldval) { // move:function(val,oldval) {
if(val != oldval){ // if(val != oldval){
let command ={ // let command ={
code:this.groupNum, // code:this.groupNum,
operation:"602", // operation:"602",
type:"07", // type:"07",
param:val // param:val
}; // };
// if(this.drawWay == 'true'){ // // if(this.drawWay == 'true'){
throttle(trainSimulationForce(this.group,this.groupNum,val),200,true); // throttle(trainSimulationForce(this.group,this.groupNum,val),200,true);
// //
// // }else{
// // throttle(sendSimulationCommand(this.group,command),200,true);
// // }
// //
// }else{
// throttle(sendSimulationCommand(this.group,command),200,true);
// } // }
// },
}
},
touchstate:function(val,oldval){ touchstate:function(val,oldval){
if(val != oldval){ if(val != oldval){
// if(this.userRole == "DRIVER"){ // if(this.userRole == "DRIVER"){
@ -234,6 +234,9 @@
} }
} }
throttle(trainSimulationForce(this.group,this.groupNum, this.move),200,true);
updatemmic1(this.move);
}, },
speedend: function(event){ speedend: function(event){
document.getElementById("div1").onmousemove = null; document.getElementById("div1").onmousemove = null;

View File

@ -119,7 +119,7 @@
<img class="buttonimg" :src="doorrightimg" /> <img class="buttonimg" :src="doorrightimg" />
<div class="buttontext">{{ $t('jlmap3d.closeRightDoor') }}</div> <div class="buttontext">{{ $t('jlmap3d.closeRightDoor') }}</div>
</div> </div>
<div id="urgestop" class="panebutton" style="bottom:6%;left:73%;"> <div id="urgestop" class="panebutton" style="bottom:6%;left:73%;" @click="ebstop">
<img class="buttonimg" :src="urgestopimg" /> <img class="buttonimg" :src="urgestopimg" />
<div class="buttontext">{{ $t('jlmap3d.emergencyBraking') }}</div> <div class="buttontext">{{ $t('jlmap3d.emergencyBraking') }}</div>
</div> </div>
@ -140,7 +140,7 @@
<script> <script>
import Vue from 'vue'; import Vue from 'vue';
// import { sendSimulationCommand } from '@/api/simulation.js'; // import { sendSimulationCommand } from '@/api/simulation.js';
import { trainSimulationDriveMode, trainSimulationAto ,trainSimulationAtp,trainSimulationChangeHead,trainSimulationDoorControl } from '@/jlmap3d/jl3ddrive/drivecontrol/simulation.js'; import { trainSimulationDriveMode, trainSimulationAto ,trainSimulationAtp,trainSimulationChangeHead,trainSimulationDoorControl,trainSimulationEb } from '@/jlmap3d/jl3ddrive/drivecontrol/simulation.js';
export default { export default {
name: 'TopRightPane', name: 'TopRightPane',
@ -425,6 +425,11 @@
}, },
cbtcclick: function (e){ cbtcclick: function (e){
},
ebstop: function (e){
trainSimulationEb(this.group,this.groupNum).then(netdata => {
// console.log(netdata);
});
}, },
updatabuttonlight: function (data){ updatabuttonlight: function (data){
// console.log(data); // console.log(data);

View File

@ -8,7 +8,9 @@
</div> </div>
<div class="display-draft"> <div class="display-draft">
<el-button-group> <el-button-group>
<!-- <el-button type="primary" @click="raystand">站台选择</el-button> --> <!-- <el-button type="primary" @click="raystand">站台选择</el-button> -->
<el-button type="primary" v-show="tuoguanbutton" @click="tuoguan">{{ tuoguanbuttonmsg }}</el-button>
<el-button type="primary" @click="cctvplane">{{ cctvbuttonmsg }}</el-button> <el-button type="primary" @click="cctvplane">{{ cctvbuttonmsg }}</el-button>
<el-button type="primary" @click="showplane">{{ showbuttonmsg }}</el-button> <el-button type="primary" @click="showplane">{{ showbuttonmsg }}</el-button>
<el-button type="primary" @click="back">{{$t('global.back')}}</el-button> <el-button type="primary" @click="back">{{$t('global.back')}}</el-button>
@ -47,9 +49,9 @@ import { mapGetters } from 'vuex';
// import ShowProperty from '@/views/jlmap3d/show/property'; // import ShowProperty from '@/views/jlmap3d/show/property';
import { simulationNotify, setTrainingCbtcInitTime } from '@/api/simulation'; import { simulationNotify, setTrainingCbtcInitTime, getSimulationInfoNew } from '@/api/simulation';
import { getPublishMapDetail, getPublish3dMapDetail } from '@/api/jlmap3d/load3ddata'; import { getPublishMapDetail, getPublish3dMapDetail,tuoguan3ddrive } from '@/api/jlmap3d/load3ddata';
import { UrlConfig } from '@/scripts/ConstDic'; import { UrlConfig } from '@/scripts/ConstDic';
@ -88,6 +90,9 @@ export default {
dcontrolshow: false, dcontrolshow: false,
msgshow:false, msgshow:false,
controlmsg:"不能选择其它列车", controlmsg:"不能选择其它列车",
tuoguanbutton:false,
tuoguanbuttonmsg:"托管",
tuoguanstatus:false,
}; };
}, },
watch: { watch: {
@ -161,11 +166,24 @@ export default {
// this.$destroy(); // this.$destroy();
} }
}, },
computed: {
userId() {
return this.$store.state.user ? this.$store.state.user.id : '';
},
},
mounted() { mounted() {
this.mmishow = true; this.mmishow = true;
window.datanew = this.datanew; window.datanew = this.datanew;
window.updatestatus = this.updatestatus; window.updatestatus = this.updatestatus;
if(this.$route.query.group){
getSimulationInfoNew(this.$route.query.group).then(netdata => {
console.log(netdata);
if(netdata.data.type == "SCRIPT_MAKING"){
this.tuoguanbutton = true;
}
});
}
// this.$refs.mmiui.init(); // this.$refs.mmiui.init();
}, },
methods: { methods: {
@ -262,6 +280,11 @@ export default {
} }
}, },
tuoguan(){
tuoguan3ddrive(this.$route.query.group,this.tuoguanstatus,{}).then(netdata => {
console.log(netdata);
});
},
updatestatus(newdata){ updatestatus(newdata){
this.trainnum = newdata.groupNumber; this.trainnum = newdata.groupNumber;
this.$refs.mmiui.updatetrainstatus(newdata); this.$refs.mmiui.updatetrainstatus(newdata);

View File

@ -6,7 +6,7 @@
</div> </div>
<div class = "top"> <div class = "top">
<div style="background:yellow;left:5%;width:10%;height:100%;"> <div style="left:5%;width:10%;height:100%;" :style="{background:a1state}">
</div> </div>
<div class="toptext" style="left:16%;top:15px;"> <div class="toptext" style="left:16%;top:15px;">
@ -140,7 +140,8 @@ export default {
m9image:null, m9image:null,
m10state:"jinduan", m10state:"jinduan",
m10image:null, m10image:null,
c1state:"qianyin", newc1state:"none",
c1state:"none",
c1image:null, c1image:null,
c2state:"rm", c2state:"rm",
c2image:null, c2image:null,
@ -149,8 +150,14 @@ export default {
c5state:"normal", c5state:"normal",
c5image:null, c5image:null,
images:null, images:null,
newa1state:"black",
a1state:"black",
} }
}, },
mounted() {
window.updatemmic1 = this.updatemmic1;
this.init();
},
beforeDestroy() { beforeDestroy() {
@ -183,8 +190,8 @@ export default {
this.m8image = this.images.m8['jinjizhidong']; this.m8image = this.images.m8['jinjizhidong'];
this.m9image = this.images.m9['ato']; this.m9image = this.images.m9['ato'];
this.m10image = this.images.m10['jinduan']; this.m10image = this.images.m10['jinduan'];
this.c1image = this.images.c1['qianyin']; this.c1image = this.images.c1['none'];
this.c2image = this.images.c2['rm']; this.c2image = this.images.c2['none'];
this.c3image = this.images.c3['normal']; this.c3image = this.images.c3['normal'];
this.c5image = this.images.c5['normal']; this.c5image = this.images.c5['normal'];
}, },
@ -204,18 +211,20 @@ export default {
}, },
updatetrainstatus(newdata){ updatetrainstatus(newdata){
// //
console.log(newdata);
this.updatemmispeedview(newdata.v,newdata.pv,newdata.tv); this.updatemmispeedview(newdata.v,newdata.pv,newdata.tv);
this.updatemmilen(newdata.maLen); this.updatemmilen(newdata.maLen);
this.updatammirunlevel(newdata.runLevel); this.updatemmidrivemodelevel(newdata.runLevel,newdata.driveMode,newdata.atoOn,newdata.atpOn);
// this.updatammirunlevel(newdata.runLevel);
//
// this.updatemmidrivemode(newdata.driveMode);
//
// this.updatemmiatoatp(newdata.atoOn,newdata.atpOn);
this.updatemmidrivemode(newdata.driveMode);
this.updatemmistation(newdata.endStation,newdata.nextStation); this.updatemmistation(newdata.endStation,newdata.nextStation);
this.updatemmiatoatp(newdata.atoOn,newdata.atpOn);
this.updatemmidoormode(newdata.leftDoorCanClose,newdata.rightDoorCanClose); this.updatemmidoormode(newdata.leftDoorCanClose,newdata.rightDoorCanClose);
}, },
updatemmistate(aaa){ updatemmistate(aaa){
@ -234,6 +243,19 @@ export default {
if(this.mmimodel.updateato){ if(this.mmimodel.updateato){
this.mmimodel.updateato(atospeed); this.mmimodel.updateato(atospeed);
} }
console.log(this.m9state1);
if(this.m9state1 == false){
if(speed>atospeed){
this.newa1state = "yellow";
}else{
this.newa1state = "black";
}
if(this.newa1state != this.a1state){
this.a1state = this.newa1state;
}
}
}, },
@ -308,43 +330,35 @@ export default {
// //
// } // }
}, },
updatammirunlevel(drivedata){ updatemmidrivemodelevel(runlevel,dirvemode,atoon,atpon){
if(drivedata != this.m2state){ if(runlevel != this.m2state){
if(drivedata == "CBTC"){ if(runlevel == "CBTC"){
this.m2state = drivedata; this.m2state = runlevel;
this.m2image = this.images.m2['cbtc']; this.m2image = this.images.m2['cbtc'];
}else if(drivedata == "IL"){ }else if(runlevel == "IL"){
this.m2state = drivedata; this.m2state = runlevel;
this.m2image = this.images.m2['il']; this.m2image = this.images.m2['il'];
}else{ }else{
this.m2state = drivedata; this.m2state = runlevel;
this.m2image = this.images.m2['start']; this.m2image = this.images.m2['start'];
} }
} }
}, if(dirvemode != this.m1state){
updatemmidrivemode(drivedata){ if(dirvemode == "CM"){
if(drivedata != this.m1state){ this.m1state = dirvemode;
if(drivedata == "CM"){
this.m1state = drivedata;
this.m1image = this.images.m1['cm']; this.m1image = this.images.m1['cm'];
}else if(drivedata == "RM"){ }else if(dirvemode == "RM"){
this.m1state = drivedata; this.m1state = dirvemode;
this.m1image = this.images.m1['rm']; this.m1image = this.images.m1['rm'];
}else if(drivedata == "AM"){ }else if(dirvemode == "AM"){
this.m1state = drivedata; this.m1state = dirvemode;
this.m1image = this.images.m1['am']; this.m1image = this.images.m1['am'];
}else{ }else{
this.m1state = null; this.m1state = null;
this.m1image = this.images.m1['start']; this.m1image = this.images.m1['start'];
} }
} }
},
updatemmiatoatp(atoon,atpon){
// //
if(this.m9state1 != atoon){ if(this.m9state1 != atoon){
this.m9state1 = atoon; this.m9state1 = atoon;
@ -352,6 +366,7 @@ export default {
}else{ }else{
this.m9image = this.images.m9["ato"]; this.m9image = this.images.m9["ato"];
// this.c2image = this.images.c2['none'];
} }
} }
@ -363,6 +378,7 @@ export default {
this.m9image = this.images.m9["atp"]; this.m9image = this.images.m9["atp"];
} }
} }
}, },
updatemmidoormode(leftDoorCanClose,rightDoorCanClose){ updatemmidoormode(leftDoorCanClose,rightDoorCanClose){
if(leftDoorCanClose != this.m5stateleft|| rightDoorCanClose != this.m5stateright){ if(leftDoorCanClose != this.m5stateleft|| rightDoorCanClose != this.m5stateright){
@ -417,6 +433,26 @@ export default {
this.malen = +parseInt(len)/2*10+"px"; this.malen = +parseInt(len)/2*10+"px";
} }
}, },
updatemmic1(qspeed){
if(this.nowspeed != 0 ){
this.newc1state = 'duoxing';
}else{
this.newc1state = 'none';
}
if(qspeed>0){
this.newc1state = 'qianyin';
}else if(qspeed<0){
this.newc1state = 'zhidong';
}
if(this.c1state != this.newc1state){
this.c1state = this.newc1state;
this.c1image = this.images.c1[this.c1state];
}
},
updatemmistation(end,next){ updatemmistation(end,next){
if(next != this.nextstation || end != this.endstation){ if(next != this.nextstation || end != this.endstation){
this.endstation = end; this.endstation = end;
@ -425,9 +461,6 @@ export default {
}, },
}, },
mounted() {
this.init();
},
beforeDestroy() { beforeDestroy() {
} }
} }

View File

@ -52,7 +52,7 @@
@showScheduling="showScheduling" @showScheduling="showScheduling"
/> />
<menu-script v-if="isScript" ref="menuScript" :offset-bottom="offsetBottom" :group="group" :data-error="dataError" /> <menu-script v-if="isScript" ref="menuScript" @script3ddriveshow="script3ddriveshow" :offset-bottom="offsetBottom" :group="group" :data-error="dataError" />
<menu-practice <menu-practice
v-if="isPractice" v-if="isPractice"
@ -245,6 +245,8 @@ export default {
return this.mode === 'practice'; return this.mode === 'practice';
}, },
isDrive() { isDrive() {
console.log(this.mode);
console.log(this.prdType);
return this.prdType == '04'; return this.prdType == '04';
}, },
isShowScheduling() { isShowScheduling() {
@ -624,6 +626,11 @@ export default {
window.open(routeData.href, '_blank', 'noopener noreferrer'); window.open(routeData.href, '_blank', 'noopener noreferrer');
} }
}, },
script3ddriveshow(){
this.panelShow = false;
this.drivingShow = true;
this.$refs.Jl3dDrive.show(this.mapId, this.group);
},
passflow() { passflow() {
const routeData = this.$router.resolve({ const routeData = this.$router.resolve({
path:'/jlmap3d/passengerflow', path:'/jlmap3d/passengerflow',

View File

@ -7,6 +7,7 @@
<el-button type="danger" @click="dumpScenesData">重置剧本</el-button> <el-button type="danger" @click="dumpScenesData">重置剧本</el-button>
</el-button-group> --> </el-button-group> -->
<el-button-group> <el-button-group>
<el-button type="jumpjlmap3d" @click="jumpjlmap3d">{{ $t('joinTraining.driverPerspective') }}</el-button>
<el-button v-if="!isScriptCommand" type="success" :disabled="isDisable || dataError" @click="selectBeginTime">{{ $t('scriptRecord.drivingByPlan') }}</el-button> <el-button v-if="!isScriptCommand" type="success" :disabled="isDisable || dataError" @click="selectBeginTime">{{ $t('scriptRecord.drivingByPlan') }}</el-button>
<el-button v-if="!isScriptCommand" type="danger" :disabled="dataError" @click="end">初始化</el-button> <el-button v-if="!isScriptCommand" type="danger" :disabled="dataError" @click="end">初始化</el-button>
<el-button type="primary" @click="back">{{ $t('scriptRecord.scriptBack') }}</el-button> <el-button type="primary" @click="back">{{ $t('scriptRecord.scriptBack') }}</el-button>
@ -196,6 +197,9 @@ export default {
Notification.closeAll(); Notification.closeAll();
}); });
}, },
jumpjlmap3d() {
this.$emit('script3ddriveshow');
},
async loadSystemTime() { async loadSystemTime() {
} }

View File

@ -100,6 +100,7 @@ export default {
return this.userRole == 'STATION_SUPERVISOR'; return this.userRole == 'STATION_SUPERVISOR';
}, },
isDriver() { isDriver() {
console.log(this.userRole);
return this.userRole == 'DRIVER'; return this.userRole == 'DRIVER';
}, },
isAdmin() { isAdmin() {