proxy progress

This commit is contained in:
rusefi 2020-07-17 00:27:33 -04:00
parent 9e275bb253
commit 0d29842418
4 changed files with 33 additions and 9 deletions

View File

@ -16,6 +16,14 @@ public interface WriteStream {
write(new byte[]{value});
}
default void writeShort(int v) throws IOException {
byte[] array = new byte[2];
array[0] = (byte) ((v >>> 8) & 0xFF);
array[1] = (byte) ((v >>> 0) & 0xFF);
write(array);
}
default void writeInt(int v) throws IOException {
byte[] array = new byte[4];

View File

@ -81,6 +81,25 @@ public class BinaryProtocol implements BinaryProtocolCommands {
private List<StreamFile> compositeLogs = new ArrayList<>();
public static String findCommand(byte command) {
switch (command) {
case Fields.TS_CRC_CHECK_COMMAND:
return "CRC_CHECK";
case Fields.TS_BURN_COMMAND:
return "BURN";
case Fields.TS_HELLO_COMMAND:
return "HELLO";
case Fields.TS_READ_COMMAND:
return "READ";
case Fields.TS_GET_FIRMWARE_VERSION:
return "GET_FW_VERSION";
case Fields.TS_CHUNK_WRITE_COMMAND:
return "WRITE_CHUNK";
default:
return "command " + (char) + command + "/" + command;
}
}
private void createCompositesIfNeeded() {
if (!compositeLogs.isEmpty())
return;

View File

@ -1,6 +1,7 @@
package com.rusefi.io.tcp;
import com.opensr5.Logger;
import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.io.IoStream;
import java.io.ByteArrayInputStream;
@ -71,10 +72,9 @@ public class BinaryProtocolProxy {
DataInputStream dis = new DataInputStream(new ByteArrayInputStream(packet.getPacket()));
byte command = (byte) dis.read();
System.out.println("Relaying client command" + (char) command + "/" + command + " length=" + length);
System.out.println("Relaying client command " + BinaryProtocol.findCommand(command));
// sending proxies packet to controller
targetOutputStream.write(firstByte);
targetOutputStream.write(secondByte);
targetOutputStream.writeShort(length);
targetOutputStream.write(packet.getPacket());
targetOutputStream.writeInt(packet.getCrc());
}

View File

@ -3,10 +3,7 @@ package com.rusefi.io.tcp;
import com.opensr5.ConfigurationImage;
import com.opensr5.Logger;
import com.rusefi.Listener;
import com.rusefi.binaryprotocol.BinaryProtocolCommands;
import com.rusefi.binaryprotocol.BinaryProtocolState;
import com.rusefi.binaryprotocol.IncomingDataBuffer;
import com.rusefi.binaryprotocol.IoHelper;
import com.rusefi.binaryprotocol.*;
import com.rusefi.config.generated.Fields;
import com.rusefi.io.LinkManager;
import com.rusefi.io.commands.HelloCommand;
@ -126,7 +123,7 @@ public class BinaryProtocolServer implements BinaryProtocolCommands {
byte command = payload[0];
System.out.println("Got [" + (char) command + "/" + command + "] command");
System.out.println("Got [" + BinaryProtocol.findCommand(command));
if (command == Fields.TS_HELLO_COMMAND) {
new HelloCommand(logger, Fields.TS_SIGNATURE).handle(packet, stream);
@ -171,7 +168,7 @@ public class BinaryProtocolServer implements BinaryProtocolCommands {
} else {
unknownCommands.incrementAndGet();
new IllegalStateException().printStackTrace();
logger.info("Error: unknown command " + (char) command + "/" + command);
logger.info("Error: unexpected " + BinaryProtocol.findCommand(command));
}
}
}