diff --git a/arduino-core/src/processing/app/Serial.java b/arduino-core/src/processing/app/Serial.java index 04803f36381..25e10bfd5ce 100644 --- a/arduino-core/src/processing/app/Serial.java +++ b/arduino-core/src/processing/app/Serial.java @@ -52,27 +52,35 @@ public Serial() throws SerialException { 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 { @@ -96,7 +104,7 @@ public static boolean touchForCDCReset(String iname) throws SerialException { } } - 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); @@ -112,7 +120,7 @@ private Serial(String iname, int irate, char iparity, int idatabits, float istop 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));