progress with restart!

This commit is contained in:
rusefi 2020-05-16 11:17:42 -04:00
parent fdbe067a03
commit 1062d38cdb
4 changed files with 16 additions and 10 deletions

View File

@ -231,7 +231,7 @@ public class BinaryProtocol implements BinaryProtocolCommands {
if (!checkResponseCode(response, RESPONSE_OK) || response.length != requestSize + 1) {
String code = (response == null || response.length == 0) ? "empty" : "code " + response[0];
String info = response == null ? "null" : (code + " size " + response.length);
String info = response == null ? "NO RESPONSE" : (code + " size " + response.length);
logger.error("readImage: Something is wrong, retrying... " + info);
continue;
}

View File

@ -43,7 +43,7 @@ public class SerialConnector implements LinkConnector {
LinkManager.execute(new Runnable() {
@Override
public void run() {
MessagesCentral.getInstance().postMessage(getClass(), "Restarting serial IO");
MessagesCentral.getInstance().postMessage(SerialConnector.this.getClass(), "Restarting serial IO");
portHolder.close();
portHolder.connectAndReadConfiguration();
}

View File

@ -18,19 +18,23 @@ import org.jetbrains.annotations.NotNull;
public class SerialIoStreamJSerialComm implements IoStream {
private boolean isClosed;
private SerialPort sp;
private final String port;
SerialIoStreamJSerialComm(SerialPort sp) {
SerialIoStreamJSerialComm(SerialPort sp, String port) {
this.sp = sp;
this.port = port;
}
@Override
public void setInputListener(DataListener listener) {
sp.addDataListener(new SerialPortDataListener() {
@Override
public int getListeningEvents() { return SerialPort.LISTENING_EVENT_DATA_AVAILABLE; }
public int getListeningEvents() {
return SerialPort.LISTENING_EVENT_DATA_AVAILABLE;
}
@Override
public void serialEvent(SerialPortEvent event)
{
public void serialEvent(SerialPortEvent event) {
if (event.getEventType() != SerialPort.LISTENING_EVENT_DATA_AVAILABLE)
return;
int bytesAvailable = sp.bytesAvailable();
@ -54,8 +58,10 @@ public class SerialIoStreamJSerialComm implements IoStream {
@Override
public void close() {
FileLog.LOGGER.info(port + ": Closing port...");
isClosed = true;
sp.closePort();
FileLog.LOGGER.info(port + ": Closed port.");
}
@Override
@ -78,6 +84,6 @@ public class SerialIoStreamJSerialComm implements IoStream {
SerialPort sp = SerialPort.getCommPort(port);
sp.setBaudRate(baudRate);
sp.openPort();
return new SerialIoStreamJSerialComm(sp);
return new SerialIoStreamJSerialComm(sp, port);
}
}

View File

@ -100,8 +100,6 @@ public class Launcher {
getConfig().getRoot().setProperty(PORT_KEY, port);
getConfig().getRoot().setProperty(SPEED_KEY, BaudRateHolder.INSTANCE.baudRate);
LinkManager.start(port);
engineSnifferPanel = new EngineSnifferPanel(getConfig().getRoot().getChild("digital_sniffer"));
if (!LinkManager.isLogViewerMode(port))
engineSnifferPanel.setOutpinListener(LinkManager.engineState);
@ -271,7 +269,8 @@ public class Launcher {
System.err.println("rusEFI not detected");
return;
}
new SerialConnector(autoDetectedPort).connect(new ConnectionStateListener() {
LinkManager.start(autoDetectedPort);
LinkManager.connector.connect(new ConnectionStateListener() {
@Override
public void onConnectionEstablished() {
SensorLogger.init();
@ -287,6 +286,7 @@ public class Launcher {
private static void invokeCallback(String callback) {
if (callback == null)
return;
System.out.println("Invoking " + callback);
ExecHelper.submitAction(new Runnable() {
@Override
public void run() {