Skip to content

Commit 7130bef

Browse files
author
jantje
committed
#444 and also skip resetting com port if comport does not exist ...
And no com port actions have been specified
1 parent 8cc3ff8 commit 7130bef

File tree

4 files changed

+26
-32
lines changed

4 files changed

+26
-32
lines changed

it.baeyens.arduino.common/src/it/baeyens/arduino/common/Const.java

+5-20
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,7 @@ public class Const {
4949
public static final String ACTION_SIZE = "RECIPE.SIZE";
5050
public static final String ACTION_AR = "RECIPE.AR";
5151
public static final String ACTION_C_COMBINE = "RECIPE.C.COMBINE";
52-
// public static final String ENV_KEY_RECIPE_C_O_PATTERN = ENV_KEY_BOARD_START + "RECIPE.C.O.PATTERN";
53-
// public static final String ENV_KEY_RECIPE_CPP_O_PATTERN = ENV_KEY_BOARD_START + "RECIPE.CPP.O.PATTERN";
54-
// public static final String ENV_KEY_RECIPE_S_O_PATTERN = ENV_KEY_BOARD_START + "RECIPE.S.O.PATTERN";
55-
// public static final String ENV_KEY_RECIPE_OBJCOPY_HEX_PATTERN = ENV_KEY_BOARD_START + "RECIPE.OBJCOPY.HEX.PATTERN";
56-
// public static final String ENV_KEY_RECIPE_OBJCOPY_EEP_PATTERN = ENV_KEY_BOARD_START + "RECIPE.OBJCOPY.EEP.PATTERN";
57-
// public static final String ENV_KEY_RECIPE_SIZE_PATTERN = ENV_KEY_BOARD_START + "RECIPE.SIZE.PATTERN";
58-
// public static final String ENV_KEY_RECIPE_AR_PATTERN = ENV_KEY_BOARD_START + "RECIPE.AR.PATTERN";
59-
// public static final String ENV_KEY_RECIPE_C_COMBINE_PATTERN = ENV_KEY_BOARD_START + "RECIPE.C.COMBINE.PATTERN";
52+
6053

6154
// Describers
6255
public static final String ENV_PROTOCOL = "PROTOCOL";
@@ -109,7 +102,6 @@ public class Const {
109102
public static final String ENV_KEY_BOARD_START = "A" + DOT;
110103

111104
public static final String ENV_KEY_PROGRAMMERS_START = ENV_KEY_BOARD_START + "PROGRAMMERS.";
112-
// public static final String ENV_KEY_BOARD_UPLOAD_PROTOCOL = ENV_KEY_BOARD_START + "UPLOAD.PROTOCOL";
113105
public static final String WORKSPACE_LIB_FOLDER = LIBRARY_PATH_SUFFIX + "/";
114106
public static final String ARDUINO_IDE_VERSION = "ArduinoIDEVersion";
115107
public static final String ENV_KEY_NAME = ENV_KEY_BOARD_START + "NAME";
@@ -131,9 +123,9 @@ public class Const {
131123
public static final String ENV_KEY_UPLOAD_USE_1200BPS_TOUCH = ENV_KEY_BOARD_START + "UPLOAD.USE_1200BPS_TOUCH";
132124
public static final String ENV_KEY_UPLOAD_DISABLE_FLUSHING = ENV_KEY_BOARD_START + "UPLOAD.DISABLE_FLUSHING";
133125
public static final String ENV_KEY_WAIT_FOR_UPLOAD_PORT = ENV_KEY_BOARD_START + "UPLOAD.WAIT_FOR_UPLOAD_PORT";
134-
// public static final String ENV_KEY_UPLOAD_TOOL = ENV_KEY_BOARD_START + "UPLOAD.TOOL";
135-
// public static final String ENV_KEY_PROGRAM_TOOL = ENV_KEY_BOARD_START + "PROGRAM.TOOL";
136-
// public static final String ENV_KEY_UPLOAD_PROTOCOL = ENV_KEY_BOARD_START + "UPLOAD.PROTOCOL";
126+
public static final String ENV_KEY_RESET_BEFORE_UPLOAD = ENV_KEY_BOARD_START + "UPLOAD.FORCE_RESET_BEFORE_UPLOAD";
127+
128+
137129
public static final String ENV_KEY_BUILD_CORE = ENV_KEY_BOARD_START + "BUILD.CORE";
138130
public static final String ENV_KEY_BUILD_CORE_PATH = ENV_KEY_BOARD_START + "BUILD.CORE.PATH";
139131
public static final String ENV_KEY_USE_ARCHIVER = ENV_KEY_BOARD_START + "BUILD.USE_ARCHIVER";
@@ -172,14 +164,7 @@ public class Const {
172164
public static final String ENV_KEY_GNU_SERIAL_PORTS = "gnu.io.rxtx.SerialPorts";
173165
public static final String ENV_VALUE_GNU_SERIAL_PORTS_LINUX = "/dev/ttyACM0:/dev/ttyACM1:/dev/ttyACM2:/dev/ttyACM3:/dev/ttyUSB0::/dev/ttyUSB1::/dev/ttyUSB2::/dev/ttyUSB3::/dev/ttyUSB4";
174166
// scope stuff
175-
public static final short SCOPE_START_DATA = (short) 0xCDAB;// This is the
176-
// 205 171 or
177-
// -85 -51
178-
// flag that
179-
// indicates
180-
// scope data is
181-
// following
182-
// least significant first 0xCDAB;
167+
public static final short SCOPE_START_DATA = (short) 0xCDAB;// This is the 205 171 or -85 -51 flag that indicates scope data is following least significant first 0xCDAB;
183168
public static final String EXAMPLE_FOLDER_NAME = "examples";
184169

185170
public static final String PRE_PROCESSING_BOARDS_TXT = "pre_processing_boards.txt";

it.baeyens.arduino.core/src/it/baeyens/arduino/communication/ArduinoSerial.java

+19-12
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,7 @@ public static boolean ToggleDTR(Serial serialPort, long delay) {
151151
/**
152152
* reset the arduino
153153
*
154-
* This method takes into account all the setting to be able to reset all different types of arduino If RXTXDisabled is set the method only return
155-
* the parameter Comport
154+
* This method takes into account all the setting to be able to reset all different types of arduino If RXTXDisabled is set the method only return the parameter Comport
156155
*
157156
* @param project
158157
* The project related to the com port to reset
@@ -161,22 +160,30 @@ public static boolean ToggleDTR(Serial serialPort, long delay) {
161160
* @return The com port to upload to
162161
*/
163162
public static String makeArduinoUploadready(MessageConsoleStream console, IProject project, String configName, String comPort) {
164-
boolean use_1200bps_touch = Common.getBuildEnvironmentVariable(project, configName, Const.ENV_KEY_UPLOAD_USE_1200BPS_TOUCH, Const.FALSE)
165-
.equalsIgnoreCase(Const.TRUE);
166-
boolean bWaitForUploadPort = Common.getBuildEnvironmentVariable(project, configName, Const.ENV_KEY_WAIT_FOR_UPLOAD_PORT, Const.FALSE)
167-
.equalsIgnoreCase(Const.TRUE);
163+
boolean use_1200bps_touch = Common.getBuildEnvironmentVariable(project, configName, Const.ENV_KEY_UPLOAD_USE_1200BPS_TOUCH, Const.FALSE).equalsIgnoreCase(Const.TRUE);
164+
boolean bWaitForUploadPort = Common.getBuildEnvironmentVariable(project, configName, Const.ENV_KEY_WAIT_FOR_UPLOAD_PORT, Const.FALSE).equalsIgnoreCase(Const.TRUE);
168165
String boardName = Common.getBuildEnvironmentVariable(project, configName, Const.ENV_KEY_JANTJE_BOARD_NAME, Const.EMPTY_STRING);
169-
String uploadProtocol = Common.getBuildEnvironmentVariable(project, configName, Const.get_ENV_KEY_PROTOCOL(Const.ACTION_UPLOAD),
170-
Const.EMPTY_STRING);
171-
/* Teensy uses halfkay protocol and does not require a reset */
172-
if (uploadProtocol.equalsIgnoreCase("halfkay")) { //$NON-NLS-1$
166+
String uploadProtocol = Common.getBuildEnvironmentVariable(project, configName, Const.get_ENV_KEY_PROTOCOL(Const.ACTION_UPLOAD), Const.EMPTY_STRING);
167+
168+
boolean bResetPortForUpload = Common.getBuildEnvironmentVariable(project, configName, Const.ENV_KEY_RESET_BEFORE_UPLOAD, Const.TRUE).equalsIgnoreCase(Const.TRUE);
169+
170+
/*
171+
* Teensy uses halfkay protocol and does not require a reset in boards.txt use Const.ENV_KEY_RESET_BEFORE_UPLOAD=FALSE to disable a reset
172+
*/
173+
if (!bResetPortForUpload || uploadProtocol.equalsIgnoreCase("halfkay")) { //$NON-NLS-1$
174+
return comPort;
175+
}
176+
/*
177+
* if the com port can not be found and no specific com port reset method is specified assume it is a network port and do not try to reset
178+
*/
179+
Vector<String> originalPorts = Serial.list();
180+
if (!originalPorts.contains(comPort) && !use_1200bps_touch && !bWaitForUploadPort) {
181+
console.println(Messages.ArduinoSerial_comport_not_found);
173182
return comPort;
174183
}
175-
/* end of Teensy and halfkay */
176184
if (use_1200bps_touch) {
177185
// Get the list of the current com serial ports
178186
console.println(Messages.ArduinoSerial_Using_12000bps_touch);
179-
Vector<String> originalPorts = Serial.list();
180187

181188
if (!reset_Arduino_by_baud_rate(comPort, 1200, 300) /* || */) {
182189
console.println(Messages.ArduinoSerial_reset_failed);

it.baeyens.arduino.core/src/it/baeyens/arduino/communication/Messages.java

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public class Messages extends NLS {
77
public static String ArduinoSerial_23;
88
public static String ArduinoSerial_Comport_Appeared_and_disappeared;
99
public static String ArduinoSerial_Comport_is_not_behaving_as_expected;
10+
public static String ArduinoSerial_comport_not_found;
1011
public static String ArduinoSerial_Comport_reset_took;
1112
public static String ArduinoSerial_Continuing_to_use;
1213
public static String ArduinoSerial_Ending_reset;

it.baeyens.arduino.core/src/it/baeyens/arduino/communication/messages.properties

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
ArduinoSerial_23=Toggling DTR
22
ArduinoSerial_Comport_Appeared_and_disappeared=Comport appeared and disappeared with same name
33
ArduinoSerial_Comport_is_not_behaving_as_expected=Comport is not behaving as expected
4+
ArduinoSerial_comport_not_found=Com port not found. Skipping reset
45
ArduinoSerial_Comport_reset_took=Comport reset took
56
ArduinoSerial_Continuing_to_use=Continuing to use
67
ArduinoSerial_Ending_reset=Ending reset

0 commit comments

Comments
 (0)