From 585fb9b67dc81f9e14f2cbf59f1c3a02eb4fe98f Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 11 六月 2020 10:58:23 +0800
Subject: [PATCH] 1.添加无人机多参数的数据接收解析函数 2.添加参数存储函数

---
 src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataPackageDecoderImpl.kt |   60 ++++++++++++++++++++++--------------------------------------
 1 files changed, 22 insertions(+), 38 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataPackageDecoderImpl.kt b/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataPackageDecoderImpl.kt
index cb41fb8..66ade0c 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataPackageDecoderImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/decoder/impl/DataPackageDecoderImpl.kt
@@ -3,7 +3,8 @@
 import com.flightfeather.uav.socket.bean.DataUnit
 import com.flightfeather.uav.socket.decoder.DataPackageDecoder
 import com.flightfeather.uav.socket.decoder.DataUnitDecoder
-import com.flightfeather.uav.socket.eunm.ObdCommandUnit
+import com.flightfeather.uav.socket.eunm.AirCommandUnit
+import java.util.*
 
 /**
  * @author riku
@@ -13,79 +14,62 @@
 
     private val dataUnitDecoder: DataUnitDecoder = DataUnitDecoderImpl()
 
-    // 鎺ユ敹鍒扮殑瀛楃涓叉槸byte杞爜鍓嶇殑锛屽叾灏辫〃绀哄瓧绗︾殑ASCII鐮侊紱
 
     override fun getHead(b: List<String>): String? {
-        return if (b.size >= 2) {
-            "${b[0]}${b[1]}"
+        return if (b.isNotEmpty()) {
+            b[0]
         } else {
             null
         }
     }
 
-    override fun getCommandUnit(b: List<String>): Int? = if (b.size >= 3) {
-        b[2].toIntOrNull(16)
+    override fun getCommandUnit(b: List<String>): Int? = if (b.size >= 2) {
+        b[1].toIntOrNull(16)
     } else {
         null
     }
 
-    override fun getVinCode(b: List<String>): String? {
-        if (b.size < 20) return null
-
-        //fixme 搴旇鏄渶瑕佸皢b褰撲綔ASCII鐮侊紝鍐嶈幏鍙栬浆鎹㈠悗鐨勫瓧绗︿覆
-        val s = StringBuilder()
-
-        for (i in 3..19) {
-            s.append(b[i].toIntOrNull(16)?.toChar())
-        }
-
-        return s.toString()
+    override fun getDeviceCode(b: List<String>): String? {
+        return null
     }
 
-    override fun getSoftwareVersion(b: List<String>): Int? = if (b.size >= 21) {
-        b[20].toIntOrNull(16)
-    } else {
-        null
-    }
-
-    override fun getEncryptionWay(b: List<String>): Int? = if (b.size >= 21) {
-        b[21].toIntOrNull(16)
-    } else {
-        null
+    override fun getDataTime(b: List<String>): Date {
+        //fixme 2020/06/11  鐩墠鏁版嵁娴佷腑涓嶅寘鍚噰鏍锋椂闂达紝鎵�浠ラ噰鐢ㄦ湇鍔″櫒鎺ユ敹鏃堕棿浣滀负閲囨牱鏃堕棿
+        return Date()
     }
 
     override fun getDataLength(b: List<String>): Int {
-        if (b.size < 24) return 0
+        if (b.size < 5) return 0
 
-        val hexNum = "${b[22]}${b[23]}"
+        val hexNum = b[2]
 
         return hexNum.toIntOrNull(16) ?: 0
     }
 
     override fun getDataUnit(b: List<String>): List<DataUnit> {
-        if (getDataLength(b) == 0 || b.size < 26) {
+        if (getDataLength(b) == 0 || b.size < 5) {
             return emptyList()
         }
 
         val unit = mutableListOf<String>()
-        for (i in 24..b.size - 2) {
+        for (i in 3..b.size - 3) {
             unit.add(b[i])
         }
+
         dataUnitDecoder.run {
             return when (getCommandUnit(b)) {
-                ObdCommandUnit.CarRegister.value -> getCarRegisterData(unit)
-                ObdCommandUnit.RealTimeData.value -> getRealTimeData(unit)
-                ObdCommandUnit.ReplacementData.value -> getReplacementData(unit)
-                ObdCommandUnit.CarLogOut.value -> getCarLogOutData(unit)
-                ObdCommandUnit.TimeCalibration.value -> getTimeCalibrationData(unit)
+                AirCommandUnit.Confirm.value -> getAirConfirmData(unit)
+                AirCommandUnit.AirData.value -> getAirData(unit)
                 else -> emptyList()
             }
         }
     }
 
     override fun getCheckCode(b: List<String>): Int? {
-        return if (b.isNotEmpty()) {
-            b[b.size - 1].toIntOrNull(16)
+        return if (b.size >= 5) {
+            val hexNum = "${b[b.size - 2]}${b[b.size - 1]}"
+
+            hexNum.toIntOrNull(16)
         } else {
             null
         }

--
Gitblit v1.9.3