new headless feature coming

This commit is contained in:
rusefi 2020-05-16 01:14:44 -04:00
parent a0a163b8e5
commit c9409ce693
3 changed files with 34 additions and 9 deletions

View File

@ -7,6 +7,7 @@ import com.rusefi.io.LinkManager;
/** /**
* At any given moment of time JVM manages one communication stream * At any given moment of time JVM manages one communication stream
* *
* TODO: remove this dead class?
* *
* (c) Andrey Belomutskiy * (c) Andrey Belomutskiy
* 6/21/2017. * 6/21/2017.
@ -14,19 +15,15 @@ import com.rusefi.io.LinkManager;
public enum BinaryProtocolHolder { public enum BinaryProtocolHolder {
INSTANCE; INSTANCE;
private BinaryProtocol currentStream;
public static BinaryProtocolHolder getInstance() { public static BinaryProtocolHolder getInstance() {
return INSTANCE; return INSTANCE;
} }
public BinaryProtocol create(final Logger logger, IoStream stream) { public static BinaryProtocol create(final Logger logger, IoStream stream) {
BinaryProtocol result = new BinaryProtocol(logger, stream); return new BinaryProtocol(logger, stream);
currentStream = result;
return result;
} }
public BinaryProtocol getCurrentStreamState() { public static BinaryProtocol getCurrentStreamState() {
return LinkManager.connector.getBinaryProtocol(); return LinkManager.connector.getBinaryProtocol();
} }
} }

View File

@ -11,6 +11,7 @@ import com.rusefi.io.*;
import com.rusefi.io.serial.BaudRateHolder; import com.rusefi.io.serial.BaudRateHolder;
import com.rusefi.io.serial.SerialConnector; import com.rusefi.io.serial.SerialConnector;
import com.rusefi.io.serial.SerialIoStreamJSerialComm; import com.rusefi.io.serial.SerialIoStreamJSerialComm;
import com.rusefi.maintenance.ExecHelper;
import com.rusefi.maintenance.FirmwareFlasher; import com.rusefi.maintenance.FirmwareFlasher;
import com.rusefi.maintenance.VersionChecker; import com.rusefi.maintenance.VersionChecker;
import com.rusefi.ui.*; import com.rusefi.ui.*;
@ -48,7 +49,7 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
* @see EngineSnifferPanel * @see EngineSnifferPanel
*/ */
public class Launcher { public class Launcher {
public static final int CONSOLE_VERSION = 20200515; public static final int CONSOLE_VERSION = 20200516;
public static final String INI_FILE_PATH = System.getProperty("ini_file_path", ".."); public static final String INI_FILE_PATH = System.getProperty("ini_file_path", "..");
public static final String INPUT_FILES_PATH = System.getProperty("input_files_path", ".."); public static final String INPUT_FILES_PATH = System.getProperty("input_files_path", "..");
public static final String TOOLS_PATH = System.getProperty("tools_path", "."); public static final String TOOLS_PATH = System.getProperty("tools_path", ".");
@ -199,6 +200,7 @@ public class Launcher {
/** /**
* rusEfi console entry point * rusEfi console entry point
*
* @see StartupFrame if no parameters specified * @see StartupFrame if no parameters specified
*/ */
public static void main(final String[] args) throws Exception { public static void main(final String[] args) throws Exception {
@ -253,6 +255,17 @@ public class Launcher {
String onConnectedCallback = args.length > 1 ? args[1] : null; String onConnectedCallback = args.length > 1 ? args[1] : null;
String onDisconnectedCallback = args.length > 2 ? args[2] : null; String onDisconnectedCallback = args.length > 2 ? args[2] : null;
ConnectionStatusLogic.INSTANCE.addListener(new ConnectionStatusLogic.Listener() {
@Override
public void onConnectionStatus(boolean isConnected) {
if (isConnected) {
invokeCallback(onConnectedCallback);
} else {
invokeCallback(onDisconnectedCallback);
}
}
});
String autoDetectedPort = PortDetector.autoDetectSerial(); String autoDetectedPort = PortDetector.autoDetectSerial();
if (autoDetectedPort == null) { if (autoDetectedPort == null) {
System.err.println("rusEFI not detected"); System.err.println("rusEFI not detected");
@ -271,6 +284,21 @@ public class Launcher {
}); });
} }
private static void invokeCallback(String callback) {
if (callback == null)
return;
ExecHelper.submitAction(new Runnable() {
@Override
public void run() {
try {
Runtime.getRuntime().exec(callback);
} catch (IOException e) {
throw new IllegalStateException(e);
}
}
}, "callback");
}
private static int invokeCompileFileTool(String[] args) throws IOException { private static int invokeCompileFileTool(String[] args) throws IOException {
/** /**
* re-packaging array which contains input and output file names * re-packaging array which contains input and output file names

View File

@ -76,7 +76,7 @@ public class ExecHelper {
return error.toString(); return error.toString();
} }
protected static void submitAction(Runnable runnable, String threadName) { public static void submitAction(Runnable runnable, String threadName) {
Thread thread = new Thread(runnable, threadName); Thread thread = new Thread(runnable, threadName);
thread.setDaemon(true); thread.setDaemon(true);
thread.start(); thread.start();