diff --git a/arduino-core/src/processing/app/Serial.java b/arduino-core/src/processing/app/Serial.java index 6a984d2f7..3726f0535 100644 --- a/arduino-core/src/processing/app/Serial.java +++ b/arduino-core/src/processing/app/Serial.java @@ -64,27 +64,35 @@ public class Serial implements SerialPortEventListener { PreferencesData.getInteger("serial.debug_rate", 9600), PreferencesData.getNonEmpty("serial.parity", "N").charAt(0), PreferencesData.getInteger("serial.databits", 8), - PreferencesData.getFloat("serial.stopbits", 1)); + PreferencesData.getFloat("serial.stopbits", 1), + !BaseNoGui.getBoardPreferences().get("serial.disableRTS").equalsIgnoreCase("true"), + !BaseNoGui.getBoardPreferences().get("serial.disableDTR").equalsIgnoreCase("true")); } public Serial(int irate) throws SerialException { this(PreferencesData.get("serial.port"), irate, PreferencesData.getNonEmpty("serial.parity", "N").charAt(0), PreferencesData.getInteger("serial.databits", 8), - PreferencesData.getFloat("serial.stopbits", 1)); + PreferencesData.getFloat("serial.stopbits", 1), + !BaseNoGui.getBoardPreferences().get("serial.disableRTS").equalsIgnoreCase("true"), + !BaseNoGui.getBoardPreferences().get("serial.disableDTR").equalsIgnoreCase("true")); } public Serial(String iname, int irate) throws SerialException { this(iname, irate, PreferencesData.getNonEmpty("serial.parity", "N").charAt(0), PreferencesData.getInteger("serial.databits", 8), - PreferencesData.getFloat("serial.stopbits", 1)); + PreferencesData.getFloat("serial.stopbits", 1), + !BaseNoGui.getBoardPreferences().get("serial.disableRTS").equalsIgnoreCase("true"), + !BaseNoGui.getBoardPreferences().get("serial.disableDTR").equalsIgnoreCase("true")); } public Serial(String iname) throws SerialException { this(iname, PreferencesData.getInteger("serial.debug_rate", 9600), PreferencesData.getNonEmpty("serial.parity", "N").charAt(0), PreferencesData.getInteger("serial.databits", 8), - PreferencesData.getFloat("serial.stopbits", 1)); + PreferencesData.getFloat("serial.stopbits", 1), + !BaseNoGui.getBoardPreferences().get("serial.disableRTS").equalsIgnoreCase("true"), + !BaseNoGui.getBoardPreferences().get("serial.disableDTR").equalsIgnoreCase("true")); } public static boolean touchForCDCReset(String iname) throws SerialException { @@ -108,7 +116,7 @@ public class Serial implements SerialPortEventListener { } } - private Serial(String iname, int irate, char iparity, int idatabits, float istopbits) throws SerialException { + private Serial(String iname, int irate, char iparity, int idatabits, float istopbits, boolean setRTS, boolean setDTR) throws SerialException { //if (port != null) port.close(); //this.parent = parent; //parent.attach(this); @@ -126,7 +134,7 @@ public class Serial implements SerialPortEventListener { try { port = new SerialPort(iname); port.openPort(); - boolean res = port.setParams(irate, idatabits, stopbits, parity, true, true); + boolean res = port.setParams(irate, idatabits, stopbits, parity, setRTS, setDTR); if (!res) { System.err.println(format(tr("Error while setting serial port parameters: {0} {1} {2} {3}"), irate, iparity, idatabits, istopbits));