提交 09ae253f 作者: 温凯

Merge branch 'v4_master' into v4

...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="control-bottom"> <div class="control-bottom">
<div class="control-bottom-item" @click="onStartTask"> <div class="control-bottom-item" @click="onStartTask">
<img src="./assets/images/start.svg" /> <img src="./assets/images/start.svg" />
<span class="dib">一键任务</span> <span class="dib">一键任务 </span>
</div> </div>
<div class="control-bottom-item" @click="onReturnFlight"> <div class="control-bottom-item" @click="onReturnFlight">
<img src="./assets/images/return.svg" /> <img src="./assets/images/return.svg" />
......
...@@ -72,7 +72,7 @@ export default { ...@@ -72,7 +72,7 @@ export default {
"useSTLAirway", "useSTLAirway",
"useTask", "useTask",
]), ]),
...mapState("MMCFlightControlCenter/uav", ["uav","uavRealTimeData"]), ...mapState("MMCFlightControlCenter/uav", ["uav", "uavRealTimeData"]),
// 选择的任务 // 选择的任务
selectedTask() { selectedTask() {
let find = this.taskList.find((item) => { let find = this.taskList.find((item) => {
...@@ -176,7 +176,7 @@ export default { ...@@ -176,7 +176,7 @@ export default {
this.bus.$on("refreshAirway", this.getAirwayList); this.bus.$on("refreshAirway", this.getAirwayList);
await this.getTaskList(); await this.getTaskList();
await this.getAirwayList(); await this.getAirwayList();
console.log(this.uavRealTimeData,'this.uavRealTimeData'); console.log(this.uavRealTimeData, "this.uavRealTimeData");
// 获取正在飞行的航线 // 获取正在飞行的航线
if (this.uavRealTimeData.isFlying) { if (this.uavRealTimeData.isFlying) {
this.getTaskInfoRecord(); this.getTaskInfoRecord();
...@@ -278,10 +278,15 @@ export default { ...@@ -278,10 +278,15 @@ export default {
this.$message.warning("请选择航线"); this.$message.warning("请选择航线");
return; return;
} }
let diversionPoint = this.uav.diversionPoint;
if (!diversionPoint) {
return this.$message.warning("设备暂无备降点无法进行一键任务,请前往后台管理设置备降点!");
}
let data = this.taskList.filter((item) => item.id == this.selectedTaskId); let data = this.taskList.filter((item) => item.id == this.selectedTaskId);
if (data && data[0].status == "执行中") { if (data && data[0].status == "执行中") {
return this.$message.warning("当前任务执行中"); return this.$message.warning("当前任务执行中");
} }
try { try {
await this.$confirm("请确认是否进行一键任务操作?", "安全确认", { await this.$confirm("请确认是否进行一键任务操作?", "安全确认", {
cancelButtonText: "取消", cancelButtonText: "取消",
...@@ -289,6 +294,7 @@ export default { ...@@ -289,6 +294,7 @@ export default {
customClass: "uav_controlPane", customClass: "uav_controlPane",
showClose: false, showClose: false,
}); });
//
this.$store.commit("MMCFlightControlCenter/uav/setState", { this.$store.commit("MMCFlightControlCenter/uav/setState", {
key: "airlineData", key: "airlineData",
value: this.selectedAirway, value: this.selectedAirway,
......
...@@ -6,7 +6,7 @@ let positions = []; // 飞机走过的点, 会一直累计, 每n秒减半一次, ...@@ -6,7 +6,7 @@ let positions = []; // 飞机走过的点, 会一直累计, 每n秒减半一次,
setInterval(() => { setInterval(() => {
if (positions.length > 1000) { if (positions.length > 1000) {
positions = positions.filter((x, index) => index % 2 === 0); positions = positions.filter((x, index) => index % 2 === 0);
console.log('飞行轨迹', positions); console.log("飞行轨迹", positions);
} }
}, 60000); }, 60000);
if (!window.$mmc_stl) { if (!window.$mmc_stl) {
...@@ -14,7 +14,7 @@ if (!window.$mmc_stl) { ...@@ -14,7 +14,7 @@ if (!window.$mmc_stl) {
} }
window.$mmc_stl.positions = () => { window.$mmc_stl.positions = () => {
console.log(positions); console.log(positions);
} };
const defaultPos = { const defaultPos = {
latitude: 0, // 纬度 latitude: 0, // 纬度
longitude: 0, // 经度 longitude: 0, // 经度
...@@ -432,7 +432,7 @@ const actions = { ...@@ -432,7 +432,7 @@ const actions = {
if (item.mountId === type259.mountId) { if (item.mountId === type259.mountId) {
return { return {
...item, ...item,
...type259 ...type259,
}; };
} }
return item; return item;
...@@ -507,7 +507,11 @@ const actions = { ...@@ -507,7 +507,11 @@ const actions = {
} else { } else {
// const posData = UAVDataParser(state.uavRealTimeData); // 这种写法在执行rollup混淆压缩后, posData对象会变成elementUI的对象,原因未知 // const posData = UAVDataParser(state.uavRealTimeData); // 这种写法在执行rollup混淆压缩后, posData对象会变成elementUI的对象,原因未知
// 更新轨迹 // 更新轨迹
let flag = positions.some(val => val.x == UAVDataParser(state.uavRealTimeData).position.x && val.y == UAVDataParser(state.uavRealTimeData).position.y) let flag = positions.some(
(val) =>
val.x == UAVDataParser(state.uavRealTimeData).position.x &&
val.y == UAVDataParser(state.uavRealTimeData).position.y
);
if (!flag) { if (!flag) {
positions.push(UAVDataParser(state.uavRealTimeData).position); positions.push(UAVDataParser(state.uavRealTimeData).position);
} }
...@@ -700,7 +704,6 @@ const actions = { ...@@ -700,7 +704,6 @@ const actions = {
* @param {object} data.taskInfoId //任务id * @param {object} data.taskInfoId //任务id
*/ */
async takeOff({ state, commit }, data) { async takeOff({ state, commit }, data) {
console.log(state.airlineData, data);
if (state.uav.network == 2) { if (state.uav.network == 2) {
try { try {
let flightSortieId; let flightSortieId;
...@@ -709,7 +712,7 @@ const actions = { ...@@ -709,7 +712,7 @@ const actions = {
taskInfoId: data.taskInfoId || undefined, taskInfoId: data.taskInfoId || undefined,
deviceId: state.uav.deviceId, deviceId: state.uav.deviceId,
reouteId: state.airlineData.id, reouteId: state.airlineData.id,
}) });
} else { } else {
// 生成架次号 // 生成架次号
flightSortieId = await TaskInfo.flightSortieId({ flightSortieId = await TaskInfo.flightSortieId({
...@@ -721,12 +724,12 @@ const actions = { ...@@ -721,12 +724,12 @@ const actions = {
/* const flightSortieId = { /* const flightSortieId = {
data: `tmj-v4-${Date.now()}` data: `tmj-v4-${Date.now()}`
} */ } */
// 上传航线指令 // 一键任务
const waypointList = state.airlineData?.content; const waypointList = state.airlineData?.content;
window.$mmc_stl.$store.dispatch("MMCMQTT/publish", { window.$mmc_stl.$store.dispatch("MMCMQTT/publish", {
topic: "PX4/OBTAIN/" + state.uav.deviceId, topic: "PX4/OBTAIN/" + state.uav.deviceId,
data: { data: {
type: window.$mmc_stl.$store.state.MMCMQTT.orders.航线上传, type: window.$mmc_stl.$store.state.MMCMQTT.orders.一键任务,
data: { data: {
taskId: state.airlineData.id, taskId: state.airlineData.id,
flightSortiesID: flightSortieId.data, flightSortiesID: flightSortieId.data,
...@@ -736,67 +739,74 @@ const actions = { ...@@ -736,67 +739,74 @@ const actions = {
headingMode: "AUTO", headingMode: "AUTO",
isExitMissionOnRCSignalLostEnabled: true, isExitMissionOnRCSignalLostEnabled: true,
maxFlightSpeed: 12, maxFlightSpeed: 12,
rallyList: [
{
longitude: diversionPointArr[0],
altitude: diversionPointArr[2],
latitude: diversionPointArr[1],
}, },
}, ],
callback() { },
});
// 告诉飞控开始任务,并且把架次号和 任务id传过去
window.$mmc_stl.$store.dispatch("MMCMQTT/publish", {
topic: "PX4/OBTAIN/" + state.uav.deviceId,
data: {
type: window.$mmc_stl.$store.state.MMCMQTT.orders.绑定任务id,
data: {
taskId: state.airlineData.id,
flightSortiesID: flightSortieId.data,
}, },
}, },
callback() { }, callback() {},
}); });
// // 告诉飞控开始任务,并且把架次号和 任务id传过去
// window.$mmc_stl.$store.dispatch("MMCMQTT/publish", {
// topic: "PX4/OBTAIN/" + state.uav.deviceId,
// data: {
// type: window.$mmc_stl.$store.state.MMCMQTT.orders.绑定任务id,
// data: {
// taskId: state.airlineData.id,
// flightSortiesID: flightSortieId.data,
// },
// },
// callback() {},
// });
// 起飞指令 // 起飞指令
commit("setState", { // commit("setState", {
key: "waitAirlineUpload", // key: "waitAirlineUpload",
value: true, // value: true,
}); // });
let time = setInterval(() => { // let time = setInterval(() => {
if (state.uavRealTimeData.uploadAirline) { // if (state.uavRealTimeData.uploadAirline) {
clearInterval(time); // clearInterval(time);
window.$mmc_stl.$store.dispatch("MMCMQTT/publish", { // window.$mmc_stl.$store.dispatch("MMCMQTT/publish", {
topic: "PX4/OBTAIN/" + state.uav.deviceId, // topic: "PX4/OBTAIN/" + state.uav.deviceId,
data: { // data: {
type: window.$mmc_stl.$store.state.MMCMQTT.orders.航线一键起飞, // type: window.$mmc_stl.$store.state.MMCMQTT.orders.航线一键起飞,
data: { // data: {
taskId: state.airlineData.id, // taskId: state.airlineData.id,
seq: 0, // seq: 0,
}, // },
}, // },
callback() { // callback() {
data?.callback && data.callback(true, flightSortieId.data); // data?.callback && data.callback(true, flightSortieId.data);
}, // },
}); // });
// 清空261数据 // // 清空261数据
let dataSet = window.$mmc_stl.$store.state.MMCMQTT.dataSet; // let dataSet = window.$mmc_stl.$store.state.MMCMQTT.dataSet;
dataSet[state.uav.deviceId][261] = null; // dataSet[state.uav.deviceId][261] = null;
window.$mmc_stl.$store.commit("MMCMQTT/setSate", { // window.$mmc_stl.$store.commit("MMCMQTT/setSate", {
key: "dataSet", // key: "dataSet",
value: dataSet, // value: dataSet,
}); // });
commit("setState", { // commit("setState", {
key: "uavRealTimeData", // key: "uavRealTimeData",
value: { // value: {
...state.uavRealTimeData, // ...state.uavRealTimeData,
uploadAirline: null, // uploadAirline: null,
}, // },
}); // });
} // }
}, 1000); // }, 1000);
// 做个保险, 要是因为各种原因导致没飞起, 超过一分钟删除循环定时器 // // 做个保险, 要是因为各种原因导致没飞起, 超过一分钟删除循环定时器
setTimeout(() => { // setTimeout(() => {
clearInterval(time); // clearInterval(time);
}, 60000); // }, 60000);
} catch (e) { } catch (e) {
console.log("一键起飞失败", e); console.log("一键起飞失败", e);
data?.callback && data.callback(false); data?.callback && data.callback(false);
...@@ -1317,7 +1327,8 @@ const actions = { ...@@ -1317,7 +1327,8 @@ const actions = {
window.$mmc_stl.$store.dispatch("MMCMQTT/publish", { window.$mmc_stl.$store.dispatch("MMCMQTT/publish", {
topic: "PX4/OBTAIN/" + state.uav.deviceId, topic: "PX4/OBTAIN/" + state.uav.deviceId,
data: { data: {
type: window.$mmc_stl.$store.state.MMCMQTT.orders.云台控制指令can包透传, type: window.$mmc_stl.$store.state.MMCMQTT.orders
.云台控制指令can包透传,
data: { data: {
mountId: data.mountId, mountId: data.mountId,
payload: data.buffer, payload: data.buffer,
...@@ -1376,7 +1387,7 @@ const actions = { ...@@ -1376,7 +1387,7 @@ const actions = {
type: window.$mmc_stl.$store.state.MMCMQTT.orders.链路切换, type: window.$mmc_stl.$store.state.MMCMQTT.orders.链路切换,
data, data,
}, },
callback() { }, callback() {},
}); });
}, },
// 键盘控制 // 键盘控制
......
...@@ -8,6 +8,7 @@ export default { ...@@ -8,6 +8,7 @@ export default {
摇杆控制: 519, 摇杆控制: 519,
航线下载: 520, 航线下载: 520,
航线上传: 521, 航线上传: 521,
一键任务: 529,
航线一键起飞: 522, 航线一键起飞: 522,
暂停航线任务: 523, 暂停航线任务: 523,
继续航线任务: 524, 继续航线任务: 524,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论