rusefi/java_console/io/src/main/java/com/rusefi/can232/CanPacket.java

45 lines
1002 B
Java

package com.rusefi.can232;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
public class CanPacket {
private final int id;
private final byte[] payload;
public CanPacket(int id, byte[] payload) {
this.id = id;
this.payload = payload;
}
@NotNull
static CanPacket parse(String string) {
String extId = string.substring(1, 9);
String len = string.substring(9, 10);
String payloadString = string.substring(10);
int id = Integer.parseInt(extId, 16);
byte[] payload = new byte[Integer.parseInt(len)];
CanPacket p = new CanPacket(id, payload);
return p;
}
public int getId() {
return id;
}
public byte[] getPayload() {
return payload;
}
@Override
public String toString() {
return "CanPacket{" +
"id=" + String.format("%x", id) +
", payload=" + Arrays.toString(payload) +
'}';
}
}