From 2b43275bd260eda468f305ebca4b4f4291b0605d Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Wed, 23 Oct 2024 14:50:33 +0800
Subject: [PATCH] 优化netty连接

---
 ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 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 b18e6d8..9ec76ae 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
@@ -119,11 +119,19 @@
     }
 
     /**
+     * 无人机控制订阅
+     */
+    public void uavControlSubscribe(String boxSn) {
+        SubscribeCommand subscribeCommand = new SubscribeCommand(boxSn);
+        this.sendMessage(tyConfiguration.getIpPort(), subscribeCommand);
+    }
+
+    /**
      * 发送消息
      */
     public void sendMessage(String key, BaseCommand msg) {
         try {
-            ChannelFuture future = TyNettyTcpClient.channels.get(key).getFuture();
+            ChannelFuture future = TyNettyTcpClient.channels.get(key).getChannelFuture();
             Channel channel = future.channel();
             if (channel.isActive()) {
                 InetSocketAddress ipSocket = (InetSocketAddress) channel.remoteAddress();
@@ -142,6 +150,9 @@
         }
     }
 
+    /**
+     * 云台控制基于角度
+     */
     @Override
     public void controlAngle(String boxSn) {
         ControlAngleCommand controlAngleCommand = new ControlAngleCommand(boxSn.getBytes(), (byte) 0x00, (byte) 0x00, (byte) 0x05);
@@ -167,6 +178,16 @@
                 HeartbeatReplyCommand heartbeatReplyCommand = (HeartbeatReplyCommand) tyCommand;
                 log.info("收到心跳消息-->处理心跳消息{}", heartbeatReplyCommand.getTimestamp());
                 break;
+            case 0x03:
+                // 处理订阅消息
+                SubscribeCommand subscribeCommand = (SubscribeCommand) tyCommand;
+                log.info("收到订阅消息-->处理订阅消息{}", subscribeCommand.getBoxSn());
+                break;
+            case 0x04:
+                // 处理取消订阅消息
+                subscribeCommand = (SubscribeCommand) tyCommand;
+                log.info("收到取消订阅消息-->处理取消订阅消息{}", subscribeCommand.getBoxSn());
+                break;
             case (byte) 0xA8:
                 // 处理无人机状态消息
                 log.info("收到无人机状态消息-->无人机状态消息");

--
Gitblit v1.9.3