refactoring

This commit is contained in:
rusefi 2020-08-15 20:12:41 -04:00
parent 760e55e8d2
commit ce402a7cae
3 changed files with 11 additions and 16 deletions

View File

@ -7,6 +7,7 @@ import com.rusefi.NamedThreadFactory;
import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.binaryprotocol.BinaryProtocolState; import com.rusefi.binaryprotocol.BinaryProtocolState;
import com.rusefi.core.EngineState; import com.rusefi.core.EngineState;
import com.rusefi.core.MessagesCentral;
import com.rusefi.io.serial.StreamConnector; import com.rusefi.io.serial.StreamConnector;
import com.rusefi.io.serial.SerialIoStreamJSerialComm; import com.rusefi.io.serial.SerialIoStreamJSerialComm;
import com.rusefi.io.tcp.TcpConnector; import com.rusefi.io.tcp.TcpConnector;
@ -205,6 +206,7 @@ public class LinkManager implements Closeable {
Callable<IoStream> streamFactory = new Callable<IoStream>() { Callable<IoStream> streamFactory = new Callable<IoStream>() {
@Override @Override
public IoStream call() { public IoStream call() {
MessagesCentral.getInstance().postMessage(getClass(), "Opening port: " + port);
Socket socket; Socket socket;
try { try {
int portPart = TcpConnector.getTcpPort(port); int portPart = TcpConnector.getTcpPort(port);
@ -220,12 +222,13 @@ public class LinkManager implements Closeable {
} }
}; };
setConnector(new StreamConnector(this, port, streamFactory)); setConnector(new StreamConnector(this, streamFactory));
isSimulationMode = true; isSimulationMode = true;
} else { } else {
Callable<IoStream> ioStreamCallable = new Callable<IoStream>() { Callable<IoStream> ioStreamCallable = new Callable<IoStream>() {
@Override @Override
public IoStream call() { public IoStream call() {
MessagesCentral.getInstance().postMessage(getClass(), "Opening port: " + port);
IoStream stream = ((Callable<IoStream>) () -> SerialIoStreamJSerialComm.openPort(port)).call(); IoStream stream = ((Callable<IoStream>) () -> SerialIoStreamJSerialComm.openPort(port)).call();
if (stream == null) { if (stream == null) {
// error already reported // error already reported
@ -234,7 +237,7 @@ public class LinkManager implements Closeable {
return stream; return stream;
} }
}; };
setConnector(new StreamConnector(this, port, ioStreamCallable)); setConnector(new StreamConnector(this, ioStreamCallable));
} }
} }

View File

@ -3,7 +3,6 @@ package com.rusefi.io.serial;
import com.devexperts.logging.Logging; import com.devexperts.logging.Logging;
import com.rusefi.Callable; import com.rusefi.Callable;
import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.binaryprotocol.BinaryProtocol;
import com.rusefi.core.MessagesCentral;
import com.rusefi.io.ConnectionStateListener; import com.rusefi.io.ConnectionStateListener;
import com.opensr5.io.DataListener; import com.opensr5.io.DataListener;
import com.rusefi.io.IoStream; import com.rusefi.io.IoStream;
@ -25,30 +24,23 @@ public class PortHolder {
private static final Logging log = getLogging(PortHolder.class); private static final Logging log = getLogging(PortHolder.class);
private final DataListener dataListener; private final DataListener dataListener;
private final Callable<IoStream> ioStreamCallable; private final Callable<IoStream> ioStreamFactory;
private final LinkManager linkManager; private final LinkManager linkManager;
public ConnectionStateListener listener; public ConnectionStateListener listener;
private final Object portLock = new Object(); private final Object portLock = new Object();
private final String port;
@Nullable @Nullable
private BinaryProtocol bp; private BinaryProtocol bp;
protected PortHolder(String port, LinkManager linkManager, Callable<IoStream> ioStreamCallable) { protected PortHolder(LinkManager linkManager, Callable<IoStream> ioStreamFactory) {
this.port = port;
this.linkManager = linkManager; this.linkManager = linkManager;
dataListener = freshData -> linkManager.getEngineState().processNewData(new String(freshData), LinkManager.ENCODER); dataListener = freshData -> linkManager.getEngineState().processNewData(new String(freshData), LinkManager.ENCODER);
this.ioStreamCallable = ioStreamCallable; this.ioStreamFactory = ioStreamFactory;
} }
boolean connectAndReadConfiguration() { boolean connectAndReadConfiguration() {
if (port == null) IoStream stream = ioStreamFactory.call();
return false;
MessagesCentral.getInstance().postMessage(getClass(), "Opening port: " + port);
IoStream stream = ioStreamCallable.call();
if (stream == null) { if (stream == null) {
// error already reported // error already reported
return false; return false;

View File

@ -21,10 +21,10 @@ public class StreamConnector implements LinkConnector {
private final PortHolder portHolder; private final PortHolder portHolder;
private final LinkManager linkManager; private final LinkManager linkManager;
public StreamConnector(LinkManager linkManager, String portName, Callable<IoStream> ioStreamCallable) { public StreamConnector(LinkManager linkManager, Callable<IoStream> ioStreamCallable) {
this.linkManager = linkManager; this.linkManager = linkManager;
portHolder = new PortHolder(portName, linkManager, ioStreamCallable); portHolder = new PortHolder(linkManager, ioStreamCallable);
} }
@Override @Override