diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3581664..d02bff6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: ^2.3.2 version: 2.3.2(vue@3.5.25) DroneCtrl: - specifier: 1.0.1 - version: 1.0.1 + specifier: 1.0.2 + version: 1.0.2 axios: specifier: ^1.13.2 version: 1.13.2 @@ -252,8 +252,8 @@ packages: '@vueuse/shared@9.13.0': resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} - DroneCtrl@1.0.1: - resolution: {integrity: sha512-3ibzb0sXZGXAkbSTg4Zb8heTx6ASBkWaI2yAO8V+4/Y2ygULruPCzb8o3c89wWlnfQQ/AALWlNmkpVV/ezBujQ==} + DroneCtrl@1.0.2: + resolution: {integrity: sha512-EQWN1q8S4mN64gMlBQkQyJIYSBVE75YLPsYI+L/67TPypOyGWnI/kxCYMPY1hNVB8sIxJO0Z3DU3wlKxwg4Qiw==} async-validator@4.2.5: resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} @@ -781,7 +781,7 @@ snapshots: - '@vue/composition-api' - vue - DroneCtrl@1.0.1: {} + DroneCtrl@1.0.2: {} async-validator@4.2.5: {} diff --git a/src/App.vue b/src/App.vue index 343a6c9..cd0cc72 100644 --- a/src/App.vue +++ b/src/App.vue @@ -427,6 +427,7 @@ const wsConnected = ref(false) const droneData = ref(null) const isFlying = ref(false) const droneMarker = ref(null) +const drone2Marker = ref(null) let wsClient = null let mockDataGenerator = null const isInFence = ref(true) @@ -558,42 +559,43 @@ let conn = null; // 初始化WebSocket连接 const initWebSocket = () => { // 使用模拟数据生成器(因为目前没有真实WebSocket服务器) - mockDataGenerator = new MockWebSocketDataGenerator({ - interval: 500, // 内部500ms生成一次数据(用于平滑) - startLat: 39.90923, // 北京天安门附近 - startLng: 116.397428, - speed: 0.00005 // 移动速度 - }) + // mockDataGenerator = new MockWebSocketDataGenerator({ + // interval: 500, // 内部500ms生成一次数据(用于平滑) + // startLat: 39.90923, // 北京天安门附近 + // startLng: 116.397428, + // speed: 0.00005 // 移动速度 + // }) - // 监听数据(使用节流,大幅降低更新频率) - mockDataGenerator.start((data) => { - const now = Date.now() - // 只更新数据状态,不触发地图更新 - droneData.value = data + // // 监听数据(使用节流,大幅降低更新频率) + // mockDataGenerator.start((data) => { + // const now = Date.now() + // // 只更新数据状态,不触发地图更新 + // droneData.value = data - // 节流:降低地图更新频率 - if (now - lastUpdateTime >= UPDATE_INTERVAL) { - lastUpdateTime = now - handleDroneData(data) - } - }) + // // 节流:降低地图更新频率 + // if (now - lastUpdateTime >= UPDATE_INTERVAL) { + // lastUpdateTime = now + // handleDroneData(data) + // } + // }) wsConnected.value = true - ElMessage.success('无人机数据连接成功(模拟模式)') + ElMessage.success('无人机数据连接成功') } // 起飞处理 const handleTakeoff = () => { // 检查是否已有围栏 - if (fences.value.length === 0) { - ElMessage.warning('请先绘制电子围栏后再起飞') - return - } + // if (fences.value.length === 0) { + // ElMessage.warning('请先绘制电子围栏后再起飞') + // return + // } - // 如果未连接,先连接 - if (!wsConnected.value) { - initWebSocket() - } + // // 如果未连接,先连接 + // if (!wsConnected.value) { + // initWebSocket() + // } + ctrl.TakeoffAndAutoExecTask({}); // 设置飞行状态 isFlying.value = true @@ -622,7 +624,22 @@ const toggleWebSocket = () => { initWebSocket() conn = ctrl.Message(); conn.onDroneGPS = (data) => { - console.log(data); + // console.log(data); + const drone1 = data.drone_1; + const drone2 = data.drone_2; + const point = gcoord.transform( + [drone1.longitude, drone1.latitude], + gcoord.WGS84, // 当前坐标系 + gcoord.GCJ02, // 目标坐标系 + ); + const point2 = gcoord.transform( + [drone2.longitude, drone2.latitude], + gcoord.WGS84, // 当前坐标系 + gcoord.GCJ02, // 目标坐标系 + ); + console.log(point, point2); + // updateDroneMarker(point[0], point[1], drone1.heading); + // updateDrone2Marker(point2[0], point2[1], drone2.heading); }; } } @@ -1466,6 +1483,10 @@ onUnmounted(() => { map?.remove(droneMarker.value) droneMarker.value = null } + if (drone2Marker.value) { + map?.remove(drone2Marker.value) + drone2Marker.value = null + } if (mouseTool) { mouseTool.close() diff --git a/src/utils/request.js b/src/utils/request.js index e67a9c9..f7d2f3b 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -98,7 +98,9 @@ function upload(url, params) { } // export let host = `${window.location.protocol}//${window.location.host}`; +// export let host = "http://192.168.43.98:5678"; export let host = "http://192.168.3.81:5678"; +// export let host = "http://127.0.0.1:5678"; export const getConfig = () => { return { diff --git a/vite.config.js b/vite.config.js index 01fe5bd..b3001e7 100644 --- a/vite.config.js +++ b/vite.config.js @@ -5,4 +5,7 @@ import vue from '@vitejs/plugin-vue' export default defineConfig({ plugins: [vue()], base: "/web/", + optimizeDeps: { + exclude: ['DroneCtrl'] + } })