From 25d0f31f22f77a914a50bbc088902e00e28c4889 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期三, 15 七月 2020 11:10:42 +0800
Subject: [PATCH] 根据新的多参数传输协议,修改解析规则

---
 src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt |   30 ++++++++----------------------
 1 files changed, 8 insertions(+), 22 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt b/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt
index 3301672..504b3ca 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt
@@ -6,7 +6,6 @@
 import com.flightfeather.uav.socket.decoder.AirDataDecoder
 import com.flightfeather.uav.socket.decoder.impl.DataPackageDecoderImpl
 import com.flightfeather.uav.socket.eunm.AirCommandUnit
-import io.netty.buffer.Unpooled
 import io.netty.channel.ChannelHandlerContext
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.stereotype.Component
@@ -30,7 +29,7 @@
     @Autowired
     lateinit var airDataRepository: AirDataRepository
 
-    val vehicleDataDecoder = AirDataDecoder()
+    val airDataDecoder = AirDataDecoder.instance
     val dataPackageDecoder = DataPackageDecoderImpl()
 
     @PostConstruct
@@ -41,21 +40,10 @@
 
     fun dealStringMsg(msg: String, ctx: ChannelHandlerContext?) {
         //瑙e寘
-        val packageData = vehicleDataDecoder.decode(msg)
+        val packageData = airDataDecoder.decode(msg)
 
 
         if (bccCheck(msg)) {
-            if (packageData.commandUnit == AirCommandUnit.Confirm.value) {
-                val t = mutableListOf<AirTypeData>()
-                packageData.dataUnit.forEach {
-                    if (it is AirTypeData) {
-                        t.add(it)
-                    }
-                }
-                DeviceSession.saveAirType(packageData.deviceCode, t)
-            } else if (packageData.commandUnit == AirCommandUnit.AirData.value) {
-                val types = DeviceSession.getAirType(packageData.deviceCode)
-            }
             //淇濆瓨
             DeviceSession.saveDevice(packageData.deviceCode, ctx)
 //            saveToTxt(msg)
@@ -76,9 +64,9 @@
     /**
      * 淇濆瓨鑷虫暟鎹簱
      */
-    fun saveToDataBase(packageData: AirPackageData) {
-        when (packageData.commandUnit) {
-            AirCommandUnit.AirData.value -> instance.airDataRepository.saveAirData(packageData)
+    fun saveToDataBase(dataPackage: AirDataPackage) {
+        when (dataPackage.commandUnit) {
+            AirCommandUnit.AirData.value -> instance.airDataRepository.saveAirData(dataPackage)
         }
     }
 
@@ -88,15 +76,13 @@
     fun bccCheck(msg: String):Boolean {
         val list = mutableListOf<String>().apply {
             addAll(dataPackageDecoder.toStringList(msg))
-            //鍘婚櫎2 浣嶈捣濮嬬
-            removeAt(0)
-            removeAt(0)
         }
         //鍙栧緱鏁版嵁鍖呬腑鐨刡cc鏍¢獙缁撴灉
-        val oldBcc = list[list.size - 1].toInt(16)
+        val oldBcc = "${list[list.lastIndex - 1]}${list[list.lastIndex]}".toInt(16)
 
         //鍘婚櫎鏍¢獙缁撴灉
-        list.removeAt(list.size-1)
+        list.removeAt(list.lastIndex)
+        list.removeAt(list.lastIndex)
 
         //璁$畻bcc鏍¢獙缁撴灉
         var newBcc = 0x00

--
Gitblit v1.9.3