refactoring

This commit is contained in:
rusefi 2019-06-03 21:57:17 -04:00
parent 337865ffb5
commit 2182f051cb
4 changed files with 39 additions and 34 deletions

View File

@ -7,8 +7,6 @@ import com.rusefi.io.CommunicationLoggingHolder;
import com.rusefi.io.ConnectionStateListener;
import com.opensr5.io.DataListener;
import com.rusefi.io.IoStream;
import jssc.SerialPort;
import jssc.SerialPortException;
import org.jetbrains.annotations.Nullable;
/**
@ -49,26 +47,10 @@ public class PortHolder {
* @return true if everything fine
*/
private boolean open(String port, final DataListener listener) {
SerialPort serialPort = new SerialPort(port);
try {
FileLog.MAIN.logLine("Opening " + port + " @ " + BAUD_RATE);
boolean opened = serialPort.openPort();//Open serial port
if (!opened)
FileLog.MAIN.logLine(port + ": not opened!");
setupPort(serialPort, BAUD_RATE);
} catch (SerialPortException e) {
FileLog.MAIN.logLine("ERROR " + e.getMessage());
SerialIoStreamJSSC stream = SerialIoStreamJSSC.open(port, BAUD_RATE, FileLog.LOGGER);
if (stream == null)
return false;
}
FileLog.MAIN.logLine("PortHolder: Sleeping a bit");
try {
// todo: why is this delay here? add a comment
Thread.sleep(200);
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}
SerialIoStreamJSSC stream = new SerialIoStreamJSSC(serialPort, FileLog.LOGGER);
synchronized (portLock) {
this.serialPort = stream;
portLock.notifyAll();
@ -79,16 +61,6 @@ public class PortHolder {
return bp.connectAndReadConfiguration(listener);
}
public static void setupPort(SerialPort serialPort, int baudRate) throws SerialPortException {
serialPort.setRTS(false);
serialPort.setDTR(false);
serialPort.setParams(baudRate, 8, 1, 0);//Set params.
int mask = SerialPort.MASK_RXCHAR;
//Set the prepared mask
serialPort.setEventsMask(mask);
serialPort.setFlowControlMode(0);
}
public void close() {
synchronized (portLock) {
if (serialPort != null) {

View File

@ -9,6 +9,8 @@ import jssc.SerialPortException;
import java.io.IOException;
import static com.rusefi.io.serial.PortHolder.BAUD_RATE;
/**
* (c) Andrey Belomutskiy
* 5/11/2015.
@ -23,6 +25,39 @@ public class SerialIoStreamJSSC implements IoStream {
this.logger = logger;
}
public static void setupPort(SerialPort serialPort, int baudRate) throws SerialPortException {
serialPort.setRTS(false);
serialPort.setDTR(false);
serialPort.setParams(baudRate, 8, 1, 0);//Set params.
int mask = SerialPort.MASK_RXCHAR;
//Set the prepared mask
serialPort.setEventsMask(mask);
serialPort.setFlowControlMode(0);
}
public static SerialIoStreamJSSC open(String port, int baudRate, Logger logger) {
SerialPort serialPort = new SerialPort(port);
try {
FileLog.MAIN.logLine("Opening " + port + " @ " + baudRate);
boolean opened = serialPort.openPort();//Open serial port
if (!opened)
FileLog.MAIN.logLine(port + ": not opened!");
SerialIoStreamJSSC.setupPort(serialPort, baudRate);
} catch (SerialPortException e) {
FileLog.MAIN.logLine("ERROR " + e.getMessage());
return null;
}
FileLog.MAIN.logLine("PortHolder: Sleeping a bit");
try {
// todo: why is this delay here? add a comment
Thread.sleep(200);
} catch (InterruptedException e) {
throw new IllegalStateException(e);
}
SerialIoStreamJSSC stream = new SerialIoStreamJSSC(serialPort, logger);
return stream;
}
@Override
public void close() {
isClosed = true;

View File

@ -6,7 +6,6 @@ import com.rusefi.binaryprotocol.BinaryProtocol;
import com.opensr5.io.ConfigurationImageFile;
import com.rusefi.binaryprotocol.BinaryProtocolHolder;
import com.rusefi.io.LinkManager;
import com.rusefi.io.serial.PortHolder;
import com.rusefi.io.serial.SerialIoStreamJSSC;
import com.rusefi.ui.RecentCommands;
import com.rusefi.ui.SettingsTab;
@ -67,7 +66,7 @@ public class UploadChanges {
if (!opened) {
logger.error("failed to open " + port);
}
PortHolder.setupPort(serialPort, 38400);
SerialIoStreamJSSC.setupPort(serialPort, 38400);
logger.info("Configuration looks good!");
final ConfigurationImage ci1 = ConfigurationImageFile.readFromFile("rus_saved.bin");

View File

@ -7,7 +7,6 @@ import com.romraider.editor.ecu.ECUEditor;
import com.rusefi.RomRaiderWrapper;
import com.rusefi.UploadChanges;
import com.rusefi.config.Fields;
import com.rusefi.io.serial.PortHolder;
import com.rusefi.io.serial.SerialIoStreamJSSC;
import jssc.SerialPort;
@ -35,7 +34,7 @@ public class BinaryProtocolCmdSandbox {
}
BinaryProtocol bp = BinaryProtocolHolder.create(logger, new SerialIoStreamJSSC(serialPort, logger));
PortHolder.setupPort(serialPort, 38400);
SerialIoStreamJSSC.setupPort(serialPort, 38400);
logger.info("Binary looks good!");
bp.switchToBinaryProtocol();