diff --git a/io.sloeber.application/introContent.xml b/io.sloeber.application/introContent.xml
index f361ab437..d379c164a 100644
--- a/io.sloeber.application/introContent.xml
+++ b/io.sloeber.application/introContent.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/io.sloeber.application/plugin.xml b/io.sloeber.application/plugin.xml
index 9ceb4e218..f7a25e3ed 100644
--- a/io.sloeber.application/plugin.xml
+++ b/io.sloeber.application/plugin.xml
@@ -112,7 +112,7 @@
+ value="Sloeber, the Eclipse IDE for Arduino Developers
Info: https://eclipse.baeyens.it/
Source: https://github.com/jantje/arduino-eclipse-plugin
Binaries: https://eclipse.baeyens.it/download.php
Contributors (github users): jantje, brodykenrick, wimjongman, neuweiler,
darcade, amorellgarcia, MarceloLimori
https://github.com/jantje/arduino-eclipse-plugin/graphs/contributors">
myOptions;
@@ -144,7 +144,7 @@ public boolean equals(BoardDescriptor obj) {
if (!this.getUploadPort().equals(obj.getUploadPort())) {
return false;
}
- if (!this.getUploadProtocol().equals(obj.getUploadProtocol())) {
+ if (!this.getProgrammer().equals(obj.getProgrammer())) {
return false;
}
if (!this.getBoardID().equals(obj.getBoardID())) {
@@ -291,13 +291,12 @@ protected BoardDescriptor(ICConfigurationDescription confdesc) {
this.myTxtFile = new TxtFile(this.myreferencingBoardsFile);
this.myBoardID = myStorageNode.get(KEY_LAST_USED_BOARD, "");
this.myUploadPort = myStorageNode.get(KEY_LAST_USED_UPLOAD_PORT, "");
- this.myUploadProtocol = myStorageNode.get(KEY_LAST_USED_UPLOAD_PROTOCOL,
- Defaults.getDefaultUploadProtocol());
+ this.myProgrammer = myStorageNode.get(KEY_LAST_USED_UPLOAD_PROTOCOL, Defaults.getDefaultUploadProtocol());
this.myOptions = KeyValue.makeMap(myStorageNode.get(KEY_LAST_USED_BOARD_MENU_OPTIONS, new String()));
} else {
this.myUploadPort = Common.getBuildEnvironmentVariable(confdesc, ENV_KEY_JANTJE_UPLOAD_PORT, "");
- this.myUploadProtocol = Common.getBuildEnvironmentVariable(confdesc, JANTJE_ACTION_UPLOAD, "");
+ this.myProgrammer = Common.getBuildEnvironmentVariable(confdesc, JANTJE_ACTION_UPLOAD, "");
this.myreferencingBoardsFile = new File(
Common.getBuildEnvironmentVariable(confdesc, ENV_KEY_JANTJE_BOARDS_FILE, ""));
this.myBoardID = Common.getBuildEnvironmentVariable(confdesc, ENV_KEY_JANTJE_BOARD_ID, "");
@@ -357,7 +356,7 @@ public static List makeBoardDescriptors(File boardFile) {
*/
protected BoardDescriptor(File boardsFile, String boardID, Map options) {
this.myUploadPort = new String();
- this.myUploadProtocol = Defaults.getDefaultUploadProtocol();
+ this.myProgrammer = Defaults.getDefaultUploadProtocol();
this.myBoardID = boardID;
this.myOptions = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
this.myreferencingBoardsFile = boardsFile;
@@ -373,7 +372,7 @@ protected BoardDescriptor(File boardsFile, String boardID, Map o
protected BoardDescriptor(TxtFile txtFile, String boardID) {
this.myUploadPort = new String();
- this.myUploadProtocol = Defaults.getDefaultUploadProtocol();
+ this.myProgrammer = Defaults.getDefaultUploadProtocol();
this.myBoardID = boardID;
this.myOptions = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
this.myreferencingBoardsFile = txtFile.getTxtFile();
@@ -545,7 +544,7 @@ public void saveConfiguration(ICConfigurationDescription confDesc, IContributedE
this.myWorkSpaceLocation);
Common.setBuildEnvironmentVariable(contribEnv, confDesc, ENV_KEY_JANTJE_ECLIPSE_LOCATION,
this.myWorkEclipseLocation);
- Common.setBuildEnvironmentVariable(confDesc, JANTJE_ACTION_UPLOAD, this.myUploadProtocol);
+ Common.setBuildEnvironmentVariable(confDesc, JANTJE_ACTION_UPLOAD, this.myProgrammer);
if (this.myOptions != null) {
for (Map.Entry curoption : this.myOptions.entrySet()) {
Common.setBuildEnvironmentVariable(contribEnv, confDesc, MENUSELECTION + curoption.getKey(),
@@ -558,7 +557,7 @@ public void saveConfiguration(ICConfigurationDescription confDesc, IContributedE
myStorageNode.put(KEY_LAST_USED_BOARDS_FILE, getReferencingBoardsFile().toString());
myStorageNode.put(KEY_LAST_USED_BOARD, this.myBoardID);
myStorageNode.put(KEY_LAST_USED_UPLOAD_PORT, this.myUploadPort);
- myStorageNode.put(KEY_LAST_USED_UPLOAD_PROTOCOL, this.myUploadProtocol);
+ myStorageNode.put(KEY_LAST_USED_UPLOAD_PROTOCOL, this.myProgrammer);
myStorageNode.put(KEY_LAST_USED_BOARD_MENU_OPTIONS, KeyValue.makeString(this.myOptions));
}
@@ -582,8 +581,8 @@ public String getUploadPort() {
return this.myUploadPort;
}
- public String getUploadProtocol() {
- return this.myUploadProtocol;
+ public String getProgrammer() {
+ return this.myProgrammer;
}
public void setUploadPort(String newUploadPort) {
@@ -591,7 +590,7 @@ public void setUploadPort(String newUploadPort) {
}
public void setUploadProtocol(String newUploadProtocol) {
- this.myUploadProtocol = newUploadProtocol;
+ this.myProgrammer = newUploadProtocol;
}
@@ -825,17 +824,29 @@ public IPath getReferencingLibraryPath() {
}
public String getUploadCommand(ICConfigurationDescription confdesc) {
- String upLoadProtocol = getActualUploadProtocol();
+ String upLoadProtocol = getActualUploadTool(confdesc);
return Common.getBuildEnvironmentVariable(confdesc, "A.TOOLS." + upLoadProtocol + ".UPLOAD.PATTERN",
upLoadProtocol);
}
- public String getActualUploadProtocol() {
+ public String getActualUploadTool(ICConfigurationDescription confdesc) {
+ if (this.myUploadTool == null && confdesc != null) {
+ return Common.getBuildEnvironmentVariable(confdesc, "A.UPLOAD.TOOL", this.myUploadTool);
+ }
return this.myUploadTool;
}
+ public String getActualUploadTool() {
+ return getActualUploadTool(null);
+ }
+
public boolean usesProgrammer() {
- return !this.myUploadProtocol.equals(Defaults.getDefaultUploadProtocol());
+ return !this.myProgrammer.equals(Defaults.getDefaultUploadProtocol());
}
+ // public String getActualUploadProtocol() {
+ // // TODO Auto-generated method stub
+ // return null;
+ // }
+
}
diff --git a/io.sloeber.core/src/io/sloeber/core/api/Defaults.java b/io.sloeber.core/src/io/sloeber/core/api/Defaults.java
index db4f6c5bf..a699c5c66 100644
--- a/io.sloeber.core/src/io/sloeber/core/api/Defaults.java
+++ b/io.sloeber.core/src/io/sloeber/core/api/Defaults.java
@@ -8,7 +8,7 @@
@SuppressWarnings("nls")
public class Defaults {
public static final String EXAMPLE_PACKAGE = "examples_Arduino_1_6_7.zip";
- public static final String EXAMPLES_URL = "http://eclipse.baeyens.it/download/" + EXAMPLE_PACKAGE;
+ public static final String EXAMPLES_URL = "https://eclipse.baeyens.it/download/" + EXAMPLE_PACKAGE;
public static final String PLATFORM_NAME = "Arduino AVR Boards";
public static final String[] INSTALLED_LIBRARIES = new String[] { "Ethernet", "Firmata", "GSM", "Keyboard",
"LiquidCrystal", "Mouse", "SD", "Servo", "Stepper", "TFT", "WiFi", "CapacitiveSensor" };
diff --git a/io.sloeber.core/src/io/sloeber/core/communication/ArduinoSerial.java b/io.sloeber.core/src/io/sloeber/core/communication/ArduinoSerial.java
index 4b6f1cd76..3dcf2f487 100644
--- a/io.sloeber.core/src/io/sloeber/core/communication/ArduinoSerial.java
+++ b/io.sloeber.core/src/io/sloeber/core/communication/ArduinoSerial.java
@@ -173,7 +173,6 @@ public static String makeArduinoUploadready(MessageConsoleStream console, IProje
.equalsIgnoreCase(Const.TRUE);
String comPort = boardDescriptor.getUploadPort();
String boardName = boardDescriptor.getBoardName();
- String uploadProtocol = boardDescriptor.getActualUploadProtocol();
boolean bResetPortForUpload = Common
.getBuildEnvironmentVariable(project, configName, Const.ENV_KEY_RESET_BEFORE_UPLOAD, Const.TRUE)
@@ -184,7 +183,7 @@ public static String makeArduinoUploadready(MessageConsoleStream console, IProje
* boards.txt use Const.ENV_KEY_RESET_BEFORE_UPLOAD=FALSE to disable a
* reset
*/
- if (!bResetPortForUpload || uploadProtocol.equalsIgnoreCase("halfkay")) { //$NON-NLS-1$
+ if (!bResetPortForUpload || "teensyloader".equalsIgnoreCase(boardDescriptor.getActualUploadTool())) { //$NON-NLS-1$
return comPort;
}
/*
diff --git a/io.sloeber.core/src/io/sloeber/core/listeners/ConfigurationChangeListener.java b/io.sloeber.core/src/io/sloeber/core/listeners/ConfigurationChangeListener.java
index 60fc0b514..be39c2ace 100644
--- a/io.sloeber.core/src/io/sloeber/core/listeners/ConfigurationChangeListener.java
+++ b/io.sloeber.core/src/io/sloeber/core/listeners/ConfigurationChangeListener.java
@@ -77,7 +77,7 @@ public void run() {
0);
if (dialog.open() == 0) {
- org.eclipse.swt.program.Program.launch("http://baeyens.it/eclipse/toolchainFix.php"); //$NON-NLS-1$
+ org.eclipse.swt.program.Program.launch("https://baeyens.it/eclipse/toolchainFix.php"); //$NON-NLS-1$
}
}
}
diff --git a/io.sloeber.core/src/io/sloeber/core/managers/Manager.java b/io.sloeber.core/src/io/sloeber/core/managers/Manager.java
index 8b23bba90..34ef65238 100644
--- a/io.sloeber.core/src/io/sloeber/core/managers/Manager.java
+++ b/io.sloeber.core/src/io/sloeber/core/managers/Manager.java
@@ -154,7 +154,7 @@ static public IStatus downloadAndInstall(ArduinoPlatform platform, boolean force
Path localMakePath = Paths.get(ConfigurationPreferences.getMakePath().toString());
if (!ConfigurationPreferences.getMakePath().append("make.exe").toFile().exists()) { //$NON-NLS-1$
mstatus.addErrors(
- downloadAndInstall("http://eclipse.baeyens.it/download/make.zip", "make.zip", localMakePath, //$NON-NLS-1$ //$NON-NLS-2$
+ downloadAndInstall("https://eclipse.baeyens.it/download/make.zip", "make.zip", localMakePath, //$NON-NLS-1$ //$NON-NLS-2$
forceDownload, monitor));
}
}
@@ -205,7 +205,7 @@ public static File getLocalFileName(String url) {
* @return the file that represents the file on Baeyens.it
*/
private static String getBaeyensItAlternativeDownload(String localFileName) {
- return "http://eclipse.baeyens.it/download/" + localFileName; //$NON-NLS-1$
+ return "https://eclipse.baeyens.it/download/" + localFileName; //$NON-NLS-1$
}
/**
diff --git a/io.sloeber.core/src/io/sloeber/core/tools/Helpers.java b/io.sloeber.core/src/io/sloeber/core/tools/Helpers.java
index d5943a19d..b293f121e 100644
--- a/io.sloeber.core/src/io/sloeber/core/tools/Helpers.java
+++ b/io.sloeber.core/src/io/sloeber/core/tools/Helpers.java
@@ -773,7 +773,7 @@ public static void setTheEnvironmentVariables(IProject project, ICConfigurationD
// add the boards file
setTheEnvironmentVariablesAddtheBoardsTxt(contribEnv, confDesc, boardsDescriptor, true);
- String programmer = boardsDescriptor.getUploadProtocol();
+ String programmer = boardsDescriptor.getProgrammer();
for (Programmers curProgrammer : localProgrammers) {
String programmerID = curProgrammer.getBoardIDFromBoardName(programmer);
if (programmerID != null) {
@@ -853,7 +853,7 @@ private static void setTheEnvironmentVariablesPostProcessing(IContributedEnviron
}
}
- String programmer = boardsDescriptor.getUploadProtocol();
+ String programmer = boardsDescriptor.getProgrammer();
if (programmer.equalsIgnoreCase(Defaults.getDefaultUploadProtocol())) {
String MComPort = boardsDescriptor.getUploadPort();
if (MComPort.isEmpty()) {
diff --git a/io.sloeber.core/src/io/sloeber/core/tools/uploaders/UploadSketchWrapper.java b/io.sloeber.core/src/io/sloeber/core/tools/uploaders/UploadSketchWrapper.java
index b0582b837..55a37d574 100644
--- a/io.sloeber.core/src/io/sloeber/core/tools/uploaders/UploadSketchWrapper.java
+++ b/io.sloeber.core/src/io/sloeber/core/tools/uploaders/UploadSketchWrapper.java
@@ -58,7 +58,7 @@ public void internalUpload(IProject project, String configName) {
ICConfigurationDescription confDesc = prjDesc.getConfigurationByName(configName);
BoardDescriptor boardDescriptor = BoardDescriptor.makeBoardDescriptor(confDesc);
- String UpLoadTool = boardDescriptor.getActualUploadProtocol();
+ String UpLoadTool = boardDescriptor.getActualUploadTool(confDesc);
String MComPort = boardDescriptor.getUploadPort();
String uploadClass = Common.getBuildEnvironmentVariable(confDesc, Common.get_ENV_KEY_TOOL(Const.UPLOAD_CLASS),
new String());
diff --git a/io.sloeber.core/src/jUnit/CompileAndUpload.java b/io.sloeber.core/src/jUnit/CompileAndUpload.java
new file mode 100644
index 000000000..d276f4e33
--- /dev/null
+++ b/io.sloeber.core/src/jUnit/CompileAndUpload.java
@@ -0,0 +1,138 @@
+package jUnit;
+
+import static org.junit.Assert.fail;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.LinkedList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+import io.sloeber.core.api.BoardsManager;
+import io.sloeber.core.api.CodeDescriptor;
+import io.sloeber.core.api.CompileOptions;
+import io.sloeber.core.api.ConfigurationDescriptor;
+import io.sloeber.core.api.Sketch;
+import jUnit.boards.Due;
+import jUnit.boards.IBoard;
+import jUnit.boards.NodeMCUBoard;
+import jUnit.boards.UnoBoard;
+import jUnit.boards.Zero;
+import jUnit.boards.megaBoard;
+
+@SuppressWarnings("nls")
+@RunWith(Parameterized.class)
+public class CompileAndUpload {
+ private static final boolean reinstall_boards_and_libraries = false;
+ private static int mCounter = 0;
+ private IBoard myBoard;
+ private String myName;
+
+ public CompileAndUpload(String name, IBoard board) {
+ this.myBoard = board;
+ this.myName = name;
+
+ }
+
+ @SuppressWarnings("rawtypes")
+ @Parameters(name = "{index}: {0}")
+ public static Collection examples() {
+ WaitForInstallerToFinish();
+
+ IBoard unoBoard = new UnoBoard();
+ IBoard nodeMCUBoard = new NodeMCUBoard();
+ IBoard megaBoard = new megaBoard();
+ IBoard zeroBoard = new Zero();
+ IBoard dueBoard = new Due();
+ LinkedList