| | |
| | | import { DRC_METHOD } from '@/const/drc.js' |
| | | import { useMqtt } from '@/hooks/controlDrone/useMqtt' |
| | | import { ElMessage } from 'element-plus' |
| | | import { postPayloadCommands } from '@/api/payload' |
| | | import { postPayloadCommands, ptzControlApi } from '@/api/payload' |
| | | import { throttle } from 'lodash' |
| | | |
| | | let myInterval |
| | | |
| | |
| | | let genPortOne = true //是一代机场 |
| | | const mqttHooks = useMqtt(mqttState,deviceTopicInfo) |
| | | let seq = 0 |
| | | let throttledPtz = null |
| | | |
| | | function handlePublish(params) { |
| | | const body = { |
| | |
| | | seq = 0 |
| | | switch (keyCode) { |
| | | case 'KeyQ': |
| | | if (activeCodeKey === keyCode) return |
| | | if (activeCodeKey.value === keyCode) return |
| | | let objQ = { yaw: 1024-W_SPEED } |
| | | if (genPortOne) {objQ = {w: -W_SPEED}} |
| | | handlePublish(objQ) |
| | | activeCodeKey.value = keyCode |
| | | break |
| | | case 'KeyW': |
| | | if (activeCodeKey === keyCode) return |
| | | if (activeCodeKey.value === keyCode) return |
| | | let objW = { pitch: 1024+SPEED } |
| | | if (genPortOne) {objW = {x: SPEED}} |
| | | handlePublish(objW) |
| | | activeCodeKey.value = keyCode |
| | | break |
| | | case 'KeyE': |
| | | if (activeCodeKey === keyCode) return |
| | | if (activeCodeKey.value === 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 |
| | | if (activeCodeKey.value === keyCode) return |
| | | let objA = { roll: 1024-SPEED } |
| | | if (genPortOne) {objA = {y: -SPEED}} |
| | | handlePublish(objA) |
| | | activeCodeKey.value = keyCode |
| | | break |
| | | case 'KeyS': |
| | | if (activeCodeKey === keyCode) return |
| | | if (activeCodeKey.value === keyCode) return |
| | | let objS = { pitch: 1024-SPEED } |
| | | if (genPortOne) {objS = {x: -SPEED}} |
| | | handlePublish(objS) |
| | | activeCodeKey.value = keyCode |
| | | break |
| | | case 'KeyD': |
| | | if (activeCodeKey === keyCode) return |
| | | if (activeCodeKey.value === keyCode) return |
| | | let objD = { roll: 1024+SPEED } |
| | | if (genPortOne) {objD = {y: SPEED}} |
| | | handlePublish(objD) |
| | | activeCodeKey.value = keyCode |
| | | break |
| | | case 'ArrowUp': |
| | | case 'KeyZ': |
| | | if (activeCodeKey.value === keyCode) return |
| | | handlePublish({ h: HEIGHT }) |
| | | let objZ = { throttle: 1024-HEIGHT } |
| | | if (genPortOne) {objZ = {h: -HEIGHT}} |
| | | handlePublish(objZ) |
| | | activeCodeKey.value = keyCode |
| | | break |
| | | // case 'ArrowDown': |
| | | case 'KeyC': |
| | | if (activeCodeKey.value === keyCode) return |
| | | let objC = { throttle: 1024+HEIGHT } |
| | | if (genPortOne) {objC = {h: HEIGHT}} |
| | | handlePublish(objC) |
| | | activeCodeKey.value = keyCode |
| | | break |
| | | case 'ArrowUp': |
| | | ptzThrottle[0]() |
| | | break |
| | | case 'ArrowDown': |
| | | if (activeCodeKey.value === keyCode) return |
| | | handlePublish({ h: -HEIGHT }) |
| | | activeCodeKey.value = keyCode |
| | | ptzThrottle[1]() |
| | | break |
| | | |
| | | case 'ArrowLeft': |
| | | ptzThrottle[2]() |
| | | break |
| | | case 'ArrowRight': |
| | | ptzThrottle[3]() |
| | | break |
| | | default: |
| | | break |
| | | } |
| | | } |
| | | |
| | | // 云台控制节流list |
| | | const ptzThrottle = ['up','down','left','right'].map(key => throttle(()=>ptzControl(key), 500)) |
| | | |
| | | // 云台上下左右 |
| | | function ptzControl(key) { |
| | | const {dockSn} = paramsRef.value |
| | | ptzControlApi(key, { sn: dockSn }).then(res => { |
| | | |
| | | }) |
| | | } |
| | | |
| | | const handlePayloadTurn = (params) => { |
| | | handleClearInterval() |
| | | if (!this.myInterval) { |