From 81bd0388494d45463de42cd91bd8c33f10f0030a Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 17 六月 2021 10:27:21 +0800
Subject: [PATCH] 1. 新增用电量数据的接收协议 2. 调整socket接收模块的代码结构

---
 src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt b/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt
index f06f127..12e53d0 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/decoder/AirDataDecoder.kt
@@ -1,21 +1,39 @@
 package com.flightfeather.uav.socket.decoder
 
-import com.flightfeather.uav.socket.bean.AirPackageData
-import com.flightfeather.uav.socket.decoder.impl.DataPackageDecoderImpl
+import com.flightfeather.uav.socket.bean.AirDataPackage
 
 /**
  * 绌烘皵璐ㄩ噺澶氬弬鏁版暟鎹В鐮佸櫒
  * @author riku
  * Date: 2019/9/12
  */
-class AirDataDecoder {
+class AirDataDecoder private constructor(){
 
-    private val dataPackageDecoder: DataPackageDecoder = DataPackageDecoderImpl()
+    companion object{
 
-    fun decode(msg: String): AirPackageData {
+        @Volatile
+        private var decoder: AirDataDecoder? = null
+
+        @JvmStatic
+        val instance: AirDataDecoder
+            get() {
+                if (decoder == null) {
+                    synchronized(AirDataDecoder::class) {
+                        if (decoder == null) {
+                            decoder = AirDataDecoder()
+                        }
+                    }
+                }
+                return this.decoder!!
+            }
+    }
+
+    private val dataPackageDecoder: DataPackageDecoder = DataPackageDecoder()
+
+    fun decode(msg: String): AirDataPackage {
         val list = dataPackageDecoder.toStringList(msg)
         dataPackageDecoder.run {
-            return AirPackageData(
+            return AirDataPackage(
                     getHead(list),
                     getCommandUnit(list),
                     getDeviceCode(list),

--
Gitblit v1.9.3