提交 4e1de49a 作者: 翁进城

fix: 修正机库指令

上级 a099b5e9
...@@ -34,38 +34,6 @@ export default { ...@@ -34,38 +34,6 @@ export default {
userInfo: null, userInfo: null,
useSTLAirway: true, // 使用标准航线 useSTLAirway: true, // 使用标准航线
uavTaskList: [ 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: { hangarTaskList: {
// 常态 // 常态
...@@ -107,26 +75,6 @@ export default { ...@@ -107,26 +75,6 @@ export default {
], ],
}, },
airwayList: [ 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, //机库创建任务回调 hangarTaskAddCB: null, //机库创建任务回调
uavTaskAddCB: null, //机库创建任务回调 uavTaskAddCB: null, //机库创建任务回调
......
...@@ -66,6 +66,7 @@ export default { ...@@ -66,6 +66,7 @@ export default {
"hangar", "hangar",
"taskList", "taskList",
]), ]),
...mapState("MMCFlightControlCenter/uav", ["uav"]),
/** /**
* 是否选择任务 * 是否选择任务
*/ */
...@@ -188,11 +189,12 @@ export default { ...@@ -188,11 +189,12 @@ export default {
}); });
// 当前机库状态是否空闲 // 当前机库状态是否空闲
if ([0, 8].includes(this.hangarRealTimeData.processStatus)) { if ([0, 8].includes(this.hangarRealTimeData.processStatus)) {
this.$store.commit("MMCFlightControlCenter/uav/setState", { this.$store.commit("MMCFlightControlCenter/hangar/setState", {
key: "airlineData", key: "airlineData",
value: this.selectedAirway, value: this.selectedAirway,
}); });
this.$store.dispatch("MMCFlightControlCenter/uav/takeOff", { this.$store.dispatch("MMCFlightControlCenter/hangar/takeOff", {
uav: this.uav,
callback: (status) => { callback: (status) => {
if (status) { if (status) {
this.$message.success("一键任务指令发送成功"); this.$message.success("一键任务指令发送成功");
......
<template> <template>
<ControlRight ref="controlRight" isHangar @switchCallback="showHangar = false; showMonitor = false;"> <ControlRight
ref="controlRight"
isHangar
@switchCallback="showHangar = false; showMonitor = false;"
>
<div <div
slot="hangar" slot="hangar"
class="control-item" class="control-item"
...@@ -34,8 +38,21 @@ ...@@ -34,8 +38,21 @@
</div> </div>
</div> </div>
</div> </div>
<Logger :uavMsg="uavRealTimeData.msg" :hangarMsgList="hangarRealTimeData.msgList" :hangarData="hangarRealTimeData" class="logger" @exit="showLogger = false" @clearMsg="onClearMsg" v-if="showLogger"></Logger> <Logger
<HangarMonitor :uavMsg="uavRealTimeData.msg" :weatherStation="hangarRealTimeData.weatherStation" :hangarData="hangarRealTimeData" v-if="showMonitor"></HangarMonitor> :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> </div>
</ControlRight> </ControlRight>
</template> </template>
...@@ -44,15 +61,15 @@ ...@@ -44,15 +61,15 @@
import ControlRight from "../../../../../uavApplications/components/controlPanel/components/controlRight"; import ControlRight from "../../../../../uavApplications/components/controlPanel/components/controlRight";
import { mapActions, mapState } from "vuex"; import { mapActions, mapState } from "vuex";
import svgFXJJ from "./assets/images/fxjj.svg"; import svgFXJJ from "./assets/images/fxjj.svg";
import Logger from './components/logger'; import Logger from "./components/logger";
import HangarMonitor from './components/hangarMonitor'; import HangarMonitor from "./components/hangarMonitor";
export default { export default {
name: "HangarControlRight", name: "HangarControlRight",
components: { components: {
ControlRight, ControlRight,
Logger, Logger,
HangarMonitor HangarMonitor,
}, },
data() { data() {
return { return {
...@@ -116,8 +133,8 @@ export default { ...@@ -116,8 +133,8 @@ export default {
}; };
}, },
computed: { computed: {
...mapState("MMCFlightControlCenter/uav", ['uavRealTimeData']), ...mapState("MMCFlightControlCenter/uav", ["uavRealTimeData"]),
...mapState('MMCFlightControlCenter/hangar', ['hangarRealTimeData']) ...mapState("MMCFlightControlCenter/hangar", ["hangarRealTimeData"]),
}, },
methods: { methods: {
...mapActions("MMCFlightControlCenter/hangar", [ ...mapActions("MMCFlightControlCenter/hangar", [
...@@ -157,33 +174,37 @@ export default { ...@@ -157,33 +174,37 @@ export default {
showClose: false, showClose: false,
}); });
this[key](); this[key]({
callback: () => {
this.$message.success(label + "指令发送成功");
},
});
} }
} catch (e) { } catch (e) {
console.log(e); console.log(e);
} }
}, },
switchLogger(){ switchLogger() {
this.showLogger = !this.showLogger; this.showLogger = !this.showLogger;
}, },
switchMonitor(){ switchMonitor() {
this.showMonitor = !this.showMonitor; this.showMonitor = !this.showMonitor;
if(this.showMonitor){ if (this.showMonitor) {
this.showHangar = false; this.showHangar = false;
} }
}, },
/** /**
* 清理日志 * 清理日志
*/ */
onClearMsg(){ onClearMsg() {
this.$store.commit('MMCFlightControlCenter/hangar/setState', { this.$store.commit("MMCFlightControlCenter/hangar/setState", {
key: 'hangarRealTimeData', key: "hangarRealTimeData",
value: { value: {
...this.hangarRealTimeData, ...this.hangarRealTimeData,
msgList: [] msgList: [],
} },
}) });
} },
}, },
}; };
</script> </script>
...@@ -292,6 +313,5 @@ export default { ...@@ -292,6 +313,5 @@ export default {
.logger { .logger {
position: absolute; position: absolute;
left: -1200px; left: -1200px;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<div> <div>
<MMCDataTransferPanel <MMCDataTransferPanel class="data-panel" :device="uav" :uav-data="uavRealTimeData"></MMCDataTransferPanel>
class="data-panel"
:device="uav"
:uav-data="uavRealTimeData"
></MMCDataTransferPanel>
<!-- 一键任务 返航 安全降落 手动 --> <!-- 一键任务 返航 安全降落 手动 -->
<ControlBottom></ControlBottom> <ControlBottom></ControlBottom>
<!-- 健康管理-挂载-警灯-无人机 --> <!-- 健康管理-挂载-警灯-无人机 -->
...@@ -17,16 +13,16 @@ ...@@ -17,16 +13,16 @@
<script> <script>
import { mapState } from "vuex"; import { mapState } from "vuex";
import Moment from "moment"; import Moment from "moment";
import ControlBottom from './components/controlBottom'; import ControlBottom from "./components/controlBottom";
import ControlRight from './components/controlRight'; import ControlRight from "./components/controlRight";
import ControlLeft from './components/controlLeft'; import ControlLeft from "./components/controlLeft";
export default { export default {
name: 'ControlPanel', name: "ControlPanel",
components: { components: {
ControlBottom, ControlBottom,
ControlRight, ControlRight,
ControlLeft ControlLeft,
}, },
data() { data() {
return { return {
...@@ -38,7 +34,6 @@ export default { ...@@ -38,7 +34,6 @@ export default {
voltage: 0, voltage: 0,
id: "", id: "",
}, },
}; };
}, },
computed: { computed: {
......
...@@ -156,7 +156,6 @@ export default { ...@@ -156,7 +156,6 @@ export default {
this.timer = setInterval(() => { this.timer = setInterval(() => {
this.timeStr = newDate(); this.timeStr = newDate();
}, 1000); }, 1000);
this.initws();
window.onresize = (e) => { window.onresize = (e) => {
const clientheight = const clientheight =
document.documentElement.clientHeight || document.body.clientHeight; document.documentElement.clientHeight || document.body.clientHeight;
...@@ -224,71 +223,6 @@ export default { ...@@ -224,71 +223,6 @@ export default {
window.kbt_player_resize("qingliu_" + this.name); 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() { screenShot() {
this.getFontSize(); this.getFontSize();
......
...@@ -12,14 +12,14 @@ ...@@ -12,14 +12,14 @@
<div v-show="!isStatus" class="close" @click="close()">关闭</div> <div v-show="!isStatus" class="close" @click="close()">关闭</div>
</div> </div>
<videoModelChange <!-- <videoModelChange
:data="data" :data="data"
v-if="streamSelect == 'QINGLIU' && !isStatus" v-if="streamSelect == 'QINGLIU' && !isStatus"
class="cp pa cf modelStyle" class="cp pa cf modelStyle"
@click="VideoModelChange" @click="VideoModelChange"
:uavRealTimeData="uavRealTimeData" :uavRealTimeData="uavRealTimeData"
:NXdata="NXdata" :NXdata="NXdata"
></videoModelChange> ></videoModelChange> -->
<components <components
:is="playerCom" :is="playerCom"
......
...@@ -48,6 +48,7 @@ const state = { ...@@ -48,6 +48,7 @@ const state = {
hangar: null, // 选择中的机库信息 hangar: null, // 选择中的机库信息
showPanel: false, //显示数据面板 showPanel: false, //显示数据面板
hangarRealTimeData, // 实时数据 hangarRealTimeData, // 实时数据
airlineData: null, //航线数据
}; };
const mutations = { const mutations = {
...@@ -146,7 +147,7 @@ const actions = { ...@@ -146,7 +147,7 @@ const actions = {
*/ */
out({ state, commit, dispatch }, data) { out({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: { data: {
cmdControlType: 2059, cmdControlType: 2059,
}, },
...@@ -162,7 +163,7 @@ const actions = { ...@@ -162,7 +163,7 @@ const actions = {
*/ */
in({ state, commit, dispatch }, data) { in({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: { data: {
cmdControlType: 2073, cmdControlType: 2073,
}, },
...@@ -178,7 +179,7 @@ const actions = { ...@@ -178,7 +179,7 @@ const actions = {
*/ */
chargeStart({ state, commit, dispatch }, data) { chargeStart({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: { data: {
cmdControlType: 2060, cmdControlType: 2060,
}, },
...@@ -194,7 +195,7 @@ const actions = { ...@@ -194,7 +195,7 @@ const actions = {
*/ */
chargeEnd({ state, commit, dispatch }, data) { chargeEnd({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: { data: {
cmdControlType: 2071, cmdControlType: 2071,
}, },
...@@ -210,7 +211,7 @@ const actions = { ...@@ -210,7 +211,7 @@ const actions = {
*/ */
warmUp({ state, commit, dispatch }, data) { warmUp({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: { data: {
cmdControlType: 2072, cmdControlType: 2072,
}, },
...@@ -226,7 +227,7 @@ const actions = { ...@@ -226,7 +227,7 @@ const actions = {
*/ */
dormancy({ state, commit, dispatch }, data) { dormancy({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: { data: {
cmdControlType: 2061, cmdControlType: 2061,
}, },
...@@ -242,7 +243,7 @@ const actions = { ...@@ -242,7 +243,7 @@ const actions = {
*/ */
processExit({ state, commit, dispatch }, data) { processExit({ state, commit, dispatch }, data) {
window.$mmc.$store.dispatch("MMCMQTT/publish", { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "APRON/RECEIVE/" + state.hangar.hardId, topic: "PROCESS/OBTAIN/" + state.hangar.hardId,
data: { data: {
cmdControlType: 100001, cmdControlType: 100001,
}, },
...@@ -251,6 +252,46 @@ const actions = { ...@@ -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 { export default {
......
...@@ -616,7 +616,7 @@ const actions = { ...@@ -616,7 +616,7 @@ const actions = {
taskId: state.airlineData.id, taskId: state.airlineData.id,
flightSortiesID: getFlightSortic.data, flightSortiesID: getFlightSortic.data,
waypointList: waypointList, waypointList: waypointList,
autoFlightSpeed: 6, autoFlightSpeed: state.airlineData.baseSpeed,
finishedAction: "GO_HOME", finishedAction: "GO_HOME",
headingMode: "AUTO", headingMode: "AUTO",
isExitMissionOnRCSignalLostEnabled: true, isExitMissionOnRCSignalLostEnabled: true,
...@@ -653,7 +653,7 @@ const actions = { ...@@ -653,7 +653,7 @@ const actions = {
}, },
}, },
callback() { callback() {
data?.callback && data.callback(true); data?.callback && data.callback(true, getFlightSortic.data);
}, },
}); });
}, 3000); }, 3000);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论