riku
2021-06-17 81bd0388494d45463de42cd91bd8c33f10f0030a
src/main/kotlin/com/flightfeather/uav/socket/processor/UnderwayProcessor.kt
ÎļþÃû´Ó src/main/kotlin/com/flightfeather/uav/socket/MessageManager.kt ÐÞ¸Ä
@@ -1,10 +1,9 @@
package com.flightfeather.uav.socket
package com.flightfeather.uav.socket.processor
import com.flightfeather.uav.common.utils.FileUtil
import com.flightfeather.uav.repository.*
import com.flightfeather.uav.socket.bean.*
import com.flightfeather.uav.repository.AirDataRepository
import com.flightfeather.uav.socket.bean.AirDataPackage
import com.flightfeather.uav.socket.decoder.AirDataDecoder
import com.flightfeather.uav.socket.decoder.impl.DataPackageDecoderImpl
import com.flightfeather.uav.socket.decoder.DataPackageDecoder
import com.flightfeather.uav.socket.eunm.AirCommandUnit
import io.netty.channel.ChannelHandlerContext
import org.springframework.beans.factory.annotation.Autowired
@@ -20,10 +19,10 @@
 */
@Component
class MessageManager{
class UnderwayProcessor : BaseProcessor() {
    companion object{
        private lateinit var instance: MessageManager
    companion object {
        private lateinit var instance: UnderwayProcessor
        private const val TAG = "UAV"
    }
@@ -32,35 +31,27 @@
    lateinit var airDataRepository: AirDataRepository
    val airDataDecoder = AirDataDecoder.instance
    val dataPackageDecoder = DataPackageDecoderImpl()
    val dataPackageDecoder = DataPackageDecoder()
    @PostConstruct
    fun init() {
        instance = this
        airDataRepository = this.airDataRepository
    }
    fun dealStringMsg(msg: String, ctx: ChannelHandlerContext?) {
    override var tag: String = "走航监测"
    override fun dealStringMsg(msg: String, ctx: ChannelHandlerContext?) {
        //解包
        val packageData = airDataDecoder.decode(msg)
        if (bccCheck(msg)) {
            //保存
            DeviceSession.saveDevice(packageData.deviceCode, ctx)
            deviceSession.saveDevice(packageData.deviceCode, ctx)
            saveToTxt(msg)
            saveToDataBase(packageData)
        } else {
            println("------${TAG}数据BCC校验失败,舍弃 [${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}]")
        }
    }
    /**
     * ä¿å­˜è‡³txt文本
     */
    fun saveToTxt(msg: String) {
        val data = "[${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}]data=> $msg"
        FileUtil.instance?.saveObdData(data)
    }
    /**
@@ -75,7 +66,7 @@
    /**
     * BCC(异或校验)
     */
    fun bccCheck(msg: String):Boolean {
    fun bccCheck(msg: String): Boolean {
        val list = mutableListOf<String>().apply {
            addAll(dataPackageDecoder.toStringList(msg))
        }
@@ -97,11 +88,11 @@
    }
    fun encodeToBytes(msg:String): ByteArray {
    fun encodeToBytes(msg: String): ByteArray {
        val list = msg.split(" ")
        val bytes = ByteArray(list.size)
        for (i in 0 until list.size) {
            bytes[i]=list[i].toInt(16).toByte()
            bytes[i] = list[i].toInt(16).toByte()
        }
        return bytes