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