From 2bf337ab074f1c047c4f4e4df29ed994d3decaf1 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期二, 17 九月 2019 13:57:32 +0800 Subject: [PATCH] 修改一些属性及类的命名 --- src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/RealTimeDataDecoderImpl.kt | 15 ++-- src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/DataUnitDecoderImpl.kt | 7 - src/test/kotlin/com/flightfeather/obd/socket/decoder/VehicleDataDecoderTest.kt | 117 +++++++++++++++++++++++++++++++++++++++ src/main/kotlin/com/flightfeather/obd/socket/eunm/ObdDataType.kt | 4 src/main/kotlin/com/flightfeather/obd/socket/bean/EngineDataStream.kt | 2 src/main/kotlin/com/flightfeather/obd/socket/bean/SupplementDataStream.kt | 2 src/main/kotlin/com/flightfeather/obd/socket/decoder/RealTimeDataDecoder.kt | 4 src/main/kotlin/com/flightfeather/obd/socket/bean/ObdData.kt | 2 src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt | 6 +- 9 files changed, 136 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt b/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt index 0ecfaae..b3ba4d2 100644 --- a/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt +++ b/src/main/kotlin/com/flightfeather/obd/repository/impl/ObdDataDaoImpl.kt @@ -71,13 +71,13 @@ obdTime = it.time obdProtocol = it.obdProtocol obdMil = it.obdMil - obdIdCode = it.obdSoftwareCode + obdIdCode = it.obdCrn obdVerificationCode = it.obdCvn obdFaultCodeNum = it.obdFaultCodeNum obdFaultCode = it.obdFaultCode } } - is EngineDataFlow -> { + is EngineDataStream -> { obdData.apply { obdTime = it.time obdLng = it.obdLong @@ -101,7 +101,7 @@ obdTotalMileage = it.obdTotalMileage } } - is SupplementDataFlow -> { + is SupplementDataStream -> { obdData.apply { obdTime = it.time obdEngineTorqueMode = it.obdEngineTorqueMode?.toString() diff --git a/src/main/kotlin/com/flightfeather/obd/socket/bean/EngineDataFlow.kt b/src/main/kotlin/com/flightfeather/obd/socket/bean/EngineDataStream.kt similarity index 97% rename from src/main/kotlin/com/flightfeather/obd/socket/bean/EngineDataFlow.kt rename to src/main/kotlin/com/flightfeather/obd/socket/bean/EngineDataStream.kt index fe81661..2a6dce2 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/bean/EngineDataFlow.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/bean/EngineDataStream.kt @@ -9,7 +9,7 @@ * 瀹炴椂淇℃伅[RealTimeData] 涓殑鍙戝姩鏈烘暟鎹祦 * 鏁版嵁绫诲瀷 @see [ObdDataType.EngineDataFlow] */ -class EngineDataFlow( +class EngineDataStream( time: Date?, serialNum: Int? ) : RealTimeData(time, serialNum) { diff --git a/src/main/kotlin/com/flightfeather/obd/socket/bean/ObdData.kt b/src/main/kotlin/com/flightfeather/obd/socket/bean/ObdData.kt index c986cc6..a53bcd7 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/bean/ObdData.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/bean/ObdData.kt @@ -19,7 +19,7 @@ var diagnosisSupportStatus: String? = null//璇婃柇鏀寔鐘舵�� var diagnosisReadyStatus: String? = null//璇婃柇灏辩华鐘舵�� var obdVin: String? = null - var obdSoftwareCode: String? = null//杞欢鏍囧畾璇嗗埆鍙� + var obdCrn: String? = null//杞欢鏍囧畾璇嗗埆鍙� var obdCvn: String? = null//鏍囧畾楠岃瘉鐮� var IUPR:String?=null//瀹氫箟鍙傝�� SAE J 1979-DA 琛� G11 var obdFaultCodeNum: Int? = null//鏁呴殰鐮佹�绘暟: 鏈夋晥鍊艰寖鍥达細0~253锛屸��0xFE鈥濊〃绀烘棤鏁堛�� diff --git a/src/main/kotlin/com/flightfeather/obd/socket/bean/SupplementDataFlow.kt b/src/main/kotlin/com/flightfeather/obd/socket/bean/SupplementDataStream.kt similarity index 98% rename from src/main/kotlin/com/flightfeather/obd/socket/bean/SupplementDataFlow.kt rename to src/main/kotlin/com/flightfeather/obd/socket/bean/SupplementDataStream.kt index 4460b73..8e1157b 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/bean/SupplementDataFlow.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/bean/SupplementDataStream.kt @@ -45,7 +45,7 @@ * 鏁版嵁鑼冨洿锛�-273~1734.96875鈩� * 鈥�0xFF,0xFF鈥濊〃绀烘棤鏁� */ -class SupplementDataFlow( +class SupplementDataStream( time: Date?, serialNum: Int? ) : RealTimeData(time, serialNum) { diff --git a/src/main/kotlin/com/flightfeather/obd/socket/decoder/RealTimeDataDecoder.kt b/src/main/kotlin/com/flightfeather/obd/socket/decoder/RealTimeDataDecoder.kt index 24e41e0..a724c1e 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/decoder/RealTimeDataDecoder.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/decoder/RealTimeDataDecoder.kt @@ -14,9 +14,9 @@ fun getObdData(time: Date?, serialNum: Int, b: List<String>): ObdData? - fun getEngineDataFlow(time: Date?, serialNum: Int, b: List<String>): EngineDataFlow? + fun getEngineDataStream(time: Date?, serialNum: Int, b: List<String>): EngineDataStream? - fun getSupplementDataFlow(time: Date?, serialNum: Int, b: List<String>): SupplementDataFlow? + fun getSupplementDataStream(time: Date?, serialNum: Int, b: List<String>): SupplementDataStream? /** * 鏍规嵁浼犲叆鐨勫垪琛紝榛樿绗竴浣嶄负 [ObdDataType]锛岃繑鍥炲搴旂殑鏁版嵁鍒楄〃 diff --git a/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/DataUnitDecoderImpl.kt b/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/DataUnitDecoderImpl.kt index ff459d2..02ad0de 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/DataUnitDecoderImpl.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/DataUnitDecoderImpl.kt @@ -4,11 +4,8 @@ import com.flightfeather.obd.socket.decoder.DataUnitDecoder import com.flightfeather.obd.socket.decoder.RealTimeDataDecoder import com.flightfeather.obd.socket.eunm.ObdDataType -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.stereotype.Component import java.lang.StringBuilder import java.util.* -import javax.annotation.PostConstruct /** * @author riku @@ -72,8 +69,8 @@ if (data.isNotEmpty()) { val r = when (data[0].toInt(16)) { ObdDataType.ObdData.value -> realTimeDataDecoder.getObdData(time, serialNum, data) - ObdDataType.EngineDataFlow.value -> realTimeDataDecoder.getEngineDataFlow(time, serialNum, data) - ObdDataType.SupplementDataFlow.value -> realTimeDataDecoder.getSupplementDataFlow(time, serialNum, data) + ObdDataType.EngineDataFlow.value -> realTimeDataDecoder.getEngineDataStream(time, serialNum, data) + ObdDataType.SupplementDataFlow.value -> realTimeDataDecoder.getSupplementDataStream(time, serialNum, data) else -> null } diff --git a/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/RealTimeDataDecoderImpl.kt b/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/RealTimeDataDecoderImpl.kt index e1067f6..a1a4e22 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/RealTimeDataDecoderImpl.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/RealTimeDataDecoderImpl.kt @@ -1,11 +1,10 @@ package com.flightfeather.obd.socket.decoder.impl -import com.flightfeather.obd.socket.bean.EngineDataFlow +import com.flightfeather.obd.socket.bean.EngineDataStream import com.flightfeather.obd.socket.bean.ObdData -import com.flightfeather.obd.socket.bean.SupplementDataFlow +import com.flightfeather.obd.socket.bean.SupplementDataStream import com.flightfeather.obd.socket.decoder.RealTimeDataDecoder import com.flightfeather.obd.socket.eunm.ObdDataType -import org.springframework.stereotype.Component import java.util.* /** @@ -53,7 +52,7 @@ diagnosisSupportStatus = "${dataList[2]}${dataList[3]}".toIntOrNull(16)?.toString(2) diagnosisReadyStatus = "${dataList[4]}${dataList[5]}".toIntOrNull(16)?.toString(2) obdVin = vin.toString() - obdSoftwareCode = softwareCode.toString() + obdCrn = softwareCode.toString() obdCvn = cvn.toString() this.IUPR = IUPR.toString() obdFaultCodeNum = faultCodeNum @@ -64,7 +63,7 @@ } } - override fun getEngineDataFlow(time: Date?, serialNum: Int, b: List<String>): EngineDataFlow? { + override fun getEngineDataStream(time: Date?, serialNum: Int, b: List<String>): EngineDataStream? { val dataList = mutableListOf<String>().apply { addAll(b) } if (b.isNotEmpty()) { //鍘婚櫎 淇℃伅绫诲瀷鏍囧織 @@ -72,7 +71,7 @@ } return if (dataList.size >= 37) { - EngineDataFlow(time, serialNum).apply { + EngineDataStream(time, serialNum).apply { obdSpeed = "${dataList[0]}${dataList[1]}".toIntOrNull(16)?.toDouble()?.times((1 / 256).toDouble()) obdAirPressure = dataList[2].toIntOrNull(16)?.toDouble()?.times(0.5) obdEngineTorque = dataList[3].toIntOrNull(16)?.minus(125)?.toDouble()?.div(100) @@ -98,7 +97,7 @@ } } - override fun getSupplementDataFlow(time: Date?, serialNum: Int, b: List<String>): SupplementDataFlow? { + override fun getSupplementDataStream(time: Date?, serialNum: Int, b: List<String>): SupplementDataStream? { val dataList = mutableListOf<String>().apply { addAll(b) } if (b.isNotEmpty()) { //鍘婚櫎 淇℃伅绫诲瀷鏍囧織 @@ -106,7 +105,7 @@ } return if (dataList.size >= 17) { - SupplementDataFlow(time, serialNum).apply { + SupplementDataStream(time, serialNum).apply { obdEngineTorqueMode = dataList[0].toIntOrNull(16) obdAcceleratorPedal = dataList[1].toIntOrNull(16)?.toDouble()?.times(0.4)?.div(100) obdTotalOilConsumption = "${dataList[2]}${dataList[3]}${dataList[4]}${dataList[5]}".toIntOrNull(16)?.toDouble()?.times(0.5) diff --git a/src/main/kotlin/com/flightfeather/obd/socket/eunm/ObdDataType.kt b/src/main/kotlin/com/flightfeather/obd/socket/eunm/ObdDataType.kt index 1a9b434..9b9c944 100644 --- a/src/main/kotlin/com/flightfeather/obd/socket/eunm/ObdDataType.kt +++ b/src/main/kotlin/com/flightfeather/obd/socket/eunm/ObdDataType.kt @@ -8,9 +8,9 @@ * 瀹炴椂淇℃伅[RealTimeData]鍜岃ˉ鍙戜俊鎭痆ReplacementData] 涓殑鏁版嵁绫诲瀷 * 绫诲瀷缂栫爜 璇存槑 * 0x01 OBD 淇℃伅 @see [com.flightfeather.obd.socket.bean.ObdData] - * 0x02 鏁版嵁娴佷俊鎭� @see[com.flightfeather.obd.socket.bean.EngineDataFlow] + * 0x02 鏁版嵁娴佷俊鎭� @see[com.flightfeather.obd.socket.bean.EngineDataStream] * 0x03-0x7F 棰勭暀 - * 0x80 琛ュ厖鏁版嵁娴� @see[com.flightfeather.obd.socket.bean.SupplementDataFlow] + * 0x80 琛ュ厖鏁版嵁娴� @see[com.flightfeather.obd.socket.bean.SupplementDataStream] * 0x81~0xFE 鐢ㄦ埛鑷畾涔� */ enum class ObdDataType constructor(val value: Int){ diff --git a/src/test/kotlin/com/flightfeather/obd/socket/decoder/VehicleDataDecoderTest.kt b/src/test/kotlin/com/flightfeather/obd/socket/decoder/VehicleDataDecoderTest.kt new file mode 100644 index 0000000..8eac338 --- /dev/null +++ b/src/test/kotlin/com/flightfeather/obd/socket/decoder/VehicleDataDecoderTest.kt @@ -0,0 +1,117 @@ +package com.flightfeather.obd.socket.decoder + +import com.flightfeather.obd.domain.entity.ObdData +import com.flightfeather.obd.socket.bean.* +import com.flightfeather.obd.socket.eunm.ObdCommandUnit +import org.junit.Test + +/** + * @author riku + * Date: 2019/9/17 + */ +class VehicleDataDecoderTest { + + private val vehicleDataDecoder = VehicleDataDecoder() + + @Test + fun decode() { + val msg = "23 23 02 31 37 36 39 31 35 33 31 39 30 39 31 32 30 30 30 36 01 01 00 42 13 09 11 08 3b 36 02 00 3a 00 00 d4 00 00 12 c0 09 5e 00 c8 00 c8 00 15 a9 00 00 00 00 00 00 73 00 00 00 b9 1b c7 00 2e e1 24 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 dc" + val msg2 = "23 23 02 31 37 36 39 31 35 33 31 39 30 39 31 32 30 30 30 36 01 01 00 42 13 09 11 08 3b 36 02 00 3b 00 00 d4 00 00 12 c0 09 5e 00 c8 00 c8 00 15 a9 00 00 00 00 00 00 73 00 00 00 b9 1b c7 00 2e e1 25 00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 dc" + val packageData = vehicleDataDecoder.decode(msg2) + + val obdData = ObdData().apply { + obdVin = packageData.deviceCode + } + when (packageData.commandUnit) { + ObdCommandUnit.CarRegister.value -> { + packageData.dataUnit.forEach { + when (it) { + is CarRegisterData -> { + obdData.apply { + obdTime = it.time + } + } + } + } + } + ObdCommandUnit.RealTimeData.value, + ObdCommandUnit.ReplacementData.value -> { + packageData.dataUnit.forEach { + when (it) { + is com.flightfeather.obd.socket.bean.ObdData -> { + obdData.apply { + obdTime = it.time + obdProtocol = it.obdProtocol + obdMil = it.obdMil + obdIdCode = it.obdCrn + obdVerificationCode = it.obdCvn + obdFaultCodeNum = it.obdFaultCodeNum + obdFaultCode = it.obdFaultCode + } + } + is EngineDataStream -> { + obdData.apply { + obdTime = it.time + obdLng = it.obdLong + obdLat = it.obdLat + obdSpeed = it.obdSpeed?.toInt() + obdAirPressure = it.obdAirPressure + obdEngineTorque = it.obdEngineTorque + obdFrictionTorque = it.obdFrictionTorque + obdEngineRpm = it.obdEngineRpm?.toInt() + obdStartFuelFlow = it.obdEngineFuelFlow + obdScrUpstreamNo = it.obdScrUpstreamNo + obdScrDownstreamNo = it.obdScrDownstreamNo + obdRemainReactant = it.obdRemainReactant + obdAirInput = it.obdAirInput + obdScrInputTemp = it.obdScrInputTemp + obdScrOutputTemp = it.obdScrOutputTemp + obdDpf = it.obdDpf + obdEngineCoolantTemp = it.obdEngineCoolantTemp + obdFuelLevel = it.obdFuelLevel + obdLocationStatus = it.obdLocationStatus + obdTotalMileage = it.obdTotalMileage + } + } + is SupplementDataStream -> { + obdData.apply { + obdTime = it.time + obdEngineTorqueMode = it.obdEngineTorqueMode?.toString() + obdAcceleratorPedal = it.obdAcceleratorPedal + obdTotalOilConsumption = it.obdTotalOilConsumption + obdUreaBoxTemp = it.obdUreaBoxTemp + obdUreaVolume = it.obdUreaVolume?.toInt() + obdTotalUreaConsume = it.obdTotalUreaConsume + obdDpfTemp = it.obdDpfTemp +// obdFirmwareVersion = + } + } + } + } + + } + ObdCommandUnit.CarLogOut.value -> { + packageData.dataUnit.forEach { + when (it) { + is CarLogOutData -> { + obdData.apply { + obdTime = it.time + } + } + } + } + } + ObdCommandUnit.TimeCalibration.value -> { + packageData.dataUnit.forEach { + when (it) { + is TimeCalibrationData -> { + obdData.apply { + obdTime = it.time + } + } + } + } + } + } + } +} \ No newline at end of file -- Gitblit v1.9.3