DRC内容优化

main
刘妍 2 months ago
parent 20a9672a4a
commit 9fa79e3e72

@ -48,7 +48,7 @@
:style="{ bottom: airportLiveVisible ? '300px' : '20px' }"
v-drag
>
<LivePreview :msgData="msgData" />
<LivePreview :msgData="msgData" :uavLive="uavLive" />
</div>
</div>
</template>
@ -104,6 +104,8 @@
const takeOffFormVisible = ref(false);
//
const flyToFormVisible = ref(false);
//
const uavLive = ref(false);
const changeAirportLive = () => {
airportLiveVisible.value = !airportLiveVisible.value;
};
@ -125,6 +127,7 @@
};
const changeTakeOffForm = () => {
takeOffFormVisible.value = false;
uavLive.value = true;
};
const changeFlyToForm = () => {
flyToFormVisible.value = false;

@ -71,6 +71,7 @@
const redisUser = ref({});
const { createMessage } = useMessage();
const emits = defineEmits(['changeFlightControl', 'clickTakeOff', 'clickFlyTo']);
const monitorDRC = ref(false);
//
const flightGrab = ref(false);
//
@ -89,13 +90,7 @@
capacity_percent: 0,
},
});
const data = reactive({
roll: 1024,
pitch: 1024,
throttle: 1024,
yaw: 1024,
gimbal_pitch: 1024,
});
//redis
const changeRedisUser = (val: boolean) => {
const querys = redisUser.value;
@ -107,7 +102,6 @@
// redis
const lockedClient = () => {
getLockedClients().then((res) => {
console.log(res);
if (res.length > 0) {
res.forEach((item, index) => {
if (item.userId != userInfo.id) {
@ -176,14 +170,17 @@
return;
}
seq.value = seq.value + 1;
let data = {
roll: 1024,
pitch: 1024,
throttle: 1024,
yaw: 1024,
gimbal_pitch: 1024,
};
if (value == 'up') {
if (data[type] < 1684) {
data[type] = data[type] + 20;
}
data[type] = 1684;
} else {
if (data[type] > 364) {
data[type] = data[type] - 20;
}
data[type] = 364;
}
const querys = {
seq: seq.value,
@ -193,7 +190,6 @@
tid: buildGUID(),
timestamp: new Date().getTime(),
};
console.log(querys);
drcDownTopicReize(querys);
};
const drcSeq = ref(1);
@ -211,7 +207,7 @@
mqtt_broker: {
address: 'ws://175.27.168.120:6010/mqtt',
// client_id: 'mqtt_client_1581F8HGX254V00A0BUY',
client_id: 'mqtt_client_1581F8HGX254V00A0BUY_seize',
client_id: 'mqtt_client_1581F8HGX254V00A0BUYSeize',
enable_tls: false,
expire_time: 3600,
password: '',
@ -223,12 +219,12 @@
timestamp: new Date().getTime(),
method: 'drc_mode_enter',
};
console.log(querys);
servicesTopic(querys);
drc_eart_beat();
};
let timer;
const drc_eart_beat = () => {
monitorDRC.value = true;
// drc
timer = window.setInterval(() => {
drcSeq.value = drcSeq.value + 1;
@ -242,7 +238,6 @@
},
seq: drcSeq.value,
};
console.log(drcQuerys);
drcDownTopic(drcQuerys);
}, 5000);
// drc
@ -261,7 +256,6 @@
onMounted(() => {
// mqtt
getRedisUser(userInfo.id).then((res) => {
console.log(res);
if (res) {
redisUser.value = res;
}
@ -274,7 +268,6 @@
airportVal.value = rs.data;
}
if (rs.method == 'flight_authority_grab') {
console.log(rs);
if (rs.data.result == 0) {
flightGrab.value = true;
createMessage.success('飞行控制权抢夺成功');
@ -284,7 +277,6 @@
}
}
if (rs.method == 'drc_mode_enter') {
console.log(rs);
if (rs.data.result == 0) {
modeEnter.value = true;
createMessage.success('进入指令飞行控制模式成功');
@ -294,7 +286,6 @@
}
}
if (rs.method == 'drc_mode_exit') {
console.log(rs);
if (rs.data.result == 0) {
modeEnter.value = false;
createMessage.success('退出指令飞行控制模式成功');
@ -306,6 +297,7 @@
if (rs.method === 'return_home') {
if (rs.data.result == 0) {
createMessage.success('一键返航成功');
monitorDRC.value = false;
} else {
createMessage.error('一键返航失败,状态码' + rs.data.result);
}
@ -317,8 +309,7 @@
createMessage.error('一键起飞失败,状态码' + rs.data.result);
}
}
if (rs.method === 'drc_status_notify') {
console.log(rs);
if (rs.method === 'drc_status_notify' && monitorDRC.value) {
if (rs.data.result == 0) {
if (rs.data.drc_state == 0) {
drc_eart_beat();
@ -333,6 +324,7 @@
window.clearInterval(timer);
destroySeizeConnection();
changeRedisUser(false);
monitorDRC.value = false;
});
</script>
<style lang="less" scoped>

@ -58,55 +58,62 @@
} from '@/api/workmanagement/airportMaintenance';
import TCPlayer from 'tcplayer.js';
import 'tcplayer.js/dist/tcplayer.min.css'; //
import { servicesUAVTopic, services_replyUAVTopic } from '@/utils/debugging/remote';
import { servicesTopic, services_replyTopic } from '@/utils/debugging/remote';
import { useMessage } from '@/hooks/web/useMessage';
const { createMessage } = useMessage();
const props = defineProps({
msgData: Object,
uavLive: Boolean,
});
let player;
watch(
() => props.msgData,
(val) => {
if (val.topic == 'thing/product/1581F8HGX254V00A0BUY/services_reply') {
if (val.message.method == 'live_start_push') {
console.log(val);
if (val.message.data.result == 0) {
createMessage.success('开始直播成功');
player.src('http://175.27.168.120:6012/live/3.flv');
} else if (val.message.data.result == 513003) {
createMessage.success('直播已开启');
player.src('http://175.27.168.120:6012/live/3.flv');
} else {
createMessage.error('开始直播失败');
}
} else if (val.message.method == 'live_stop_push') {
if (val.message.data.result == 0) {
createMessage.success('停止直播成功');
if (player) {
// player.dispose();
}
} else {
createMessage.error('停止直播失败');
}
} else if (val.message.method == 'live_set_quality') {
if (val.message.data.result == 0) {
createMessage.success('设置清晰度成功');
player.src('http://175.27.168.120:6012/live/3.flv');
} else {
createMessage.error('设置清晰度失败');
}
} else if (val.message.method == 'live_lens_change') {
console.log(val);
if (val.message.data.result == 0) {
createMessage.success('设置直播镜头成功');
player.src('http://175.27.168.120:6012/live/3.flv');
} else {
createMessage.error('设置直播镜头失败');
if (val.message.method == 'live_start_push') {
console.log(val);
if (val.message.data.result == 0) {
createMessage.success('无人机开始直播成功');
player.src('http://175.27.168.120:6012/live/3.flv');
} else if (val.message.data.result == 513003) {
createMessage.success('无人机直播已开启');
player.src('http://175.27.168.120:6012/live/3.flv');
} else {
createMessage.error('无人机开始直播失败');
}
} else if (val.message.method == 'live_stop_push') {
if (val.message.data.result == 0) {
createMessage.success('无人机停止直播成功');
if (player) {
// player.dispose();
}
} else {
createMessage.error('无人机停止直播失败');
}
} else if (val.message.method == 'live_set_quality') {
if (val.message.data.result == 0) {
createMessage.success('无人机设置清晰度成功');
player.src('http://175.27.168.120:6012/live/3.flv');
} else {
createMessage.error('无人机设置清晰度失败');
}
} else if (val.message.method == 'live_lens_change') {
if (val.message.data.result == 0) {
createMessage.success('无人机设置直播镜头成功');
player.src('http://175.27.168.120:6012/live/3.flv');
} else {
createMessage.error('无人机设置直播镜头失败');
}
}
},
);
watch(
() => props.uavLive,
(val) => {
if (val) {
console.log('开始无人机直播');
startLiveFun();
}
},
);
@ -166,18 +173,18 @@
url_type: 1, // 0 = RTMP 1GB28181 3WebRTC 4
url: 'rtmp://175.27.168.120:6019/live/3',
//video_id = "1581F8HGX254V00A0BUY/0-100-1/normal-0",
video_id: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
video_id: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
video_quality: 1, // 0=1=2=3=4=
},
};
servicesUAVTopic(querys);
services_replyUAVTopic();
servicesTopic(querys);
services_replyTopic();
// const querys = {
// urlType: 1, // 0 = RTMP 1GB28181 3WebRTC 4
// // url: 'rtmp://221.2.83.254:1935/live/3',
// url: 'rtmp://175.27.168.120:6019/live/3',
// //video_id = "1581F8HGX254V00A0BUY/0-100-1/normal-0",
// videoId: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
// videoId: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
// quality: 1, // 0=1=2=3=4=
// };
// startLive(querys).then((res) => {
@ -192,13 +199,13 @@
tid: buildGUID(),
timestamp: new Date().getTime(),
data: {
video_id: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
video_id: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
video_quality: val, // 0=1=2=3=4=
},
};
servicesUAVTopic(querys);
servicesTopic(querys);
// const querys = {
// videoId: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
// videoId: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
// videoQuality: val, // 0=1=2=3=4=
// };
// setCameraVideo(querys).then((res) => {
@ -207,21 +214,20 @@
// });
};
const cameraChange = (val: any) => {
console.log(val);
const querys = {
bid: buildGUID(),
method: 'live_lens_change',
tid: buildGUID(),
timestamp: new Date().getTime(),
data: {
video_id: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
video_id: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
video_type: val, // 0=1=2=3=4=
},
};
console.log(querys);
servicesUAVTopic(querys);
servicesTopic(querys);
// const requestData = {
// videoId: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
// videoId: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
// position: val, // 0=1=2=3=4=
// camera: '99-0-0',
// };
@ -254,12 +260,12 @@
tid: buildGUID(),
timestamp: new Date().getTime(),
data: {
video_id: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
video_id: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
},
};
servicesUAVTopic(querys);
servicesTopic(querys);
// endLive({
// videoId: '1581F8HGX254V00A0BUY/165-0-7/normal-0',
// videoId: '1581F8HGX254V00A0BUY/99-0-0/normal-0',
// }).then((res) => {
// console.log(res);
// });

@ -57,7 +57,8 @@
import {
drcDownTopicReize,
eventsTopicSubscribeReize,
eventsTopicReize,
servicesTopicReize,
services_replyTopicReize,
} from '@/utils/debugging/events';
import { useMessage } from '@/hooks/web/useMessage';
import {
@ -76,18 +77,11 @@
const props = defineProps({
msgData: Object,
});
console.log(props);
const monitorDRC = ref(false);
//
const flightGrab = ref(false);
//
const modeEnter = ref(false);
const drcVal = reactive({
roll: 1024,
pitch: 1024,
throttle: 1024,
yaw: 1024,
gimbal_pitch: 1024,
});
const airportVal: any = ref({
mode_code: 0,
wind_speed: 0,
@ -159,6 +153,7 @@
},
});
services_replyTopic();
createSeizeConnection();
};
//
const singleShot = () => {
@ -167,7 +162,7 @@
return;
}
//
eventsTopicReize({
servicesTopicReize({
bid: buildGUID(),
method: 'camera_photo_take',
tid: buildGUID(),
@ -176,6 +171,7 @@
payload_index: '99-0-0',
},
});
services_replyTopicReize();
};
const drcSeq = ref(1);
const enterDRC = () => {
@ -209,6 +205,7 @@
};
let timer;
const drc_eart_beat = () => {
monitorDRC.value = true;
// drc
drcSeq.value = drcSeq.value + 1;
timer = window.setInterval(() => {
@ -245,19 +242,22 @@
return;
}
seq.value = seq.value + 1;
let data = {
roll: 1024,
pitch: 1024,
throttle: 1024,
yaw: 1024,
gimbal_pitch: 1024,
};
if (val == 'up') {
if (drcVal[type] < 1684) {
drcVal[type] = drcVal[type] + 20;
}
data[type] = 1684;
} else {
if (drcVal[type] > 364) {
drcVal[type] = drcVal[type] - 20;
}
data[type] = 364;
}
const querys = {
seq: seq.value,
method: 'stick_control',
data: drcVal,
data: data,
};
drcDownTopicReize(querys);
};
@ -274,7 +274,6 @@
getClient().on('message', (topic, message) => {
const rs = JSON.parse(message);
if (rs.method == 'flight_authority_grab') {
console.log(rs);
if (rs.data.result == 0) {
flightGrab.value = true;
createMessage.success('飞行控制权抢夺成功');
@ -284,7 +283,6 @@
}
}
if (rs.method == 'drc_mode_enter') {
console.log(rs);
if (rs.data.result == 0) {
modeEnter.value = true;
createMessage.success('进入指令飞行控制模式成功');
@ -294,7 +292,6 @@
}
}
if (rs.method == 'drc_mode_exit') {
console.log(rs);
if (rs.data.result == 0) {
modeEnter.value = false;
createMessage.success('退出指令飞行控制模式成功');
@ -302,8 +299,7 @@
createMessage.error('退出指令飞行控制模式失败,状态码' + rs.data.result);
}
}
if (rs.method === 'drc_status_notify') {
console.log(rs);
if (rs.method === 'drc_status_notify' && monitorDRC.value) {
if (rs.data.result == 0) {
if (rs.data.drc_state == 0) {
drc_eart_beat();
@ -318,6 +314,7 @@
window.clearInterval(timer);
destroySeizeConnection();
changeRedisUser(false);
monitorDRC.value = false;
});
</script>
<style lang="less" scoped>

Loading…
Cancel
Save