Skip to content

Commit

Permalink
per-board generic option in config file boards.txt for disabling cont…
Browse files Browse the repository at this point in the history
…rol of dtr+rts from IDE, allowing board specific use of these lines for example for reset or programming mode. Currently used by esp8266/Arduino.
  • Loading branch information
d-a-v authored and cmaglie committed Jul 18, 2017
1 parent c7b412c commit 125846f
Showing 1 changed file with 14 additions and 6 deletions.
20 changes: 14 additions & 6 deletions arduino-core/src/processing/app/Serial.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,27 +64,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 {
Expand All @@ -108,7 +116,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);
Expand All @@ -126,7 +134,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));
Expand Down

0 comments on commit 125846f

Please sign in to comment.