forked from drone/command-center-dashboard

罗广辉
2025-04-16 987cb959286674aea227210070934492346bdd95
src/hooks/controlDrone/useManualControl.js
@@ -35,34 +35,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':
@@ -73,16 +102,6 @@
         case 'ArrowDown':
            if (activeCodeKey.value === keyCode) return
            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: