| | |
| | | package com.flightfeather.uav.socket.decoder |
| | | |
| | | import com.flightfeather.uav.socket.bean.AirPackageData |
| | | import com.flightfeather.uav.socket.bean.AirDataPackage |
| | | import com.flightfeather.uav.socket.decoder.impl.DataPackageDecoderImpl |
| | | |
| | | /** |
| | |
| | | * @author riku |
| | | * Date: 2019/9/12 |
| | | */ |
| | | class AirDataDecoder { |
| | | class AirDataDecoder private constructor(){ |
| | | |
| | | companion object{ |
| | | |
| | | @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 = DataPackageDecoderImpl() |
| | | |
| | | fun decode(msg: String): AirPackageData { |
| | | fun decode(msg: String): AirDataPackage { |
| | | val list = dataPackageDecoder.toStringList(msg) |
| | | dataPackageDecoder.run { |
| | | return AirPackageData( |
| | | return AirDataPackage( |
| | | getHead(list), |
| | | getCommandUnit(list), |
| | | getDeviceCode(list), |