forked from drone/command-center-dashboard

罗广辉
2025-04-16 88a0986cdcb84b16ed63a88f8dbefb9aa44e7365
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)
@@ -104,11 +123,23 @@
            handlePublish({ h: -HEIGHT })
            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