From 306ca22e966c0dc25841dcb7bd3db9db7c013bd9 Mon Sep 17 00:00:00 2001 From: feiyu02 <risaku@163.com> Date: 星期三, 17 十一月 2021 14:34:39 +0800 Subject: [PATCH] 1. 网格化数据优化 --- 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