packet decoding

This commit is contained in:
rusefillc 2022-02-03 00:12:35 -05:00
parent 9dfe9cde8d
commit fad12f1e95
4 changed files with 36 additions and 4 deletions

View File

@ -16,4 +16,12 @@ public class SensorValue {
public double getValue() {
return value;
}
@Override
public String toString() {
return "{" +
type +
", value=" + value +
'}';
}
}

View File

@ -1,8 +1,11 @@
package com.rusefi.can;
import com.rusefi.can.decoders.PacketDecoder;
import com.rusefi.can.decoders.bmw.BmwRegistry;
import com.rusefi.can.reader.CANoeReader;
import com.rusefi.can.writer.SteveWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
@ -12,8 +15,26 @@ public class Util {
List<CANPacket> packetList = reader.readFile("Log2.log");
SteveWriter writer = new SteveWriter("loggerProgram0.log");
writer.write(packetList);
// SteveWriter writer = new SteveWriter("loggerProgram0.log");
// writer.write(packetList);
FileWriter fw = new FileWriter("sensors.txt");
for (CANPacket packet : packetList) {
PacketDecoder decoder = BmwRegistry.INSTANCE.decoderMap.get(packet.getId());
if (decoder == null)
continue;
PacketPayload payload = decoder.decode(packet);
if (payload == null)
continue;
for (SensorValue value : payload.getValues()) {
fw.write(packet.getTimeStamp() + "," + value + "\n");
}
}
fw.close();
}
}

View File

@ -14,7 +14,10 @@ public class Bmw0AA extends AbstractPacketDecoder {
@Override
public PacketPayload decode(CANPacket packet) {
SensorValue pedal = new SensorValue(SensorType.PPS, packet.getUnsigned(3) * 0.39063);
SensorValue rpm = new SensorValue(SensorType.RPM, packet.getTwoBytes(4) * 0.25);
int rawRpm = packet.getTwoBytes(4);
if (rawRpm == 0xFFFF)
return null;
SensorValue rpm = new SensorValue(SensorType.RPM, rawRpm * 0.25);
return new PacketPayload(packet.getTimeStamp(), pedal, rpm);
}

View File

@ -6,7 +6,7 @@ import java.util.HashMap;
import java.util.Map;
public class BmwRegistry {
BmwRegistry INSTANCE = new BmwRegistry();
public static final BmwRegistry INSTANCE = new BmwRegistry();
public Map<Integer, PacketDecoder> decoderMap = new HashMap<>();