can-log-tools/src/main/java/com/rusefi/can/reader/impl/PcanTrcReader2_0.java

33 lines
1.0 KiB
Java
Raw Normal View History

2022-02-15 13:17:28 -08:00
package com.rusefi.can.reader.impl;
2022-02-02 16:48:51 -08:00
import com.rusefi.can.CANPacket;
2022-02-15 13:17:28 -08:00
import com.rusefi.can.reader.CANLineReader;
2022-02-02 16:48:51 -08:00
2022-11-12 19:13:12 -08:00
/**
* @see PcanTrcReader1_1 for version 1.1 format
* TODO: merge these two?
*/
public enum PcanTrcReader2_0 implements CANLineReader {
2022-02-15 13:17:28 -08:00
INSTANCE;
2022-11-12 19:13:12 -08:00
public static final String FILEVERSION = ";$FILEVERSION";
2022-02-02 19:37:29 -08:00
@Override
2023-12-15 07:38:17 -08:00
public CANPacket readLine(String line, String fileName, int lineIndex) {
2022-02-15 13:17:28 -08:00
line = line.trim();
2022-11-12 19:13:12 -08:00
if (line.startsWith(FILEVERSION) && !line.startsWith(FILEVERSION + "=2.0"))
2023-07-19 20:29:47 -07:00
throw new IllegalStateException("Unexpected fileversion " + line + " in " + fileName);
2022-02-15 13:17:28 -08:00
if (line.startsWith(";"))
2022-02-02 19:37:29 -08:00
return null;
2022-02-15 13:17:28 -08:00
String[] tokens = line.split("\\s+");
double timeStamp = Double.parseDouble(tokens[1]);
int sid = Integer.parseInt(tokens[3], 16);
int size = Integer.parseInt(tokens[5]);
2022-02-02 16:48:51 -08:00
2022-02-15 13:17:28 -08:00
byte[] data = CANLineReader.readHexArray(tokens, 6, size);
2022-02-02 16:48:51 -08:00
return new CANPacket(timeStamp, sid, data);
2022-02-02 19:37:29 -08:00
}
2022-02-02 16:48:51 -08:00
}