refactoring
This commit is contained in:
parent
760e55e8d2
commit
ce402a7cae
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue