un-breaking console

This commit is contained in:
rusefi 2020-05-16 13:11:40 -04:00
parent 7f92b3b40d
commit 02d4515b53
8 changed files with 26 additions and 11 deletions

View File

@ -4,6 +4,8 @@ import com.opensr5.Logger;
import com.rusefi.io.IoStream; import com.rusefi.io.IoStream;
import com.rusefi.io.LinkManager; import com.rusefi.io.LinkManager;
import java.util.Objects;
/** /**
* At any given moment of time JVM manages one communication stream * At any given moment of time JVM manages one communication stream
* *
@ -24,6 +26,7 @@ public enum BinaryProtocolHolder {
} }
public static BinaryProtocol getCurrentStreamState() { public static BinaryProtocol getCurrentStreamState() {
Objects.requireNonNull(LinkManager.connector, "connector");
return LinkManager.connector.getBinaryProtocol(); return LinkManager.connector.getBinaryProtocol();
} }
} }

View File

@ -9,7 +9,7 @@ import com.rusefi.binaryprotocol.BinaryProtocol;
public interface LinkConnector extends LinkDecoder { public interface LinkConnector extends LinkDecoder {
LinkConnector VOID = new LinkConnector() { LinkConnector VOID = new LinkConnector() {
@Override @Override
public void connect(ConnectionStateListener listener) { public void connectAndReadConfiguration(ConnectionStateListener listener) {
} }
@Override @Override
@ -31,7 +31,7 @@ public interface LinkConnector extends LinkDecoder {
} }
}; };
void connect(ConnectionStateListener listener); void connectAndReadConfiguration(ConnectionStateListener listener);
void send(String command, boolean fireEvent) throws InterruptedException; void send(String command, boolean fireEvent) throws InterruptedException;

View File

@ -135,6 +135,11 @@ public class LinkManager {
public static void startAndConnect(String port, ConnectionStateListener stateListener) { public static void startAndConnect(String port, ConnectionStateListener stateListener) {
FileLog.MAIN.logLine("LinkManager: Starting " + port); FileLog.MAIN.logLine("LinkManager: Starting " + port);
start(port);
connect(stateListener);
}
public static void start(String port) {
if (isLogViewerMode(port)) { if (isLogViewerMode(port)) {
connector = LinkConnector.VOID; connector = LinkConnector.VOID;
} else if (TcpConnector.isTcpPort(port)) { } else if (TcpConnector.isTcpPort(port)) {
@ -143,7 +148,6 @@ public class LinkManager {
} else { } else {
connector = new SerialConnector(port); connector = new SerialConnector(port);
} }
connect(stateListener);
} }
public static boolean isLogViewerMode(String port) { public static boolean isLogViewerMode(String port) {
@ -157,11 +161,7 @@ public class LinkManager {
public static void connect(ConnectionStateListener listener) { public static void connect(ConnectionStateListener listener) {
if (connector == null) if (connector == null)
throw new NullPointerException("connector"); throw new NullPointerException("connector");
connector.connect(listener); connector.connectAndReadConfiguration(listener);
}
public static void connect() {
connect(ConnectionStateListener.VOID);
} }
public static void send(String command, boolean fireEvent) throws InterruptedException { public static void send(String command, boolean fireEvent) throws InterruptedException {

View File

@ -20,7 +20,7 @@ public class SerialConnector implements LinkConnector {
} }
@Override @Override
public void connect(ConnectionStateListener listener) { public void connectAndReadConfiguration(ConnectionStateListener listener) {
FileLog.MAIN.logLine("SerialConnector: connecting"); FileLog.MAIN.logLine("SerialConnector: connecting");
portHolder.listener = listener; portHolder.listener = listener;
FileLog.MAIN.logLine("scheduleOpening"); FileLog.MAIN.logLine("scheduleOpening");

View File

@ -92,7 +92,7 @@ public class TcpConnector implements LinkConnector {
* this implementation is blocking * this implementation is blocking
*/ */
@Override @Override
public void connect(ConnectionStateListener listener) { public void connectAndReadConfiguration(ConnectionStateListener listener) {
FileLog.MAIN.logLine("Connecting to host=" + hostname + "/port=" + port); FileLog.MAIN.logLine("Connecting to host=" + hostname + "/port=" + port);
OutputStream os; OutputStream os;
BufferedInputStream stream; BufferedInputStream stream;

View File

@ -40,6 +40,16 @@ public class ConsoleTools {
} }
private static void saveBinaryConfig(String[] args) { private static void saveBinaryConfig(String[] args) {
if (args.length < 2) {
System.out.println("Please specify output file name for binary configuration");
System.exit(-1);
}
String autoDetectedPort = autoDetectPort();
if (autoDetectedPort == null)
return;
LinkManager.startAndConnect(autoDetectedPort, ConnectionStateListener.VOID);
} }

View File

@ -82,6 +82,8 @@ public class Launcher {
getConfig().getRoot().setProperty(PORT_KEY, port); getConfig().getRoot().setProperty(PORT_KEY, port);
getConfig().getRoot().setProperty(SPEED_KEY, BaudRateHolder.INSTANCE.baudRate); getConfig().getRoot().setProperty(SPEED_KEY, BaudRateHolder.INSTANCE.baudRate);
LinkManager.start(port);
engineSnifferPanel = new EngineSnifferPanel(getConfig().getRoot().getChild("digital_sniffer")); engineSnifferPanel = new EngineSnifferPanel(getConfig().getRoot().getChild("digital_sniffer"));
if (!LinkManager.isLogViewerMode(port)) if (!LinkManager.isLogViewerMode(port))
engineSnifferPanel.setOutpinListener(LinkManager.engineState); engineSnifferPanel.setOutpinListener(LinkManager.engineState);

View File

@ -65,7 +65,7 @@ public class MainFrame {
} }
}); });
LinkManager.connect(new ConnectionStateListener() { LinkManager.startAndConnect(Launcher.port, new ConnectionStateListener() {
@Override @Override
public void onConnectionFailed() { public void onConnectionFailed() {
} }