From 53857f42f777e2b9753b8f00cce1a60ce3dcb8fd Mon Sep 17 00:00:00 2001
From: Riku <risaku@163.com>
Date: 星期三, 15 十月 2025 22:42:29 +0800
Subject: [PATCH] 2025.10.15 修改高德地图地理逆编码结果,让地理位置信息更加详细
---
src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt | 37 ++++++++++++++++++++-----------------
1 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt b/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt
index bb88cb1..9b22dbf 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/UAVByteDataDecoder.kt
@@ -1,9 +1,9 @@
package com.flightfeather.uav.socket
+import com.flightfeather.uav.socket.decoder.DataPackageDecoder
import io.netty.buffer.ByteBuf
import io.netty.channel.ChannelHandlerContext
import io.netty.handler.codec.ByteToMessageDecoder
-import java.lang.StringBuilder
/**
* @author riku
@@ -13,12 +13,13 @@
class UAVByteDataDecoder : ByteToMessageDecoder() {
companion object {
- private const val HEAD_BYTES = 2//鏁版嵁澶存墍鍗犻暱搴�
- private const val LENGTH_BYTES = 1//鏁版嵁浣嶆暟鎵�鍗犻暱搴�
- private const val BCC_BYTES = 2//鏍¢獙鐮侀暱搴�
- const val BASE_LENGTH = HEAD_BYTES + LENGTH_BYTES + BCC_BYTES
+ const val BASE_LENGTH = DataPackageDecoder.HEAD_BYTES + DataPackageDecoder.COMMAND_UNIT_BYTES +
+ DataPackageDecoder.DEVICE_CODE_BYTES + DataPackageDecoder.DATA_LENGTH + DataPackageDecoder.BCC_BYTES
const val HEAD1 = 0x01.toByte()
- const val HEAD2 = 0x05.toByte()
+ const val COMMAND_1 = 0x04.toByte()
+ const val COMMAND_2 = 0x05.toByte()
+ const val HEAD_LENGTH = DataPackageDecoder.HEAD_BYTES + DataPackageDecoder.COMMAND_UNIT_BYTES +
+ DataPackageDecoder.DEVICE_CODE_BYTES
}
override fun decode(p0: ChannelHandlerContext?, p1: ByteBuf?, p2: MutableList<Any>?) {
@@ -42,11 +43,13 @@
// 鏍囪鍖呭ご寮�濮嬬殑index
it.markReaderIndex()
// 璇诲埌浜嗗崗璁殑寮�濮嬫爣蹇楋紝缁撴潫while寰幆
- val b = ByteArray(2)
+ val b = ByteArray(HEAD_LENGTH)
it.readBytes(b)
- if (b[0] == HEAD1 && b[1] == HEAD2) {
- dataList.add(b[0])
- dataList.add(b[1])
+ if (b[0] == HEAD1 &&
+ (b[1] == COMMAND_1 || b[1] == COMMAND_2)) {
+ b.forEach {b ->
+ dataList.add(b)
+ }
break
}
@@ -61,23 +64,23 @@
}
}
- ByteArray(1).apply {
- it.readBytes(this)
- }.forEach {b ->
- dataList.add(b)
- }
+// ByteArray(1).apply {
+// it.readBytes(this)
+// }.forEach {b ->
+// dataList.add(b)
+// }
//鏁版嵁鍗曞厓鐨勯暱搴�
val length = getDataUnitLength(it, dataList)
// 鍒ゆ柇璇锋眰鏁版嵁鍗曞厓鏁版嵁鍙奫LENGTH_BYTES]涓瓧鑺傜殑鏍¢獙鐮佹槸鍚﹀埌榻�
- if (it.readableBytes() < length + BCC_BYTES) {
+ if (it.readableBytes() < length + DataPackageDecoder.BCC_BYTES) {
// 杩樺師璇绘寚閽�
it.readerIndex(beginReader)
return
}
//璇诲彇鏁版嵁鍗曞厓鍜屾牎楠岀爜鏁版嵁
- ByteArray(length + BCC_BYTES).apply {
+ ByteArray(length + DataPackageDecoder.BCC_BYTES).apply {
it.readBytes(this)
}.forEach {b ->
dataList.add(b)
--
Gitblit v1.9.3