From 115bd56702e2ce09b7a7c1e6bb5e93e2f6174cdf Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Wed, 16 Apr 2025 20:50:13 +0800
Subject: [PATCH] Merge branch 'master' of http://139.196.74.78:10010/r/drone/command-center-dashboard
---
src/hooks/controlDrone/useManualControl.js | 116 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 83 insertions(+), 33 deletions(-)
diff --git a/src/hooks/controlDrone/useManualControl.js b/src/hooks/controlDrone/useManualControl.js
index 91417c9..2910d6f 100644
--- a/src/hooks/controlDrone/useManualControl.js
+++ b/src/hooks/controlDrone/useManualControl.js
@@ -1,19 +1,38 @@
import { DRC_METHOD } from '@/const/drc.js'
import { useMqtt } from '@/hooks/controlDrone/useMqtt'
import { ElMessage } from 'element-plus'
+import { postPayloadCommands } from '@/api/payload'
let myInterval
-export const KeyCode = {
- KEY_W: 'KeyW',
- KEY_A: 'KeyA',
- KEY_S: 'KeyS',
- KEY_D: 'KeyD',
- KEY_Q: 'KeyQ',
- KEY_E: 'KeyE',
- ARROW_UP: 'ArrowUp',
- ARROW_DOWN: 'ArrowDown',
-}
+export const KeyCode = {
+ KEY_W: 'KeyW',
+ KEY_A: 'KeyA',
+ KEY_S: 'KeyS',
+ KEY_D: 'KeyD',
+ KEY_Q: 'KeyQ',
+ KEY_E: 'KeyE',
+ KEY_J: 'KeyJ',
+ KEY_K: 'KeyK',
+ KEY_L: 'KeyL',
+ KEY_X: 'KeyX',
+ KEY_Z: 'KeyZ',
+ KEY_C: 'KeyC',
+ KEY_I: 'KeyI',
+ KEY_O: 'KeyO',
+ ARROW_UP: 'ArrowUp',
+ ARROW_DOWN: 'ArrowDown',
+ ARROW_LEFT: 'ArrowLeft',
+ ARROW_RIGHT: 'ArrowRight',
+ NUMPAD_SUBTRACT: 'NumpadSubtract',
+ NUMPAD_ADD: 'NumpadAdd',
+ // 提升速度
+ KEY_EQUAL: 'Equal',
+ KEY_MINUS: 'Minus',
+ // 录音
+ KEY_N: 'KeyN',
+ KEY_M: 'KeyM',
+ }
export function useManualControl(mqttState,deviceTopicInfo, isCurrentFlightController) {
const activeCodeKey = ref(null)
@@ -35,34 +54,63 @@
}, 50)
}
- function handleKeyup(keyCode) {
+ function handleKeyup(keyCode,params) {
+ const {sn,speed} = params
+ let genPortOne = false //是一代机场
if (!deviceTopicInfo.pubTopic) {
ElMessage.error('请确保已经建立DRC链路')
return
}
- const SPEED = 5 // check
- const HEIGHT = 5 // check
- const W_SPEED = 20 // 机头角速度
+ if (sn === '4TADKCM0010016' || sn === 'BA0BA1C3D38157A49E1B16574FA474F7') {
+ genPortOne = true
+ }
+
+ const SPEED = genPortOne ? (speed || 5) : 500 // check
+ const HEIGHT = genPortOne ? 5 : 500; // check
+ const W_SPEED = genPortOne ? 20 : 500 // 机头角速度
+
seq = 0
switch (keyCode) {
- case 'KeyA':
- if (activeCodeKey.value === keyCode) return
- handlePublish({ y: -SPEED })
+ case 'KeyQ':
+ if (activeCodeKey === keyCode) return
+ let objQ = { yaw: 1024-W_SPEED }
+ if (genPortOne) {objQ = {w: -W_SPEED}}
+ handlePublish(objQ)
activeCodeKey.value = keyCode
break
case 'KeyW':
- if (activeCodeKey.value === keyCode) return
- handlePublish({ x: SPEED })
+ if (activeCodeKey === keyCode) return
+ let objW = { pitch: 1024+SPEED }
+ if (genPortOne) {objW = {x: SPEED}}
+ handlePublish(objW)
+ activeCodeKey.value = keyCode
+ break
+ case 'KeyE':
+ if (activeCodeKey === keyCode) return
+ let objE = { yaw: 1024+W_SPEED }
+ if (genPortOne) {objE = {w: W_SPEED}}
+ handlePublish(objE)
+ activeCodeKey.value = keyCode
+ break
+ case 'KeyA':
+ if (activeCodeKey === keyCode) return
+ let objA = { roll: 1024-SPEED }
+ if (genPortOne) {objA = {y: -SPEED}}
+ handlePublish(objA)
activeCodeKey.value = keyCode
break
case 'KeyS':
- if (activeCodeKey.value === keyCode) return
- handlePublish({ x: -SPEED })
+ if (activeCodeKey === keyCode) return
+ let objS = { pitch: 1024-SPEED }
+ if (genPortOne) {objS = {x: -SPEED}}
+ handlePublish(objS)
activeCodeKey.value = keyCode
break
case 'KeyD':
- if (activeCodeKey.value === keyCode) return
- handlePublish({ y: SPEED })
+ if (activeCodeKey === keyCode) return
+ let objD = { roll: 1024+SPEED }
+ if (genPortOne) {objD = {y: SPEED}}
+ handlePublish(objD)
activeCodeKey.value = keyCode
break
case 'ArrowUp':
@@ -75,21 +123,23 @@
handlePublish({ h: -HEIGHT })
activeCodeKey.value = keyCode
break
- case 'KeyQ':
- if (activeCodeKey.value === keyCode) return
- handlePublish({ w: -W_SPEED })
- activeCodeKey.value = keyCode
- break
- case 'KeyE':
- if (activeCodeKey.value === keyCode) return
- handlePublish({ w: W_SPEED })
- activeCodeKey.value = keyCode
- break
+
default:
break
}
}
+ const handlePayloadTurn = (params) => {
+ handleClearInterval()
+ if (!this.myInterval) {
+ postPayloadCommands(this.sn, params)
+ }
+ this.myInterval = setInterval(() => {
+ postPayloadCommands(this.sn, params)
+ }, 500)
+ }
+
+
function handleClearInterval() {
clearInterval(myInterval)
myInterval = undefined
--
Gitblit v1.9.3