From 259512005923831d1221bd49568751bf519dc020 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 18 九月 2019 23:18:10 +0800 Subject: [PATCH] 1. 修复保存obd 信息体方法未被调用的问题 --- src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt b/src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt index 626194f..e57d960 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt @@ -1,10 +1,14 @@ package com.flightfeather.obd.socket import com.flightfeather.obd.common.utils.FileUtil -import com.flightfeather.obd.repository.ObdDataRepository +import com.flightfeather.obd.repository.* +import com.flightfeather.obd.socket.bean.EngineDataStream +import com.flightfeather.obd.socket.bean.ObdInfo import com.flightfeather.obd.socket.bean.ObdPackageData +import com.flightfeather.obd.socket.bean.SupplementDataStream import com.flightfeather.obd.socket.decoder.VehicleDataDecoder import com.flightfeather.obd.socket.decoder.impl.DataPackageDecoderImpl +import com.flightfeather.obd.socket.eunm.ObdCommandUnit import io.netty.channel.ChannelHandlerContext import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Component @@ -27,6 +31,16 @@ @Autowired lateinit var obdDataRepository: ObdDataRepository + @Autowired + lateinit var originDataRepository: OriginDataRepository + @Autowired + lateinit var obdInfoRepository: ObdInfoRepository + @Autowired + lateinit var dataStreamRepository: DataStreamRepository + @Autowired + lateinit var carLogoutRepository: CarLogoutRepository + @Autowired + lateinit var carLoginRepository: CarLoginRepository val vehicleDataDecoder = VehicleDataDecoder() val dataPackageDecoder = DataPackageDecoderImpl() @@ -35,6 +49,11 @@ fun init() { instance = this instance.obdDataRepository = this.obdDataRepository + instance.originDataRepository = this.originDataRepository + instance.obdInfoRepository = this.obdInfoRepository + instance.dataStreamRepository = this.dataStreamRepository + instance.carLogoutRepository = this.carLogoutRepository + instance.carLoginRepository = this.carLoginRepository } fun dealStringMsg(msg: String, ctx: ChannelHandlerContext?) { @@ -45,7 +64,7 @@ val packageData = vehicleDataDecoder.decode(msg) //淇濆瓨 DeviceSession.saveDevice(packageData.deviceCode, ctx) - saveToDataBase(packageData) + saveToDataBase(packageData, msg) } else { println("------鏁版嵁BCC鏍¢獙澶辫触锛岃垗寮� [${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}]") } @@ -62,8 +81,28 @@ /** * 淇濆瓨鑷虫暟鎹簱 */ - fun saveToDataBase(packageData: ObdPackageData) { + fun saveToDataBase(packageData: ObdPackageData, msg: String) { instance.obdDataRepository.saveObdData(packageData) + instance.originDataRepository.saveOriginData(packageData, msg) + when (packageData.commandUnit) { + ObdCommandUnit.CarRegister.value -> instance.carLoginRepository.saveCarLogin(packageData) + ObdCommandUnit.RealTimeData.value, + ObdCommandUnit.ReplacementData.value -> { + var done = false + for (i in 0 until packageData.dataUnit.size) { + when (packageData.dataUnit[i]) { + is ObdInfo -> instance.obdInfoRepository.saveObdInfo(packageData) + is EngineDataStream, + is SupplementDataStream -> { + instance.dataStreamRepository.saveDataStream(packageData) + done = true + } + } + if (done) break + } + } + ObdCommandUnit.CarLogOut.value-> instance.carLogoutRepository.saveCarLogout(packageData) + } } /** -- Gitblit v1.9.3