SomethingLinuxReader
This commit is contained in:
parent
516a2b740c
commit
ec535cfb66
|
@ -28,11 +28,14 @@ public class AutoFormatReader implements CANLineReader {
|
||||||
String firstLine = Files.lines(Paths.get(fileName)).findFirst().get();
|
String firstLine = Files.lines(Paths.get(fileName)).findFirst().get();
|
||||||
if (!firstLine.contains(PcanTrcReader2_0.FILEVERSION)
|
if (!firstLine.contains(PcanTrcReader2_0.FILEVERSION)
|
||||||
&& !firstLine.contains(CanHackerReader.HEADER)
|
&& !firstLine.contains(CanHackerReader.HEADER)
|
||||||
|
&& !firstLine.contains(SomethingLinuxReader.HEADER)
|
||||||
&& !firstLine.contains(BusMasterReader.HEADER)
|
&& !firstLine.contains(BusMasterReader.HEADER)
|
||||||
)
|
)
|
||||||
throw new IllegalStateException(PcanTrcReader2_0.FILEVERSION + " expected in first line");
|
throw new IllegalStateException(PcanTrcReader2_0.FILEVERSION + " expected in first line");
|
||||||
if (firstLine.contains(CanHackerReader.HEADER)) {
|
if (firstLine.contains(CanHackerReader.HEADER)) {
|
||||||
delegate = CanHackerReader.INSTANCE;
|
delegate = CanHackerReader.INSTANCE;
|
||||||
|
} else if (firstLine.contains(SomethingLinuxReader.HEADER)) {
|
||||||
|
delegate = SomethingLinuxReader.INSTANCE;
|
||||||
} else if (firstLine.contains(BusMasterReader.HEADER)) {
|
} else if (firstLine.contains(BusMasterReader.HEADER)) {
|
||||||
delegate = BusMasterReader.INSTANCE;
|
delegate = BusMasterReader.INSTANCE;
|
||||||
} else if (firstLine.contains("1.1")) {
|
} else if (firstLine.contains("1.1")) {
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.rusefi.can.reader.impl;
|
||||||
|
|
||||||
|
import com.rusefi.can.CANPacket;
|
||||||
|
import com.rusefi.can.reader.CANLineReader;
|
||||||
|
|
||||||
|
public enum SomethingLinuxReader implements CANLineReader {
|
||||||
|
INSTANCE;
|
||||||
|
|
||||||
|
public static final CharSequence HEADER = ") can0 ";
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CANPacket readLine(String line, String fileName, int lineIndex) {
|
||||||
|
String trimmed = line.trim();
|
||||||
|
if (trimmed.isEmpty())
|
||||||
|
return null;
|
||||||
|
String[] tokens = trimmed.split("\\s+");
|
||||||
|
if (tokens.length != 3)
|
||||||
|
throw new IllegalStateException("Three tokens expected [" + trimmed + "]");
|
||||||
|
|
||||||
|
String time = tokens[0].substring(1, tokens[0].length() - 2);
|
||||||
|
|
||||||
|
String mainToken = tokens[2];
|
||||||
|
int poundIndex = mainToken.indexOf('#');
|
||||||
|
int sid = Integer.parseInt(mainToken.substring(0, poundIndex), 16);
|
||||||
|
|
||||||
|
String hex = mainToken.substring(poundIndex + 1);
|
||||||
|
if (hex.length() % 2 != 0)
|
||||||
|
throw new IllegalStateException("Even length expected " + hex);
|
||||||
|
byte[] data = new byte[hex.length() / 2];
|
||||||
|
for (int i = 0 ;i < data.length; i++) {
|
||||||
|
String twoSymbols = hex.substring(2 * i, 2 * i + 2);
|
||||||
|
data[i] = (byte) Integer.parseInt(twoSymbols, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new CANPacket(Double.parseDouble(time), sid, data);
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,6 +8,8 @@ public class RallySandbox {
|
||||||
"C:\\stuff\\rusefi_documentation\\OEM-Docs\\Mitsubishi\\2009-rallyart",
|
"C:\\stuff\\rusefi_documentation\\OEM-Docs\\Mitsubishi\\2009-rallyart",
|
||||||
Launcher.FILENAME_SUFFIX_PROPERTY,
|
Launcher.FILENAME_SUFFIX_PROPERTY,
|
||||||
".log",
|
".log",
|
||||||
|
// Launcher.FILENAME_FILTER_PROPERTY,
|
||||||
|
// "auto",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.rusefi.can.reader.impl;
|
||||||
|
|
||||||
|
import com.rusefi.can.CANPacket;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.StringReader;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class SomethingLinuxReaderTest {
|
||||||
|
@Test
|
||||||
|
public void test() throws IOException {
|
||||||
|
String line = "(1666123717.446553) can0 215#09344FA34F8E01";
|
||||||
|
BufferedReader reader = new BufferedReader(new StringReader(line));
|
||||||
|
CANPacket packet = SomethingLinuxReader.INSTANCE.readLine(reader.readLine());
|
||||||
|
assertEquals(packet.getData().length, 7);
|
||||||
|
assertEquals(packet.getData()[0], 0x09);
|
||||||
|
assertEquals(packet.getData()[6], 0x01);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue