| | |
| | | |
| | | @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 |
| | |
| | | } |
| | | ObdCommandUnit.RealTimeData.value, |
| | | ObdCommandUnit.ReplacementData.value -> { |
| | | |
| | | packageData.dataUnit.forEach { |
| | | obdData.apply { |
| | | obdTime = it.time |
| | | } |
| | | when (it) { |
| | | is com.flightfeather.obd.socket.bean.ObdData -> { |
| | | is com.flightfeather.obd.socket.bean.ObdInfo -> { |
| | | obdData.apply { |
| | | obdTime = it.time |
| | | obdProtocol = it.obdProtocol |
| | | obdMil = it.obdMil |
| | | obdIdCode = it.obdCrn |
| | |
| | | } |
| | | is EngineDataStream -> { |
| | | obdData.apply { |
| | | obdTime = it.time |
| | | obdLng = it.obdLong |
| | | obdLat = it.obdLat |
| | | obdSpeed = it.obdSpeed?.toInt() |
| | |
| | | obdFrictionTorque = it.obdFrictionTorque |
| | | obdEngineRpm = it.obdEngineRpm?.toInt() |
| | | obdStartFuelFlow = it.obdEngineFuelFlow |
| | | obdScrUpstreamNo = it.obdScrUpstreamNo |
| | | obdScrDownstreamNo = it.obdScrDownstreamNo |
| | | obdScrUpstreamNo = it.obdScrUpstreamNox |
| | | obdScrDownstreamNo = it.obdScrDownstreamNox |
| | | obdRemainReactant = it.obdRemainReactant |
| | | obdAirInput = it.obdAirInput |
| | | obdScrInputTemp = it.obdScrInputTemp |
| | |
| | | } |
| | | is SupplementDataStream -> { |
| | | obdData.apply { |
| | | obdTime = it.time |
| | | obdEngineTorqueMode = it.obdEngineTorqueMode?.toString() |
| | | obdAcceleratorPedal = it.obdAcceleratorPedal |
| | | obdTotalOilConsumption = it.obdTotalOilConsumption |
| | |
| | | |
| | | } |
| | | 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 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |