From c5551fc0fb643f85aafeb6827687af4df88bd1f7 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Fri, 01 Nov 2024 10:29:53 +0800
Subject: [PATCH] 增加:喊话器
---
ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java | 66 +++++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
index c5cd5b7..6d2a6f6 100644
--- a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
@@ -18,6 +18,7 @@
import com.ard.tianyu.model.dto.converter.UavTelemetryDataConverter;
import com.ard.tianyu.model.dto.manual.*;
import com.ard.tianyu.model.dto.signal.SignalInfo;
+import com.ard.tianyu.model.dto.speaker.*;
import com.ard.tianyu.model.dto.state.UavState;
import com.ard.tianyu.model.dto.telemetry.TelemetryData;
import com.ard.tianyu.model.receiver.*;
@@ -35,6 +36,7 @@
import com.ard.tianyu.netty.command.real.UavStateCmd;
import com.ard.tianyu.netty.command.real.UavTelemetryDataCmd;
import com.ard.tianyu.netty.command.register.*;
+import com.ard.tianyu.netty.command.speaker.*;
import com.ard.tianyu.netty.handler.ErrorCodeEnum;
import com.ard.tianyu.service.ITyService;
import com.ard.tianyu.websocket.utils.WebSocketUtil;
@@ -384,6 +386,67 @@
}
/**
+ * 喊话模式切换
+ */
+ @Override
+ public void speakModeSwitch(SpeakModeSwitchDTO speakModeSwitchDTO) {
+ SpeakModeSwitchCmd speakModeSwitchCmd = new SpeakModeSwitchCmd(speakModeSwitchDTO);
+ this.sendMessage(tyConfiguration.getIpPort(), speakModeSwitchCmd);
+ }
+
+ /**
+ * 文字喊话
+ */
+ @Override
+ public void textSpeak(TextSpeakDTO textSpeakDTO) {
+ TextSpeakCmd textSpeakCmd = new TextSpeakCmd(textSpeakDTO);
+ this.sendMessage(tyConfiguration.getIpPort(), textSpeakCmd);
+ }
+
+ /**
+ * 实时喊话
+ */
+ @Override
+ public void realSpeak(RealSpeakDTO realSpeakDTO) {
+ RealSpeakCmd realSpeakCmd = new RealSpeakCmd(realSpeakDTO);
+ this.sendMessage(tyConfiguration.getIpPort(), realSpeakCmd);
+ }
+
+ /**
+ * 录音喊话
+ */
+ @Override
+ public void recordSpeak(RecordSpeakDTO recordSpeakDTO) {
+ RecordSpeakCmd recordSpeakCmd = new RecordSpeakCmd(recordSpeakDTO);
+ this.sendMessage(tyConfiguration.getIpPort(), recordSpeakCmd);
+ }
+ /**
+ * 设置音量
+ */
+ @Override
+ public void volumeSetting(VolumeSettingDTO volumeSettingDTO) {
+ VolumeSettingCmd volumeSettingCmd = new VolumeSettingCmd(volumeSettingDTO);
+ this.sendMessage(tyConfiguration.getIpPort(), volumeSettingCmd);
+ }
+
+ /**
+ * 设置循环播放
+ */
+ @Override
+ public void loopSetting(LoopSettingDTO loopSettingDTO) {
+ LoopSettingCmd loopSettingCmd = new LoopSettingCmd(loopSettingDTO);
+ this.sendMessage(tyConfiguration.getIpPort(), loopSettingCmd);
+ }
+ /**
+ * 停止喊话
+ */
+ @Override
+ public void stopSpeak(StopSpeakDTO stopSpeakDTO) {
+ StopSpeakCmd stopSpeakCmd=new StopSpeakCmd(stopSpeakDTO);
+ this.sendMessage(tyConfiguration.getIpPort(), stopSpeakCmd);
+ }
+
+ /**
* 处理天宇服务器返回的消息
*/
@Override
@@ -427,6 +490,9 @@
case (byte) 0xA9:
// 处理无人机遥测消息
UavTelemetryDataCmd uavTelemetryDataCmd = (UavTelemetryDataCmd) tyCommand;
+ if (uavTelemetryDataCmd.getBoxSn() == null) {
+ return;
+ }
String boxSn = ByteUtils.bytesToString(uavTelemetryDataCmd.getBoxSn()); // 假设有获取无人机ID的方法
long currentTime = System.currentTimeMillis();
--
Gitblit v1.9.3