提交 a65eef25 作者: 翁进城

fix: 起飞前判断航线是否上传成功

上级 d6ba18b8
...@@ -173,6 +173,14 @@ function initUavRealTimeData() { ...@@ -173,6 +173,14 @@ function initUavRealTimeData() {
down45Link 4/5G下行速率,单位字节/秒 Long down45Link 4/5G下行速率,单位字节/秒 Long
} */ } */
flightMode: "UNKNOWN", flightMode: "UNKNOWN",
uploadAirline: { //上传的航线
finishedAction: '', //航点任务完成后,飞机将采取的行动
headingMode: '', //飞机在航点之间移动时的航向模式
isExitMissionOnRCSignalLostEnabled: Boolean, //飞机在航点之间移动时的航向模式
maxFlightSpeed: 0, //航线飞行最大速度,px4无人机默认最大12m
autoFlightSpeed: 0, //航线飞行速度默认5m
waypointList: null
},
}; };
} }
...@@ -197,6 +205,7 @@ const state = { ...@@ -197,6 +205,7 @@ const state = {
showPlayer: false, //显示播放器 showPlayer: false, //显示播放器
showPanel: false, //显示数据面板 showPanel: false, //显示数据面板
isQingLiu: null, // 当前视频播放的是否为清流 isQingLiu: null, // 当前视频播放的是否为清流
waitAirlineUpload: false, //是否正在等待航线上传
}; };
const mutations = { const mutations = {
...@@ -231,7 +240,10 @@ const actions = { ...@@ -231,7 +240,10 @@ const actions = {
commit("setState", { key: "mountList", value: [] }); commit("setState", { key: "mountList", value: [] });
commit("setState", { key: "selectMount", value: null }); commit("setState", { key: "selectMount", value: null });
commit("setState", { key: "showVideo", value: false }); commit("setState", { key: "showVideo", value: false });
commit("setState", { key: "uavRealTimeData", value: initUavRealTimeData() }); commit("setState", {
key: "uavRealTimeData",
value: initUavRealTimeData(),
});
positions = []; positions = [];
}, },
...@@ -298,6 +310,7 @@ const actions = { ...@@ -298,6 +310,7 @@ const actions = {
const type275 = data[275]?.data; // 健康管理 const type275 = data[275]?.data; // 健康管理
const type270 = data[270]?.data; // 飞控应答消息 const type270 = data[270]?.data; // 飞控应答消息
const type260 = data[260]?.data; // 无人机提示信息 const type260 = data[260]?.data; // 无人机提示信息
const type261 = data[261]?.data; // 航线上传完成信息
let msgList = state.uavRealTimeData.msgList || []; let msgList = state.uavRealTimeData.msgList || [];
...@@ -308,10 +321,10 @@ const actions = { ...@@ -308,10 +321,10 @@ const actions = {
); );
if (!findMsg) { if (!findMsg) {
msgList.push({ msgList.push({
grade: 'AUTO', grade: "AUTO",
text: type270.text, text: type270.text,
time: moment(type270.timestamp).format("YYYY-MM-DD HH:mm:ss"), time: moment(type270.timestamp).format("YYYY-MM-DD HH:mm:ss"),
timestamp: type270.timestamp timestamp: type270.timestamp,
}); });
} }
} }
...@@ -322,10 +335,23 @@ const actions = { ...@@ -322,10 +335,23 @@ const actions = {
); );
if (!findMsg) { if (!findMsg) {
msgList.push({ msgList.push({
grade: type260.grade <= 2 ? "[危险]" : type260.grade == 3 ? "[错误]" : type260.grade ==4 ? "[警告]" : type260.grade == 5 ? "[通知]" : type260.grade == 6 ? "[正常]" : type260.grade == 7 ? "[调试]" : "AUTO", grade:
type260.grade <= 2
? "[危险]"
: type260.grade == 3
? "[错误]"
: type260.grade == 4
? "[警告]"
: type260.grade == 5
? "[通知]"
: type260.grade == 6
? "[正常]"
: type260.grade == 7
? "[调试]"
: "AUTO",
text: type260.msg, text: type260.msg,
time: moment(type260.timestamp).format("YYYY-MM-DD HH:mm:ss"), time: moment(type260.timestamp).format("YYYY-MM-DD HH:mm:ss"),
timestamp: type260.timestamp timestamp: type260.timestamp,
}); });
} }
} }
...@@ -363,6 +389,7 @@ const actions = { ...@@ -363,6 +389,7 @@ const actions = {
batteryList, batteryList,
msg: type270, msg: type270,
msgList, msgList,
uploadAirline: type261,
}, },
}); });
...@@ -638,7 +665,7 @@ const actions = { ...@@ -638,7 +665,7 @@ const actions = {
* 一键起飞 * 一键起飞
* @param {function} data.callback //完成回调 * @param {function} data.callback //完成回调
*/ */
async takeOff({ state }, data) { async takeOff({ state, commit }, data) {
console.log(state.airlineData, data); console.log(state.airlineData, data);
if (state.uav.network == 2) { if (state.uav.network == 2) {
try { try {
...@@ -682,24 +709,49 @@ const actions = { ...@@ -682,24 +709,49 @@ const actions = {
callback() {}, callback() {},
}); });
// 更改任务状态
// 起飞指令 // 起飞指令
setTimeout(() => { commit("setState", {
window.$mmc.$store.dispatch("MMCMQTT/publish", { key: "waitAirlineUpload",
topic: "PX4/OBTAIN/" + state.uav.deviceId, value: true,
data: { });
type: window.$mmc.$store.state.MMCMQTT.orders.航线一键起飞, let time = setInterval(() => {
if (state.uavRealTimeData.uploadAirline) {
clearInterval(time);
window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: "PX4/OBTAIN/" + state.uav.deviceId,
data: { data: {
taskId: state.airlineData.id, type: window.$mmc.$store.state.MMCMQTT.orders.航线一键起飞,
seq: 0, data: {
taskId: state.airlineData.id,
seq: 0,
},
}, },
}, callback() {
callback() { data?.callback && data.callback(true, flightSortieId.data);
data?.callback && data.callback(true, flightSortieId.data); },
}, });
}); // 清空261数据
}, 6000); let dataSet = window.$mmc.$store.state.MMCMQTT.dataSet;
dataSet[state.uav.deviceId][261] = null;
window.$mmc.$store.commit('MMCMQTT/setSate', {
key: 'dataSet',
value: dataSet
})
commit('setState', {
key: 'uavRealTimeData',
value: {
...state.uavRealTimeData,
uploadAirline: null
}
})
}
}, 1000);
// 做个保险, 要是因为各种原因导致没飞起, 超过一分钟删除循环定时器
setTimeout(() => {
clearInterval(time);
}, 60000)
} catch (e) { } catch (e) {
console.log("一键起飞失败", e); console.log("一键起飞失败", e);
data?.callback && data.callback(false); data?.callback && data.callback(false);
...@@ -1180,7 +1232,7 @@ const actions = { ...@@ -1180,7 +1232,7 @@ const actions = {
data: { data: {
// taskID: data.taskID, // taskID: data.taskID,
videoID: 1, videoID: 1,
/* name: data.name, /* name: data.name,
dbID: data.dbID, */ dbID: data.dbID, */
}, },
}, },
...@@ -1272,17 +1324,17 @@ const actions = { ...@@ -1272,17 +1324,17 @@ const actions = {
}, },
// 键盘控制 // 键盘控制
keyControl({ state }, data) { keyControl({ state }, data) {
console.log(data, '键盘控制'); console.log(data, "键盘控制");
if (state.uav.network == 2) { if (state.uav.network == 2) {
window.$mmc.$store.dispatch('MMCMQTT/publish', { window.$mmc.$store.dispatch("MMCMQTT/publish", {
topic: 'PX4/OBTAIN/' + state.uav.deviceId, topic: "PX4/OBTAIN/" + state.uav.deviceId,
data: { data: {
type: 538, type: 538,
data: data data: data,
}, },
callback() { callback() {
data.callback && data.callback(true); data.callback && data.callback(true);
} },
}); });
} }
}, },
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论