From cf721a95f17dff3fb81cdce0de2d4ae444edbedf Mon Sep 17 00:00:00 2001 From: rusefi Date: Wed, 21 Jun 2017 07:49:37 +0300 Subject: [PATCH] refactoring --- .../src/com/rusefi/binaryprotocol/BinaryProtocol.java | 9 ++++++--- java_console/io/src/com/rusefi/io/IoStream.java | 11 +++++++---- .../io/src/com/rusefi/io/serial/SerialIoStream.java | 2 +- .../src/com/rusefi/io/tcp/BinaryProtocolServer.java | 3 ++- .../io/src/com/rusefi/io/tcp/TcpConnector.java | 2 +- .../io/src/com/rusefi/io/tcp/TcpIoStream.java | 2 +- .../io/tcp/test/BinaryProtocolServerSandbox.java | 7 ++++--- 7 files changed, 22 insertions(+), 14 deletions(-) diff --git a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java index 57c8ef823b..205530ae92 100644 --- a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java +++ b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java @@ -54,8 +54,11 @@ public class BinaryProtocol implements BinaryProtocolCommands { private ConfigurationImage controller; public boolean isClosed; - // todo: make a singleton? - public static byte[] currentOutputs; + /** + * Snapshot of current gauges status + * @see BinaryProtocolCommands#COMMAND_OUTPUTS + */ + public byte[] currentOutputs; public BinaryProtocol(final Logger logger, IoStream stream) { this.logger = logger; @@ -70,7 +73,7 @@ public class BinaryProtocol implements BinaryProtocolCommands { incomingData.addData(freshData); } }; - stream.setDataListener(streamDataListener); + stream.setInputListener(streamDataListener); } public BinaryProtocol(Logger logger, SerialPort serialPort) { diff --git a/java_console/io/src/com/rusefi/io/IoStream.java b/java_console/io/src/com/rusefi/io/IoStream.java index 76b6395a81..292317c60e 100644 --- a/java_console/io/src/com/rusefi/io/IoStream.java +++ b/java_console/io/src/com/rusefi/io/IoStream.java @@ -6,7 +6,7 @@ import com.opensr5.io.WriteStream; import java.io.IOException; /** - * Physical controller communication level + * Physical bi-directional controller communication level * * (c) Andrey Belomutskiy * @@ -16,11 +16,14 @@ public interface IoStream extends WriteStream { /** * @param listener would be invoked from unknown implementation-dependent thread */ - void setDataListener(DataListener listener); + void setInputListener(DataListener listener); + + boolean isClosed(); void close(); + /** + * purges pending input and output + */ void purge(); - - boolean isClosed(); } diff --git a/java_console/io/src/com/rusefi/io/serial/SerialIoStream.java b/java_console/io/src/com/rusefi/io/serial/SerialIoStream.java index cbeb3acd75..a090fd1b54 100644 --- a/java_console/io/src/com/rusefi/io/serial/SerialIoStream.java +++ b/java_console/io/src/com/rusefi/io/serial/SerialIoStream.java @@ -59,7 +59,7 @@ public class SerialIoStream implements IoStream { } @Override - public void setDataListener(DataListener listener) { + public void setInputListener(DataListener listener) { try { SerialPortReader reader = new SerialPortReader(serialPort, listener); serialPort.addEventListener(reader.getSerialPortEventListener()); diff --git a/java_console/io/src/com/rusefi/io/tcp/BinaryProtocolServer.java b/java_console/io/src/com/rusefi/io/tcp/BinaryProtocolServer.java index 99aee372ba..22d8a05ed2 100644 --- a/java_console/io/src/com/rusefi/io/tcp/BinaryProtocolServer.java +++ b/java_console/io/src/com/rusefi/io/tcp/BinaryProtocolServer.java @@ -136,7 +136,8 @@ public class BinaryProtocolServer implements BinaryProtocolCommands { byte[] response = new byte[1 + Fields.TS_OUTPUT_SIZE]; response[0] = (byte) TS_OK.charAt(0); - byte[] currentOutputs = BinaryProtocol.currentOutputs; + BinaryProtocol bp = BinaryProtocolHolder.getInstance().get(); + byte[] currentOutputs = bp.currentOutputs; if (currentOutputs != null) System.arraycopy(currentOutputs, 1, response, 1, Fields.TS_OUTPUT_SIZE); BinaryProtocol.sendPacket(response, FileLog.LOGGER, stream); diff --git a/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java b/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java index 4acf52fccc..16c96d89a7 100644 --- a/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java +++ b/java_console/io/src/com/rusefi/io/tcp/TcpConnector.java @@ -107,7 +107,7 @@ public class TcpConnector implements LinkConnector { rb.append(new String(freshData), LinkManager.ENCODER); } }; -// ioStream.setDataListener(listener1); +// ioStream.setInputListener(listener1); bp = new BinaryProtocol(FileLog.LOGGER, new TcpIoStream(stream, os)); diff --git a/java_console/io/src/com/rusefi/io/tcp/TcpIoStream.java b/java_console/io/src/com/rusefi/io/tcp/TcpIoStream.java index d32de41e23..9d26528369 100644 --- a/java_console/io/src/com/rusefi/io/tcp/TcpIoStream.java +++ b/java_console/io/src/com/rusefi/io/tcp/TcpIoStream.java @@ -44,7 +44,7 @@ public class TcpIoStream implements IoStream { } @Override - public void setDataListener(final DataListener listener) { + public void setInputListener(final DataListener listener) { LinkManager.IO_EXECUTOR.execute(new Runnable() { @Override public void run() { diff --git a/java_console/io/src/com/rusefi/io/tcp/test/BinaryProtocolServerSandbox.java b/java_console/io/src/com/rusefi/io/tcp/test/BinaryProtocolServerSandbox.java index 3155c9166e..1dee1e587c 100644 --- a/java_console/io/src/com/rusefi/io/tcp/test/BinaryProtocolServerSandbox.java +++ b/java_console/io/src/com/rusefi/io/tcp/test/BinaryProtocolServerSandbox.java @@ -14,9 +14,10 @@ import java.io.ByteArrayOutputStream; class BinaryProtocolServerSandbox { public static void main(String[] args) { TcpIoStream stream = new TcpIoStream(new ByteArrayInputStream(new byte[0]), new ByteArrayOutputStream()); - BinaryProtocolHolder.instance = new BinaryProtocol(FileLog.LOGGER, stream); - BinaryProtocolHolder.getInstance().get().setController(new ConfigurationImage(new byte[14008])); - BinaryProtocol.currentOutputs = new byte[1 + Fields.TS_OUTPUT_SIZE]; + BinaryProtocol bp = new BinaryProtocol(FileLog.LOGGER, stream); + BinaryProtocolHolder.instance = bp; + bp.setController(new ConfigurationImage(new byte[14008])); + bp.currentOutputs = new byte[1 + Fields.TS_OUTPUT_SIZE]; BinaryProtocolServer.start(); } } \ No newline at end of file