提交 4e1de49a 作者: 翁进城

fix: 修正机库指令

上级 a099b5e9
......@@ -34,38 +34,6 @@ export default {
userInfo: null,
useSTLAirway: true, // 使用标准航线
uavTaskList: [
{
name: "任务1",
id: 1,
children: [
{
name: "任务2",
id: 2,
// children: [],
airway: {
name: "航线名称2",
id: 2,
},
},
],
airway: {
name: "航线名称1",
id: 1,
content:
'{"filename":"肇庆航线20240318","line":{"baseSpeed":3},"content":[{"uuid":"1nmI-Fo18IagbcVJsia7Q","latitude":23.178153411812204,"longitude":112.57807281336807,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"9pTbBPlF8iIwbUNqusyHK","latitude":23.17783116525969,"longitude":112.57797543441967,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"s91IhN22wuaeyG-UQs0XR","latitude":23.17786413506686,"longitude":112.57824336604547,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"xS_JIl3wxQrhMPdpcjcSn","latitude":23.17820934975604,"longitude":112.5781357731637,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]}],"baseSpeed":3,"gimbalYaw":0,"gimbalPitch":0,"alt":100}',
},
},
{
name: "任务2",
id: 2,
children: [],
airway: {
name: "航线名称2",
id: 2,
content:
'{"filename":"肇庆航线20240318","line":{"baseSpeed":3},"content":[{"uuid":"1nmI-Fo18IagbcVJsia7Q","latitude":23.178153411812204,"longitude":112.57807281336807,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"9pTbBPlF8iIwbUNqusyHK","latitude":23.17783116525969,"longitude":112.57797543441967,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"s91IhN22wuaeyG-UQs0XR","latitude":23.17786413506686,"longitude":112.57824336604547,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"xS_JIl3wxQrhMPdpcjcSn","latitude":23.17820934975604,"longitude":112.5781357731637,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]}],"baseSpeed":3,"gimbalYaw":0,"gimbalPitch":0,"alt":100}',
},
},
],
hangarTaskList: {
// 常态
......@@ -107,26 +75,6 @@ export default {
],
},
airwayList: [
{
name: "航线名称1",
id: 1,
organizationName: "所属单位1",
status: 1, //空域状态 1: 可用 2: 待申请 3: 待审批 4: 通过 5: 驳回
isSafe: 1, //空域状态 1: 安全 2: 待确定
labelName: "航线标签1",
content:
'{"filename":"肇庆航线20240318","line":{"baseSpeed":3},"content":[{"uuid":"1nmI-Fo18IagbcVJsia7Q","latitude":23.178153411812204,"longitude":112.57807281336807,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"9pTbBPlF8iIwbUNqusyHK","latitude":23.17783116525969,"longitude":112.57797543441967,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"s91IhN22wuaeyG-UQs0XR","latitude":23.17786413506686,"longitude":112.57824336604547,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"xS_JIl3wxQrhMPdpcjcSn","latitude":23.17820934975604,"longitude":112.5781357731637,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]}],"baseSpeed":3,"gimbalYaw":0,"gimbalPitch":0,"alt":100}',
},
{
name: "航线名称2",
id: 2,
organizationName: "所属单位2",
status: 2, //空域状态 1: 可用 2: 待申请 3: 待审批 4: 通过 5: 驳回
isSafe: 2, //空域状态 1: 安全 2: 待确定
labelName: "航线标签2",
content:
'{"filename":"肇庆航线20240318","line":{"baseSpeed":3},"content":[{"uuid":"1nmI-Fo18IagbcVJsia7Q","latitude":23.178153411812204,"longitude":112.57807281336807,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"9pTbBPlF8iIwbUNqusyHK","latitude":23.17783116525969,"longitude":112.57797543441967,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"s91IhN22wuaeyG-UQs0XR","latitude":23.17786413506686,"longitude":112.57824336604547,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]},{"uuid":"xS_JIl3wxQrhMPdpcjcSn","latitude":23.17820934975604,"longitude":112.5781357731637,"alt":100,"yawAngle":0,"pitchAngle":0,"speed":3,"actions":[]}],"baseSpeed":3,"gimbalYaw":0,"gimbalPitch":0,"alt":100}',
},
],
hangarTaskAddCB: null, //机库创建任务回调
uavTaskAddCB: null, //机库创建任务回调
......
......@@ -66,6 +66,7 @@ export default {
"hangar",
"taskList",
]),
...mapState("MMCFlightControlCenter/uav", ["uav"]),
/**
* 是否选择任务
*/
......@@ -188,11 +189,12 @@ export default {
});
// 当前机库状态是否空闲
if ([0, 8].includes(this.hangarRealTimeData.processStatus)) {
this.$store.commit("MMCFlightControlCenter/uav/setState", {
this.$store.commit("MMCFlightControlCenter/hangar/setState", {
key: "airlineData",
value: this.selectedAirway,
});
this.$store.dispatch("MMCFlightControlCenter/uav/takeOff", {
this.$store.dispatch("MMCFlightControlCenter/hangar/takeOff", {
uav: this.uav,
callback: (status) => {
if (status) {
this.$message.success("一键任务指令发送成功");
......
<template>
<ControlRight ref="controlRight" isHangar @switchCallback="showHangar = false; showMonitor = false;">
<ControlRight
ref="controlRight"
isHangar
@switchCallback="showHangar = false; showMonitor = false;"
>
<div
slot="hangar"
class="control-item"
......@@ -34,8 +38,21 @@
</div>
</div>
</div>
<Logger :uavMsg="uavRealTimeData.msg" :hangarMsgList="hangarRealTimeData.msgList" :hangarData="hangarRealTimeData" class="logger" @exit="showLogger = false" @clearMsg="onClearMsg" v-if="showLogger"></Logger>
<HangarMonitor :uavMsg="uavRealTimeData.msg" :weatherStation="hangarRealTimeData.weatherStation" :hangarData="hangarRealTimeData" v-if="showMonitor"></HangarMonitor>
<Logger
:uavMsg="uavRealTimeData.msg"
:hangarMsgList="hangarRealTimeData.msgList"
:hangarData="hangarRealTimeData"
class="logger"
@exit="showLogger = false"
@clearMsg="onClearMsg"
v-if="showLogger"
></Logger>
<HangarMonitor
:uavMsg="uavRealTimeData.msg"
:weatherStation="hangarRealTimeData.weatherStation"
:hangarData="hangarRealTimeData"
v-if="showMonitor"
></HangarMonitor>
</div>
</ControlRight>
</template>
......@@ -44,15 +61,15 @@
import ControlRight from "../../../../../uavApplications/components/controlPanel/components/controlRight";
import { mapActions, mapState } from "vuex";
import svgFXJJ from "./assets/images/fxjj.svg";
import Logger from './components/logger';
import HangarMonitor from './components/hangarMonitor';
import Logger from "./components/logger";
import HangarMonitor from "./components/hangarMonitor";
export default {
name: "HangarControlRight",
components: {
ControlRight,
Logger,
HangarMonitor
HangarMonitor,
},
data() {
return {
......@@ -116,8 +133,8 @@ export default {
};
},
computed: {
...mapState("MMCFlightControlCenter/uav", ['uavRealTimeData']),
...mapState('MMCFlightControlCenter/hangar', ['hangarRealTimeData'])
...mapState("MMCFlightControlCenter/uav", ["uavRealTimeData"]),
...mapState("MMCFlightControlCenter/hangar", ["hangarRealTimeData"]),
},
methods: {
...mapActions("MMCFlightControlCenter/hangar", [
......@@ -157,33 +174,37 @@ export default {
showClose: false,
});
this[key]();
this[key]({
callback: () => {
this.$message.success(label + "指令发送成功");
},
});
}
} catch (e) {
console.log(e);
}
},
switchLogger(){
switchLogger() {
this.showLogger = !this.showLogger;
},
switchMonitor(){
switchMonitor() {
this.showMonitor = !this.showMonitor;
if(this.showMonitor){
if (this.showMonitor) {
this.showHangar = false;
}
},
/**
* 清理日志
*/
onClearMsg(){
this.$store.commit('MMCFlightControlCenter/hangar/setState', {
key: 'hangarRealTimeData',
onClearMsg() {
this.$store.commit("MMCFlightControlCenter/hangar/setState", {
key: "hangarRealTimeData",
value: {
...this.hangarRealTimeData,
msgList: []
}
})
}
msgList: [],
},
});
},
},
};
</script>
......@@ -292,6 +313,5 @@ export default {
.logger {
position: absolute;
left: -1200px;
}
</style>
\ No newline at end of file
<template>
<div>
<MMCDataTransferPanel
class="data-panel"
:device="uav"
:uav-data="uavRealTimeData"
></MMCDataTransferPanel>
<MMCDataTransferPanel class="data-panel" :device="uav" :uav-data="uavRealTimeData"></MMCDataTransferPanel>
<!-- 一键任务 返航 安全降落 手动 -->
<ControlBottom></ControlBottom>
<!-- 健康管理-挂载-警灯-无人机 -->
......@@ -17,16 +13,16 @@
<script>
import { mapState } from "vuex";
import Moment from "moment";
import ControlBottom from './components/controlBottom';
import ControlRight from './components/controlRight';
import ControlLeft from './components/controlLeft';
import ControlBottom from "./components/controlBottom";
import ControlRight from "./components/controlRight";
import ControlLeft from "./components/controlLeft";
export default {
name: 'ControlPanel',
name: "ControlPanel",
components: {
ControlBottom,
ControlRight,
ControlLeft
ControlLeft,
},
data() {
return {
......@@ -38,7 +34,6 @@ export default {
voltage: 0,
id: "",
},
};
},
computed: {
......
......@@ -156,7 +156,6 @@ export default {
this.timer = setInterval(() => {
this.timeStr = newDate();
}, 1000);
this.initws();
window.onresize = (e) => {
const clientheight =
document.documentElement.clientHeight || document.body.clientHeight;
......@@ -224,71 +223,6 @@ export default {
window.kbt_player_resize("qingliu_" + this.name);
}
},
initws() {
this.ws = new WebSocket(process.env.VUE_APP_WS_URL_ALARM);
let { appid, username } = JSON.parse(
localStorage.getItem("user_info")
).data;
let token = JSON.parse(localStorage.getItem("user_info")).data[
"mmc-identity"
];
this.ws.onopen = () => {
this.ws.send(
JSON.stringify({
type: 100,
systemCode: "mmc",
state: 1,
username,
token,
appId: appid,
})
);
};
this.ws.onmessage = (e) => {
if (e.data != "CONNECT_KEEP") {
let metadata = JSON.parse(e.data);
if (metadata.msgnum == 4700 && metadata.type == 500) {
// console.log(this.device,"decive");
if (this.device.customName) {
if (
this.device.deviceList[0].hardId ==
metadata.data.hardId
) {
this.wsData = metadata.data;
if (this.wsData.anotherName) {
this.flag = true;
}
}
} else {
if (this.device.hardId == metadata.data.hardId) {
this.wsData = metadata.data;
if (this.wsData.anotherName != "盐城市") {
if (
this.wsData.anotherName &&
this.wsData.anotherName.indexOf("-") > -1
) {
let arr = this.wsData.anotherName.split("-");
this.wsData.ername = arr[0];
this.wsData.sanname = arr[1];
} else {
this.wsData.ername = this.wsData.anotherName;
}
// if(this.wsData.ername.includes("县")){
// this.wsData.ername = this.wsData.ername.substr(0,3)
// }else{
// this.wsData.ername = this.wsData.ername.substr(0,2) + "区"
// }
}
if (this.wsData.anotherName) {
this.flag = true;
}
}
}
}
}
};
},
screenShot() {
this.getFontSize();
......
......@@ -12,14 +12,14 @@
<div v-show="!isStatus" class="close" @click="close()">关闭</div>
</div>
<videoModelChange
<!-- <videoModelChange
:data="data"
v-if="streamSelect == 'QINGLIU' && !isStatus"
class="cp pa cf modelStyle"
@click="VideoModelChange"
:uavRealTimeData="uavRealTimeData"
:NXdata="NXdata"
></videoModelChange>
></videoModelChange> -->
<components
:is="playerCom"
......
......@@ -48,6 +48,7 @@ const state = {
hangar: null, // 选择中的机库信息
showPanel: false, //显示数据面板
hangarRealTimeData, // 实时数据
airlineData: null, //航线数据
};
const mutations = {
......@@ -146,7 +147,7 @@ const actions = {
*/
out({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId,
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 2059,
},
......@@ -162,7 +163,7 @@ const actions = {
*/
in({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId,
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 2073,
},
......@@ -178,7 +179,7 @@ const actions = {
*/
chargeStart({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId,
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 2060,
},
......@@ -194,7 +195,7 @@ const actions = {
*/
chargeEnd({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId,
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 2071,
},
......@@ -210,7 +211,7 @@ const actions = {
*/
warmUp({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId,
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 2072,
},
......@@ -226,7 +227,7 @@ const actions = {
*/
dormancy({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId,
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 2061,
},
......@@ -242,7 +243,7 @@ const actions = {
*/
processExit({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId,
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 100001,
},
......@@ -251,6 +252,46 @@ const actions = {
},
});
},
/**
* 一键起飞
* @param {function} data.callback //完成回调
* @param {Object} data.uav // 无人机对象
*/
async takeOff({ state }, data) {
console.log(state.airlineData, data);
try {
// 生成架次號
const getFlightSortic = await Control_API.getFlightSortic({
taskId: state.airlineData.id,
deviceHardId: data.uav.hardId,
});
// 一键任务指令
const waypointList = state.airlineData?.content;
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: {
cmdControlType: 100004,
uavDeviceId: data.uav.hardId,
wayLineObj: {
taskId: state.airlineData.id,
flightSortiesID: getFlightSortic.data,
waypointList: waypointList,
autoFlightSpeed: state.airlineData.baseSpeed,
finishedAction: "GO_HOME",
headingMode: "AUTO",
isExitMissionOnRCSignalLostEnabled: true,
maxFlightSpeed: 12,
},
},
callback() {
data?.callback && data.callback(true, getFlightSortic.data);
},
});
} catch (e) {
console.log("一键起飞失败", e);
data?.callback && data.callback(false);
}
},
};
export default {
......
......@@ -616,7 +616,7 @@ const actions = {
taskId: state.airlineData.id,
flightSortiesID: getFlightSortic.data,
waypointList: waypointList,
autoFlightSpeed: 6,
autoFlightSpeed: state.airlineData.baseSpeed,
finishedAction: "GO_HOME",
headingMode: "AUTO",
isExitMissionOnRCSignalLostEnabled: true,
......@@ -653,7 +653,7 @@ const actions = {
},
},
callback() {
data?.callback && data.callback(true);
data?.callback && data.callback(true, getFlightSortic.data);
},
});
}, 3000);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论