| | |
| | | "name" : "ES-GO", |
| | | "appid" : "__UNI__C988375", |
| | | "description" : "", |
| | | "versionName" : "1.3.6", |
| | | "versionCode" : 136, |
| | | "versionName" : "1.3.9", |
| | | "versionCode" : 139, |
| | | "transformPx" : false, |
| | | /* 5+App特有相关 */ |
| | | "app-plus" : { |
| | |
| | | <uni-popup-dialog type="info" cancelText="取消" confirmText="确定" title="示教更新" |
| | | @confirm="dialogTeachingUpdateConfirm" @close="dialogTeachingUpdateClose"> |
| | | |
| | | <view> |
| | | |
| | | <radio-group @change="radioTeachinMainRoadChange"> |
| | | <label class="radio"> |
| | | <radio :value="1" :checked="selectTeachingMode.main_road == 1" />主路 |
| | | </label> |
| | | <label class="radio"> |
| | | <radio :value="0" :checked="selectTeachingMode.main_road != 1" />支路 |
| | | </label> |
| | | </radio-group> |
| | | <view class="popup-dialog-content"> |
| | | <view class="popup-content-item"> |
| | | <radio-group @change="radioTeachinMainRoadChange"> |
| | | <label class="radio"> |
| | | <radio :value="1" :checked="selectTeachingMode.main_road == 1" />主路 |
| | | </label> |
| | | <label class="radio"> |
| | | <radio :value="0" :checked="selectTeachingMode.main_road != 1" />支路 |
| | | </label> |
| | | </radio-group> |
| | | |
| | | |
| | | </view> |
| | | <view class="popup-content-item"> |
| | | <radio-group @change="radioTeachinBidirectionChange"> |
| | | <label class="radio"> |
| | | <radio :value="1" :checked="selectTeachingMode.bidirection == 1" />双向 |
| | | </label> |
| | | <label class="radio"> |
| | | <radio :value="0" :checked="selectTeachingMode.bidirection != 1" />单向 |
| | | </label> |
| | | </radio-group> |
| | | |
| | | </view> |
| | | </view> |
| | | <view> |
| | | <radio-group @change="radioTeachinBidirectionChange"> |
| | | <label class="radio"> |
| | | <radio :value="1" :checked="selectTeachingMode.bidirection == 1" />双向 |
| | | </label> |
| | | <label class="radio"> |
| | | <radio :value="0" :checked="selectTeachingMode.bidirection != 1" />单向 |
| | | </label> |
| | | </radio-group> |
| | | |
| | | </view> |
| | | |
| | | </uni-popup-dialog> |
| | | </uni-popup> |
| | | |
| | |
| | | unlinked: false, |
| | | showTeachingPathFlag: true, |
| | | curTeachingPathFlag: false, |
| | | curTeachingPathTime: 0, |
| | | curMapInfo: { |
| | | proportion: 1, |
| | | img_proportion: 1, |
| | |
| | | if (this.mapOperationStatus == 'end' || this.mapOperationStatus == |
| | | 'save') { |
| | | try { |
| | | // await delTeachingMode(this.vehicleIp, [this.teachingModeCur]) |
| | | await deleteSplitTeachingData(this.vehicleIp, this.teachingModeCur |
| | | .edge_name, this.teachingModeCur.name) |
| | | await delTeachingMode(this.vehicleIp, [this.teachingModeCur]) |
| | | |
| | | listDataStr.push({ |
| | | method: "remove_teaching_path", |
| | |
| | | name: param.data?.name || "", |
| | | point: param.point, |
| | | main_road: param.data?.main_road || 0, |
| | | bidirection: param.data?.name || 0, |
| | | bidirection: param.data?.bidirection || 0, |
| | | } |
| | | console.log(this.selectTeachingMode.main_road, this.selectTeachingMode) |
| | | } |
| | | this.$refs.refPopupOperateTeaching.open("bottom") |
| | | } else if (param.method == "cancel_positioning_agv") { |
| | |
| | | } |
| | | }) |
| | | if (list.length > 0) { |
| | | this.curTeachingPathTime += 1 |
| | | this.curTeachingPathFlag = true |
| | | if (this.curTeachingPathTime % 5 == 0) { |
| | | const listStationCtxData = await this.getRefreshStationCtxData() || [] |
| | | if (listStationCtxData.length > 0) { |
| | | listCtrData.push(...listStationCtxData) |
| | | } |
| | | } |
| | | } else { |
| | | if (this.curTeachingPathFlag) { |
| | | this.curTeachingPathFlag = false |
| | | this.curTeachingPathTime = 0 |
| | | |
| | | const teaching = await this.loadTeachingMode() |
| | | |
| | | const publicOld = this.teachingMode.Public || [] |
| | |
| | | const stationAdd = [] |
| | | for (let i in publicNew) { |
| | | const item = publicNew[i] |
| | | const curIndex = publicOld.findIndex((a) => a.name == item.name) |
| | | console.log(curIndex, item) |
| | | const curIndex = publicOld.findIndex((a) => a.name == item.name && a.edge_name == item.edge_name ) |
| | | |
| | | if (curIndex < 0) { |
| | | publicAdd.push(item) |
| | | publicOld.push(item) |
| | |
| | | show: this.showTeachingPathFlag |
| | | } |
| | | }) |
| | | } |
| | | const listStationCtxData = await this.getRefreshStationCtxData() || [] |
| | | if (listStationCtxData.length > 0) { |
| | | listCtrData.push(...listStationCtxData) |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | }, |
| | | async getRefreshStationCtxData() { |
| | | try { |
| | | const listCtrData = [] |
| | | const listOld = this.stationList |
| | | const listId = listOld.map((a) => a.stationID) |
| | | const stationLst = await this.loadStations() |
| | | const listNew = stationLst.filter((a) => { |
| | | return !listId.includes(a.stationID) |
| | | }) |
| | | // console.log(listId.length,listNew.length,stationLst.length) |
| | | // console.log(listId) |
| | | if (listId.length + listNew.length > stationLst.length) { |
| | | const listId2 = stationLst.map((a) => a.stationID) |
| | | |
| | | const listRemove = listOld.filter((a) => { |
| | | return !listId2.includes(a.stationID) |
| | | }) |
| | | if (listRemove.length > 0) { |
| | | listCtrData.push({ |
| | | method: "remove_station", |
| | | param: listRemove |
| | | }) |
| | | this.stationList = stationLst |
| | | } |
| | | } |
| | | if (listNew.length > 0) { |
| | | listCtrData.push({ |
| | | method: "add_station", |
| | | param: listNew |
| | | }) |
| | | this.stationList = stationLst |
| | | } |
| | | return listCtrData |
| | | } catch (ex) { |
| | | |
| | | showToast(ex) |
| | | return [] |
| | | } |
| | | }, |
| | | askTeachingBiDirection(teachingMode) { |
| | | showModal("选择当前示教路线类型?", "示教结束", true, "双向路线", |
| | | "单向路线").then((res) => { |
| | |
| | | if (res) { |
| | | try { |
| | | this.loading = true |
| | | //await delTeachingMode(_this.vehicleIp, [_this.teachingModeCur]) |
| | | await deleteSplitTeachingData(_this.vehicleIp, _this.teachingModeCur.edge_name, |
| | | _this.teachingModeCur.name) |
| | | await delTeachingMode(_this.vehicleIp, [_this.teachingModeCur]) |
| | | _this.mapOperationStatus = "" |
| | | const listDataStr = [] |
| | | listDataStr.push({ |
| | |
| | | this.teachingModeCur.teaching_flag = 1 |
| | | this.teachingModeCur.mode = "Public" |
| | | this.teachingModeCur.name = "" |
| | | const res = await teachingModeFlag(this.vehicleIp, this.teachingModeCur) |
| | | const res = await teachingModeFlag(this.vehicleIp, this |
| | | .teachingModeCur) |
| | | if (val == 1) |
| | | showToast("已将示教切换成双向模式") |
| | | else if (val == 2) |
| | |
| | | // param: this.selectTeachingMode, |
| | | // }]) |
| | | }, |
| | | radioTeachinMainRoadChange(e) { |
| | | radioTeachinMainRoadChange(evt) { |
| | | this.selectTeachingMode.main_road = evt.detail.value |
| | | }, |
| | | radioTeachinBidirectionChange(evt) { |
| | |
| | | uni.showLoading({ |
| | | title: "删除示教中" |
| | | }) |
| | | await deleteSplitTeachingData(this.vehicleIp, item.edge_name, item.name) |
| | | await deleteSplitTeachingData(this.vehicleIp, item |
| | | .edge_name, item.name) |
| | | //await delTeachingMode(this.vehicleIp, [item]) |
| | | this.ctxDataStr = |
| | | JSON.stringify( |
| | |
| | | uni.showLoading({ |
| | | title: "删除示教数据中" |
| | | }) |
| | | await deleteSplitTeachingData(this.vehicleIp, data.edge_name, data.name) |
| | | //await delTeachingModeData(this.vehicleIp, data) |
| | | await delTeachingModeData(this.vehicleIp, data) |
| | | showToast("删除示教成功") |
| | | this.reloadTeachingMode() |
| | | } catch (ex) { |
| | |
| | | height: 32px; |
| | | line-height: 32px; |
| | | text-align: center; |
| | | box-shadow: 0px 2px 8px 0px #0000000C; |
| | | } |
| | | |
| | | .switch-button-checked { |
| | |
| | | background-color: transparent; |
| | | } |
| | | |
| | | .popup-dialog-content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .popup-content-item { |
| | | padding: 10rpx; |
| | | } |
| | | } |
| | | |
| | | .popup-content-menu { |
| | | margin-top: 140rpx; |
| | | margin-left: 225rpx; |
| | |
| | | } |
| | | }, |
| | | clearObjects() { |
| | | |
| | | if (!this.canvas) return; |
| | | this.canvas.discardActiveObject() |
| | | const objects = this.canvas.getObjects() |
| | |
| | | this.objEditing = null; |
| | | this.editObject = null; |
| | | this.drawingObj = null; |
| | | this.objAgvLaser = null |
| | | this.objAgvLaserLine = null |
| | | if (this.pressObjTimer) { |
| | | clearTimeout(this.pressObjTimer); |
| | | this.pressObjTimer = null; |
| | |
| | | } |
| | | }) |
| | | let path2 = "" |
| | | const theta = 20; |
| | | let headlen = 10; |
| | | var main_road = teachingData.main_road || 0 |
| | | |
| | | const len = pos_list.length |
| | | let fromX = 0, |
| | |
| | | y: this.getYOnImg(pt.y) |
| | | } |
| | | if (index > 0) { |
| | | // if ((index % 50 == 0 || index == len - 1 || index % 50 == 1)) { |
| | | // if (index % 50 == 0 || index == len - 1) { |
| | | // toX = pt2.x |
| | | // toY = pt2.y |
| | | // path2 += ` L${pt2.x} ${pt2.y}` |
| | | |
| | | // // 计算各角度和对应的P2,P3坐标 |
| | | // let angle = (Math.atan2(fromY - toY, fromX - toX) * 180) / Math.PI, |
| | | // angle1 = ((angle + theta) * Math.PI) / 180, |
| | | // angle2 = ((angle - theta) * Math.PI) / 180, |
| | | // topX = headlen * Math.cos(angle1), |
| | | // topY = headlen * Math.sin(angle1), |
| | | // botX = headlen * Math.cos(angle2), |
| | | // botY = headlen * Math.sin(angle2); |
| | | // let arrowX = fromX - topX, |
| | | // arrowY = fromY - topY; |
| | | // arrowX = toX + topX; |
| | | // arrowY = toY + topY; |
| | | // path2 += " L " + arrowX + " " + arrowY; |
| | | // arrowX = toX + botX; |
| | | // arrowY = toY + botY; |
| | | // path2 += " M " + arrowX + " " + arrowY; |
| | | // path2 += " L " + toX + " " + toY; |
| | | // } |
| | | // } else { |
| | | // path2 += ` L${pt2.x} ${pt2.y}` |
| | | // } |
| | | path2 += ` L${pt2.x} ${pt2.y}` |
| | | } else { |
| | | path2 = `M${pt2.x} ${pt2.y}` |
| | |
| | | let strokeWidth = 5 |
| | | let stroke = "#69C0FF" |
| | | |
| | | // if (main_road == 1) { |
| | | // stroke = "#69C0FF" |
| | | // } |
| | | |
| | | const objPath = new fabric.Path( |
| | | path2, { |
| | | id: "current_teaching", |
| | |
| | | |
| | | const theta = 20; |
| | | let headlen = 10; |
| | | var main_road = teachingData.main_road || 0 |
| | | var main_road = teachingData.main_road |
| | | |
| | | const len = pos_list.length |
| | | let fromX = 0, |
| | |
| | | y: this.getYOnImg(pt.y) |
| | | } |
| | | if (index > 0) { |
| | | // if ((type == "public_teaching") && (index % 50 == 0 || index == len - 1 || index % 50 == 1)) { |
| | | // if (index % 50 == 1 || index == len - 1) { |
| | | // if (teachingData.bidirection == 1 && index < len - 1) { //- 1 |
| | | // toY = fromY |
| | | // toX = fromX |
| | | // fromX = pt2.x |
| | | // fromY = pt2.y |
| | | // let angle = (Math.atan2(fromY - toY, fromX - toX) * 180) / Math.PI, |
| | | // angle1 = ((angle + theta) * Math.PI) / 180, |
| | | // angle2 = ((angle - theta) * Math.PI) / 180, |
| | | // topX = headlen * Math.cos(angle1), |
| | | // topY = headlen * Math.sin(angle1), |
| | | // botX = headlen * Math.cos(angle2), |
| | | // botY = headlen * Math.sin(angle2); |
| | | // let arrowX = fromX - topX, |
| | | // arrowY = fromY - topY; |
| | | // arrowX = toX + topX; |
| | | // arrowY = toY + topY; |
| | | // let path3 = " L " + arrowX + " " + arrowY; |
| | | // arrowX = toX + botX; |
| | | // arrowY = toY + botY; |
| | | // path3 += " M " + arrowX + " " + arrowY; |
| | | // path3 += " L " + toX + " " + toY; |
| | | |
| | | // path2 += path3 |
| | | // fromY = toY |
| | | // fromX = toX |
| | | // } |
| | | // } |
| | | // if (index % 50 == 0 || index == len - 1) { |
| | | // toX = pt2.x |
| | | // toY = pt2.y |
| | | // // if (fromX == toX && fromY == toY) { |
| | | // // if (index - 2 >= 0) { |
| | | // // const pt3 = pos_list[index - 2] |
| | | // // fromX = this.getXOnImg(pt3.x), |
| | | // // fromY = this.getYOnImg(pt3.y) |
| | | // // } else { |
| | | // // continue; |
| | | // // } |
| | | // // } |
| | | // path2 += ` L${pt2.x} ${pt2.y}` |
| | | |
| | | // // 计算各角度和对应的P2,P3坐标 |
| | | // let angle = (Math.atan2(fromY - toY, fromX - toX) * 180) / Math.PI, |
| | | // angle1 = ((angle + theta) * Math.PI) / 180, |
| | | // angle2 = ((angle - theta) * Math.PI) / 180, |
| | | // topX = headlen * Math.cos(angle1), |
| | | // topY = headlen * Math.sin(angle1), |
| | | // botX = headlen * Math.cos(angle2), |
| | | // botY = headlen * Math.sin(angle2); |
| | | // let arrowX = fromX - topX, |
| | | // arrowY = fromY - topY; |
| | | // arrowX = toX + topX; |
| | | // arrowY = toY + topY; |
| | | // path2 += " L " + arrowX + " " + arrowY; |
| | | // arrowX = toX + botX; |
| | | // arrowY = toY + botY; |
| | | // path2 += " M " + arrowX + " " + arrowY; |
| | | // path2 += " L " + toX + " " + toY; |
| | | // } |
| | | // // console.log(`箭头 L${pt2.x} ${pt2.y}`) |
| | | // } else { |
| | | // // console.log(`点 L${pt2.x} ${pt2.y} ${index} == ${len-1}`) |
| | | // path2 += ` L${pt2.x} ${pt2.y}` |
| | | // } |
| | | |
| | | path2 += ` L${pt2.x} ${pt2.y}` |
| | | } else { |
| | | if (pt.main_road) |
| | | if (main_road === undefined) |
| | | main_road = pt.main_road |
| | | // if (main_road == 1) { |
| | | // headlen = 15 |
| | | // } |
| | | |
| | | path2 = `M${pt2.x} ${pt2.y}` |
| | | } |
| | | fromX = pt2.x |
| | |
| | | } |
| | | } |
| | | } |
| | | teachingData.main_road = main_road |
| | | let list = this.canvas.getObjects() || [] |
| | | list = list.filter((a) => a.eleType == "station_teaching" || a.eleType == "public_teaching") |
| | | let lenTeaching = list.length |
| | |
| | | let id = "" |
| | | if (teachingMode.mode == "Public") { |
| | | eleType = "public_teaching" |
| | | id = `public_teaching_${teachingMode.name}` |
| | | id = `public_teaching_${teachingMode.name}_${teachingMode.edge_name}` |
| | | } else if (teachingMode.mode == "Stations") { |
| | | eleType = "station_teaching" |
| | | id = `station_teaching_${teachingMode.src_dst}` |
| | |
| | | x: this.getXOnImg(param.x), |
| | | y: this.getYOnImg(param.y) |
| | | } |
| | | if (this.objAgvLaser) { |
| | | this.objAgvLaser.set({stroke: "#00ff00", rx: 2, |
| | | ry:2}) |
| | | } |
| | | let ellipse = new fabric.Ellipse({ |
| | | id: "agv_laser", |
| | | eleType: "agv_laser", |
| | | left: pt.x, |
| | | top: pt.y, |
| | | rx: 2, |
| | | ry: 2, |
| | | stroke: "#00aa00", |
| | | rx: 3, |
| | | ry: 3, |
| | | stroke: "#ff0000", |
| | | strokeWidth: 1, |
| | | fill: "#00aa00", |
| | | fill: "#00ff00", |
| | | originX: "center", |
| | | originY: "center", |
| | | selectable: false, |
| | | hasControls: true, |
| | | lockRotation: true, |
| | | lockScalingX: true, |
| | | lockScalingY: true, |
| | | lockMovementX: true, |
| | | lockMovementY: true, |
| | | hasControls: false, |
| | | |
| | | }); |
| | | this.canvas.add(ellipse) |
| | | const offX = 20 * Math.cos(angle) |
| | | const offY = 20 * Math.sin(angle) |
| | | |
| | | if (this.objAgvLaser) { |
| | | this.canvas.remove(this.objAgvLaser) |
| | | this.objAgvLaser = ellipse |
| | | if (this.objAgvLaserLine) { |
| | | this.canvas.remove(this.objAgvLaserLine) |
| | | } |
| | | const line = new fabric.Line([pt.x, pt.y, pt.x + offX, |
| | | pt.y + offY |
| | | ], { |
| | | id: "agv_laser_angle", |
| | | eleType: "agv_laser_angle", |
| | | stroke: "#00aa00", |
| | | stroke: "#00ff00", |
| | | strokeWidth: 1, |
| | | lockRotation: true, |
| | | lockScalingX: true, |
| | | lockScalingY: true, |
| | | lockMovementX: true, |
| | | lockMovementY: true, |
| | | selectable: false, |
| | | hasControls: false, |
| | | }); |
| | | this.objAgvLaser = line |
| | | |
| | | this.objAgvLaserLine = line |
| | | this.canvas.add(line) |
| | | }, |
| | | addTrajectoryPoint(list) { |
| | | const objs = [] |
| | | |
| | | let right = 0 |
| | | let bottom = 0 |
| | | let left = this.mapInfo.img_x |
| | | let top = this.mapInfo.img_y |
| | | for (let i in list) { |
| | | const pt = list[i] |
| | | const pt2 = { |
| | | x: this.getXOnImg(pt[0]), |
| | | y: this.getYOnImg(pt[1]) |
| | | } |
| | | let ellipse = new fabric.Ellipse({ |
| | | left: pt2.x, |
| | | top: pt2.y, |
| | | rx: 2, |
| | | ry: 2, |
| | | stroke: "#00ff00", |
| | | strokeWidth: 1, |
| | | fill: "#00ff00", |
| | | originX: "center", |
| | | originY: "center", |
| | | }); |
| | | |
| | | objs.push(ellipse) |
| | | if (left > pt2.x-2) { |
| | | left = pt2.x-2 |
| | | } |
| | | if (top > pt2.y-2) { |
| | | top = pt2.y-2 |
| | | } |
| | | if (right < pt2.x + 2) { |
| | | right = pt2.x + 2 |
| | | } |
| | | if (bottom < pt2.y + 2) { |
| | | bottom = pt2.y + 2 |
| | | } |
| | | } |
| | | const groupObj = new fabric.Group(objs, { |
| | | id: `trajectory_point_group`, |
| | | eleType: "trajectory_point_group", |
| | | left, |
| | | top, |
| | | width: right - left, |
| | | height: bottom - top, |
| | | selectable: false, |
| | | hasControls: true, |
| | | }) |
| | | this.canvas.add(groupObj) |
| | | }, |
| | | updateLaserPoint(param) { |
| | | |
| | |
| | | top: pt2.y, |
| | | width: 1, |
| | | height: 1, |
| | | fill: "#F5222D", |
| | | fill: "#ff00ff", |
| | | originX: "left", |
| | | originY: "top", |
| | | // selectable: false, |
| | |
| | | const show = item.param?.show || false |
| | | for (let i2 in teachingPathList) { |
| | | const teachingPath = teachingPathList[i2] |
| | | const id = `public_teaching_${teachingPath.name}` |
| | | const id = `public_teaching_${teachingPath.name}_${teachingPath.edge_name}` |
| | | const obj = await this.addTeachingPath(teachingPath, id, "public_teaching", |
| | | show) |
| | | obj.set({ |
| | |
| | | let list = _this.canvas.getObjects() || [] |
| | | if (item.param.mode == "Public") { |
| | | list = list.filter((a) => a.eleType == "public_teaching") |
| | | const id = `public_teaching_${item.param.name}` |
| | | const id = `public_teaching_${item.param.name}_${item.param.edge_name}` |
| | | const curIndex = list.findIndex((a) => a.id == id) |
| | | |
| | | if (curIndex > -1) { |
| | |
| | | } else if (item.method == "update_teaching") { |
| | | let list = _this.canvas.getObjects() || [] |
| | | list = list.filter((a) => a.eleType == "public_teaching") |
| | | const id = `public_teaching_${item.param.name}` |
| | | const id = `public_teaching_${item.param.name}_${item.param.edge_name}` |
| | | const curIndex = list.findIndex((a) => a.id == id) |
| | | if (curIndex > -1) { |
| | | const obj = list[curIndex] |
| | |
| | | } |
| | | } |
| | | |
| | | obj.set({strokeWidth,stroke}) |
| | | obj.set({ |
| | | strokeWidth, |
| | | stroke |
| | | }) |
| | | |
| | | } |
| | | } else if (item.method == "set_selectable") { |
| | |
| | | this.updateAgvLaser(item.param || {}) |
| | | } else if (item.method == "point_cloud") { |
| | | this.updateLaserPoint(item.param || {}) |
| | | } else if (item.method == "point_trajectory") { |
| | | this.addTrajectoryPoint(item.param || []) |
| | | } |
| | | |
| | | } |
| | | if (_this.canvas) |
| | | _this.canvas.renderAll() |
| | |
| | | <view class="tip">场景构建中</view> |
| | | <view> |
| | | <!-- 请操作搬运车扫描地图覆盖的区域 --> |
| | | {{mapServerPhase=== 1 ?"场景构建服务:未启动":mapServerPhase===2 ?"场景构建服务:启动中":mapServerPhase===3 ?"场景构建中":mapServerPhase}} |
| | | {{mapCreatePhase}} |
| | | </view> |
| | | |
| | | <view class="text-button-group"> |
| | |
| | | <view class="tip"> “{{sceneName}}”{{opType == "extend"?"场景扩展结束"+"":"场景构建结束"}}</view> |
| | | <!-- <view> 已成功构建“{{sceneName}}”</view> --> |
| | | <view class="loading-view"> |
| | | 构图状态:{{mapServerPhase===5?"保存成功":mapServerPhase===4?"保存中":mapServerPhase===6?"保存失败":mapServerPhase}} |
| | | {{mapCreatePhase}} |
| | | <view v-if="mapServerPhase === 4" class="auto-circle"></view> |
| | | </view> |
| | | <view class="text-button-group"> |
| | |
| | | } |
| | | }, |
| | | computed: { |
| | | |
| | | mapCreatePhase() { |
| | | if (this.mapServerPhase == 1) { |
| | | return "场景构建服务:未启动" |
| | | } else if (this.mapServerPhase == 2) { |
| | | return "场景构建服务:启动中" |
| | | } else if (this.mapServerPhase == 3) { |
| | | return "场景构建中" |
| | | } else if (this.mapServerPhase == 4) { |
| | | return "场景构图保存中" |
| | | } else if (this.mapServerPhase == 5) { |
| | | return "场景构图保存成功" |
| | | } else if (this.mapServerPhase == 6) { |
| | | return "场景构图保存失败" |
| | | } else |
| | | return this.mapServerPhase |
| | | } |
| | | }, |
| | | watch: { |
| | | |
| | |
| | | |
| | | const res = await getMapServerPhase(this.ip) |
| | | this.mapServerPhase = res || 1 |
| | | if (this.mapServerPhase === 3) { |
| | | return |
| | | } |
| | | if (this.mapServerPhase === 5 || this.mapServerPhase === 6) { |
| | | this.saveMapIsOk = true |
| | | return |
| | | if(this.opSceneType === "finish") |
| | | { |
| | | if (this.mapServerPhase === 5 || this.mapServerPhase === 6) { |
| | | this.saveMapIsOk = true |
| | | return |
| | | } |
| | | } |
| | | setTimeout(this.checkMapServerPhase, 1000); |
| | | } catch (ex) { |
| | |
| | | }) |
| | | this.saveMapIsOk = false |
| | | await stopMap(this.ip, this.sceneName) |
| | | this.mapServerPhase = 4 |
| | | this.checkMapServerPhase(); |
| | | //this.mapServerPhase = 4 |
| | | //this.checkMapServerPhase(); |
| | | // if (this.opType == "extend") { |
| | | // this.opSceneType = "" |
| | | // const eventChannel = this.getOpenerEventChannel(); |
| | |
| | | filedata: mapData |
| | | } |
| | | }) |
| | | |
| | | listCtrData.push({ |
| | | method: "point_trajectory", |
| | | param: data.base_map.trajectoryPoints || |
| | | [] //[ [[2,2],[6,2],[10,2],[14,2],[18,2],[2,6],[2,10],[2,14],[2,18],] |
| | | }) |
| | | |
| | | } |
| | | |
| | |
| | | method: "point_cloud", |
| | | param: data.point_cloud |
| | | }) |
| | | |
| | | |
| | | if (data.robot_pose) { |
| | | listCtrData.push({ |
| | | method: "agv_laser", |
| | |
| | | }) |
| | | } |
| | | } |
| | | |
| | | } |
| | | // console.log("ctxDataStr",listCtrData.length) |
| | | this.ctxDataStr = JSON.stringify(listCtrData) |