riku
2019-09-18 259512005923831d1221bd49568751bf519dc020
1. 修复保存obd 信息体方法未被调用的问题
已修改4个文件
48 ■■■■ 文件已修改
src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/DataUnitDecoderImpl.kt 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/kotlin/com/flightfeather/obd/Test.kt 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test/kotlin/com/flightfeather/obd/socket/decoder/VehicleDataDecoderTest.kt 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/kotlin/com/flightfeather/obd/socket/MessageManager.kt
@@ -2,7 +2,10 @@
import com.flightfeather.obd.common.utils.FileUtil
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
@@ -84,7 +87,20 @@
        when (packageData.commandUnit) {
            ObdCommandUnit.CarRegister.value -> instance.carLoginRepository.saveCarLogin(packageData)
            ObdCommandUnit.RealTimeData.value,
            ObdCommandUnit.ReplacementData.value -> instance.dataStreamRepository.saveDataStream(packageData)
            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)
        }
    }
src/main/kotlin/com/flightfeather/obd/socket/decoder/impl/DataUnitDecoderImpl.kt
@@ -32,10 +32,10 @@
        val time = decodeDataTime(b)
        //国标法: 起始字节为7 开始的2个字节表示 流水号
        val serialNum = "${b[7]}${b[8]}".toInt(16)
//        val serialNum = "${b[7]}${b[8]}".toInt(16)
        //上海法: 起始字节为6 开始的2个字节表示 流水号
//        val serialNum = "${b[6]}${b[7]}".toInt(16)
        val serialNum = "${b[6]}${b[7]}".toInt(16)
        val dataList = mutableListOf<String>().apply { addAll(b) }
        //删去前6位时间
@@ -48,15 +48,15 @@
        * 删去流水号,得到信息标志与信息体的组合
        * (国标法:去除前6位时间后,起始字节为1 开始的2个字节表示 流水号)
        */
        if (dataList.size >= 2) dataList.removeAt(1)
        if (dataList.size >= 2) dataList.removeAt(1)
//        if (dataList.size >= 2) dataList.removeAt(1)
//        if (dataList.size >= 2) dataList.removeAt(1)
        /*
        * 删去流水号,得到信息标志与信息体的组合
        * (上海法:去除前6位时间后,起始字节为0 开始的2个字节表示 流水号)
        */
//        if (dataList.isNotEmpty()) dataList.removeAt(0)
//        if (dataList.isNotEmpty()) dataList.removeAt(0)
        if (dataList.isNotEmpty()) dataList.removeAt(0)
        if (dataList.isNotEmpty()) dataList.removeAt(0)
        val resultList = mutableListOf<RealTimeData>()
src/test/kotlin/com/flightfeather/obd/Test.kt
@@ -14,7 +14,8 @@
    @Test
    fun foo1() {
        val b = ByteArray(20) {8}
        println(b[18])
        val a = 1
        println(a.toString(2))
    }
    @Test
@@ -127,4 +128,15 @@
        println(SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cal.time))
    }
    @Test
    fun f0012() {
        ByteArray(3).forEach {
            println(it)
            return
        }
        println("end")
    }
}
src/test/kotlin/com/flightfeather/obd/socket/decoder/VehicleDataDecoderTest.kt
@@ -15,9 +15,9 @@
    @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 msg = "23 23 02 31 37 36 39 31 35 33 31 39 30 39 31 32 30 30 30 32 01 01 00 85 13 09 12 15 01 2d 00 08 01 00 01 60 00 00 00 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 07 00 00 04 20 00 00 04 20 00 00 c1 13 00 00 00 73 00 00 30 28 00 00 30 25 00 00 30 56 1d"
        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 packageData = vehicleDataDecoder.decode(msg)
        val obdData = ObdData().apply {
            obdVin = packageData.deviceCode