From b775b3077324cb9dd7dfdedbed8baaf7d40bf9f1 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 17 Apr 2025 20:45:18 +0800
Subject: [PATCH] feat:事件点、聚合点---点击事件抽离

---
 src/hooks/controlDrone/useManualControl.js |   53 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/src/hooks/controlDrone/useManualControl.js b/src/hooks/controlDrone/useManualControl.js
index a2e0b97..f1295a2 100644
--- a/src/hooks/controlDrone/useManualControl.js
+++ b/src/hooks/controlDrone/useManualControl.js
@@ -1,7 +1,8 @@
 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
 
@@ -72,63 +73,95 @@
 		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 'KeyZ':
+				if (activeCodeKey.value === keyCode) return
+				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':
 				if (activeCodeKey.value === keyCode) return
-				handlePublish({ h: HEIGHT })
+				myInterval = setInterval(()=>ptzControl('up'), 50)
 				activeCodeKey.value = keyCode
 				break
 			case 'ArrowDown':
 				if (activeCodeKey.value === keyCode) return
-				handlePublish({ h: -HEIGHT })
+				myInterval = setInterval(()=>ptzControl('down'), 50)
 				activeCodeKey.value = keyCode
 				break
-
+			case 'ArrowLeft':
+				if (activeCodeKey.value === keyCode) return
+				myInterval = setInterval(()=>ptzControl('left'), 50)
+				activeCodeKey.value = keyCode
+				break
+			case 'ArrowRight':
+				if (activeCodeKey.value === keyCode) return
+				myInterval = setInterval(()=>ptzControl('right'), 50)
+				activeCodeKey.value = keyCode
+				break
 			default:
 				break
 		}
 	}
 
+	// 云台上下左右
+	function ptzControl(key) {
+		const  {dockSn} =  paramsRef.value
+		ptzControlApi(key, { sn: dockSn }).then(res => {
+
+		})
+	}
+
 	const handlePayloadTurn = (params) => {
 		handleClearInterval()
 		if (!this.myInterval) {

--
Gitblit v1.9.3