From 75902fb9d5b27a440d14308ccca3c3cff32167bb Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Fri, 25 Oct 2024 09:51:19 +0800
Subject: [PATCH] 优化

---
 ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolEncoder.java |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolEncoder.java b/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolEncoder.java
index 8ed5690..2e86ed3 100644
--- a/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolEncoder.java
+++ b/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolEncoder.java
@@ -4,13 +4,38 @@
 import io.netty.buffer.ByteBuf;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.handler.codec.MessageToByteEncoder;
+import lombok.extern.slf4j.Slf4j;
 
+import java.util.Arrays;
+
+@Slf4j
 public class MessageProtocolEncoder extends MessageToByteEncoder<BaseCommand> {
     @Override
     protected void encode(ChannelHandlerContext ctx, BaseCommand command, ByteBuf out) throws Exception {
         out.writeShort(command.getDataHeader()); // 写入帧头
         out.writeShort(command.getDataLength()); // 写入数据长度
+        if(command.getBoxSn() != null) {
+            out.writeBytes(command.getBoxSn());
+        }// 写入指令编号
         out.writeByte(command.getCmdCode()); // 写入指令编号
         command.encode(out); // 编码具体负载
+        // 打印
+        if(command.getCmdCode()!=0x02) {
+            printHex(out);
+        }
+    }
+    private void printHex(ByteBuf out)
+    {
+        // 打印编码后的字节数组
+        byte[] encodedBytes = new byte[out.readableBytes()]; // 创建字节数组,大小为可读字节数
+        out.getBytes(out.readerIndex(), encodedBytes); // 读取ByteBuf中的字节到字节数组中
+        // log.warn("Encoded message bytes: {}", Arrays.toString(encodedBytes));
+        // 将字节数组转换为十六进制格式
+        StringBuilder hexString = new StringBuilder();
+        for (byte b : encodedBytes) {
+            hexString.append(String.format("%02X ", b)); // 将每个字节转换为两位十六进制并加上空格
+        }
+
+        log.warn("Encoded message in hex: {}", hexString.toString().trim());
     }
 }

--
Gitblit v1.9.3