Skip to content

Commit 3db5f0f

Browse files
author
jantje
committed
purely testing stuff optimisations
1 parent 9604219 commit 3db5f0f

File tree

11 files changed

+356
-336
lines changed

11 files changed

+356
-336
lines changed

io.sloeber.tests/src/io/sloeber/core/BoardAttributes.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
public class BoardAttributes {
44
public boolean serial = false;
55
public boolean serial1 = false;
6+
public boolean serialUSB = false;
67
public boolean keyboard = false;
78
public boolean flightSim = false;
89
public boolean joyStick = false;
@@ -17,6 +18,10 @@ public class BoardAttributes {
1718
// 1)default to test
1819
// 2 fail if insufficient ADC's are available
1920
public int myNumAD = 20;
21+
//directmode is something from the capacitiveSensor library
22+
//but as the arduino examples contain examples using this libraries
23+
//and mbed boards do not support it I added it as a boardAttribute
24+
public boolean directMode = true;
2025

2126
/*
2227
* Only a very rare selection of boards supports input_pulldown as pin mode
@@ -38,8 +43,9 @@ public class BoardAttributes {
3843
public boolean compatibleWithExampleRequirements(BoardAttributes example) {
3944
boolean ret = worksOutOfTheBox;
4045
ret = ret && matches(example.serial, serial);
41-
ret = ret && matches(example.rawHID, rawHID);
4246
ret = ret && matches(example.serial1, serial1);
47+
ret = ret && matches(example.serialUSB, serialUSB);
48+
ret = ret && matches(example.rawHID, rawHID);
4349
ret = ret && matches(example.keyboard, keyboard);
4450
ret = ret && matches(example.flightSim, flightSim);
4551
ret = ret && matches(example.joyStick, joyStick);
@@ -52,6 +58,8 @@ public boolean compatibleWithExampleRequirements(BoardAttributes example) {
5258
ret = ret && matches(example.esp8266_mcu, esp8266_mcu);
5359
ret = ret && matches(example.buildInLed, buildInLed);
5460
ret = ret && matches(example.tone, tone);
61+
ret = ret && matches(example.directMode, directMode);
62+
5563
ret = ret && example.myNumAD <= myNumAD;
5664

5765
if (example.boardName != null) {
@@ -78,10 +86,12 @@ public BoardAttributes or(BoardAttributes or) {
7886
ret.worksOutOfTheBox = worksOutOfTheBox && or.worksOutOfTheBox;
7987
ret.buildInLed = buildInLed && or.buildInLed;
8088
ret.tone = tone && or.tone;
89+
ret.directMode = directMode && or.directMode;
8190
// fields that can do with or
8291
ret.serial = serial || or.serial;
83-
ret.rawHID = rawHID || or.rawHID;
8492
ret.serial1 = serial1 || or.serial1;
93+
ret.serialUSB = serialUSB || or.serialUSB;
94+
ret.rawHID = rawHID || or.rawHID;
8595
ret.keyboard = keyboard || or.keyboard;
8696
ret.flightSim = flightSim || or.flightSim;
8797
ret.joyStick = joyStick || or.joyStick;

io.sloeber.tests/src/io/sloeber/core/Example.java

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package io.sloeber.core;
22

3+
import java.util.ArrayList;
4+
import java.util.HashMap;
35
import java.util.LinkedList;
6+
import java.util.List;
7+
import java.util.Map;
48

59
import org.eclipse.core.runtime.IPath;
610

@@ -27,6 +31,7 @@ public Example(String fqn, IPath path) {
2731
myRequiredBoardAttributes = new BoardAttributes();
2832
myRequiredBoardAttributes.serial = examplesUsingSerial().contains(myFQN);
2933
myRequiredBoardAttributes.serial1 = examplesUsingSerial1().contains(myFQN);
34+
myRequiredBoardAttributes.serialUSB = examplesUsingSerialUSB().contains(myFQN);
3035
myRequiredBoardAttributes.keyboard = examplesUsingKeyboard().contains(myFQN);
3136
myRequiredBoardAttributes.flightSim = examplesUsingFlightSim().contains(myFQN);
3237
myRequiredBoardAttributes.joyStick = examplesUsingJoyStick().contains(myFQN);
@@ -41,6 +46,8 @@ public Example(String fqn, IPath path) {
4146
myRequiredBoardAttributes.rawHID = myFQN.contains("USB_RawHID");
4247
myRequiredBoardAttributes.buildInLed = myFQN.contains("Blink");
4348
myRequiredBoardAttributes.myNumAD = getNumADCUsedInExample(myFQN);
49+
myRequiredBoardAttributes.directMode = examplesUsingDirectMode().contains(myFQN);
50+
4451
myRequiredBoardAttributes = myRequiredBoardAttributes.or(Libraries.getRequiredBoardAttributes(getLibName()));
4552
}
4653

@@ -107,6 +114,18 @@ private static LinkedList<String> examplesUsingSerial1() {
107114
return ret;
108115
}
109116

117+
private static LinkedList<String> examplesUsingSerialUSB() {
118+
LinkedList<String> ret = new LinkedList<>();
119+
ret.add("Example/11.ArduinoISP/ArduinoISP");
120+
return ret;
121+
}
122+
123+
private static LinkedList<String> examplesUsingDirectMode() {
124+
LinkedList<String> ret = new LinkedList<>();
125+
ret.add("Example/10.StarterKit_BasicKit/p13_TouchSensorLamp");
126+
return ret;
127+
}
128+
110129
private static LinkedList<String> examplesUsingKeyboard() {
111130
LinkedList<String> ret = new LinkedList<>();
112131
ret.add("Example/09.USB/Keyboard/KeyboardLogout");
@@ -203,7 +222,7 @@ private static LinkedList<String> examplesUsingTone() {
203222
ret.add("Example/02.Digital/toneMelody");
204223
ret.add("Example/02.Digital/toneKeyboard");
205224
ret.add("Example/02.Digital/tonePitchFollower");
206-
225+
ret.add("Example/10.StarterKit_BasicKit/p07_Keyboard");
207226
return ret;
208227
}
209228

@@ -444,10 +463,14 @@ public static MCUBoard pickBestBoard(Example example, MCUBoard myBoards[]) {
444463
}
445464
// if the boardname is in the libname or ino name pick this one
446465
for (MCUBoard curBoard : myBoards) {
447-
String curBoardName = curBoard.getSlangName().toLowerCase();
448-
if (libName.toLowerCase().contains(curBoardName) || fqn.toLowerCase().contains(curBoardName)) {
449-
if (curBoard.isExampleSupported(example)) {
450-
return curBoard;
466+
String curBoardName = curBoard.getName();
467+
List<String> curBoardExampleNames = getSlangNames(curBoardName);
468+
for (String curBoardExampleName : curBoardExampleNames) {
469+
if (libName.toLowerCase().contains(curBoardName)
470+
|| fqn.toLowerCase().contains(curBoardExampleName)) {
471+
if (curBoard.isExampleSupported(example)) {
472+
return curBoard;
473+
}
451474
}
452475
}
453476
}
@@ -499,6 +522,28 @@ public static MCUBoard pickBestBoard(Example example, MCUBoard myBoards[]) {
499522
return null;
500523
}
501524

525+
private static List<String> getSlangNames(String curBoardName) {
526+
Map<String, String> singleNames = new HashMap<>();
527+
singleNames.put("adafruit_metro_m4", "metroM4");
528+
singleNames.put("feather52832", "feather");
529+
singleNames.put("trinket3", "trinket");
530+
singleNames.put("adafruit_feather_m0", "FeatherM0");
531+
singleNames.put("arduino_zero_edbg", "zero");
532+
singleNames.put("arduino_101", "101");
533+
singleNames.put("arduino_zero_native", "zero Native");
534+
singleNames.put("d1_mini", "wemos");
535+
singleNames.put("teensy36", "teensy3");
536+
singleNames.put("adafruit_metro_m4", "metroM4");
537+
538+
List<String> ret = new ArrayList<>();
539+
String singleName = singleNames.get(curBoardName);
540+
if (singleName != null) {
541+
ret.add(singleName);
542+
}
543+
ret.add(curBoardName);
544+
return ret;
545+
}
546+
502547
private static String getRequiredBoardID(String fqn) {
503548
switch (fqn) {
504549
case "Library/Accessory_Shield/OLED_example_Adafruit":

io.sloeber.tests/src/io/sloeber/core/MySystem.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,22 +36,27 @@ public static String getTeensyBoard_txt() {
3636
public static MCUBoard[] getUploadBoards() {
3737
switch (currentMachine) {
3838
case jantjesLinuxMachine: {
39-
MCUBoard[] boards = { Teensy.teensypp2("/dev/ttyACM0"), Arduino.leonardo("/dev/ttyS0"), //werkt niet
40-
Arduino.fried2016("/dev/ttyS0"), //werkt niet
41-
Arduino.zeroNatviePort("/dev/ttyS0"), //werkt niet
42-
Arduino.yun("COM20"), ESP8266.wemosD1("/dev/ttyUSB0"), Arduino.arduino_101("COM15"),
43-
Arduino.zeroProgrammingPort("COM14"), Arduino.getMega2560Board("COM11"),
44-
Arduino.dueprogramming("COM8"), Arduino.uno("COM6"), };
39+
MCUBoard[] boards = { Teensy.teensypp2().setUploadPort("/dev/ttyACM0"),
40+
Arduino.leonardo().setUploadPort("/dev/ttyS0"), //werkt niet
41+
Arduino.fried2016().setUploadPort("/dev/ttyS0"), //werkt niet
42+
Arduino.zeroNatviePort().setUploadPort("/dev/ttyS0"), //werkt niet
43+
Arduino.yun().setUploadPort("COM20"), ESP8266.wemosD1().setUploadPort("/dev/ttyUSB0"),
44+
Arduino.arduino_101().setUploadPort("COM15"), Arduino.zeroProgrammingPort().setUploadPort("COM14"),
45+
Arduino.getMega2560Board().setUploadPort("COM11"), Arduino.dueprogramming().setUploadPort("COM8"),
46+
Arduino.uno().setUploadPort("COM6"), };
4547
return boards;
4648
}
4749
case jantjesWindowsMachine:
4850
//due native upload gives to mutch trouble even in arduino IDE
49-
MCUBoard[] boards = { Teensy.teensypp2("COM103"),
51+
MCUBoard[] boards = { Teensy.teensypp2().setUploadPort("COM103"),
5052
// Teensy.Teensy3_1("COM24"),
51-
Arduino.leonardo("COM101"), Arduino.fried2016("COM102"), Arduino.zeroNatviePort("COM104"), //boardSponsor
52-
Arduino.yun("COM106"), ESP8266.wemosD1("COM108"), Arduino.arduino_101("COM110"),
53-
Arduino.zeroProgrammingPort("COM111"), Arduino.getMega2560Board("COM112"),
54-
Arduino.dueprogramming("COM124"), Arduino.uno("COM126"), };
53+
Arduino.leonardo().setUploadPort("COM101"), Arduino.fried2016().setUploadPort("COM102"),
54+
Arduino.zeroNatviePort().setUploadPort("COM104"), //boardSponsor
55+
Arduino.yun().setUploadPort("COM106"), ESP8266.wemosD1().setUploadPort("COM108"),
56+
Arduino.arduino_101().setUploadPort("COM110"),
57+
Arduino.zeroProgrammingPort().setUploadPort("COM111"),
58+
Arduino.getMega2560Board().setUploadPort("COM112"),
59+
Arduino.dueprogramming().setUploadPort("COM124"), Arduino.uno().setUploadPort("COM126"), };
5560
return boards;
5661
default:
5762
fail("Boards for the system with haskey " + currentMachine + " are not found");

io.sloeber.tests/src/io/sloeber/core/RegressionTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@
2323
import org.junit.Test;
2424

2525
import io.sloeber.core.api.BoardDescription;
26+
import io.sloeber.core.api.BoardsManager;
2627
import io.sloeber.core.api.CodeDescription;
2728
import io.sloeber.core.api.CompileDescription;
2829
import io.sloeber.core.api.CompileDescription.SizeCommands;
2930
import io.sloeber.core.api.CompileDescription.WarningLevels;
3031
import io.sloeber.core.api.OtherDescription;
31-
import io.sloeber.core.api.BoardsManager;
3232
import io.sloeber.core.api.Preferences;
3333
import io.sloeber.core.api.SloeberProject;
3434
import io.sloeber.providers.Arduino;
@@ -85,7 +85,7 @@ public void issue555() {
8585
}
8686
System.out.println("Teensy is installed at " + MySystem.getTeensyPlatform());
8787
BoardDescription unoBoardid = Arduino.uno().getBoardDescriptor();
88-
BoardDescription teensyBoardid = Teensy.Teensy3_1("").getBoardDescriptor();
88+
BoardDescription teensyBoardid = Teensy.Teensy3_1().getBoardDescriptor();
8989

9090
IProject theTestProject = null;
9191
CodeDescription codeDescriptor = CodeDescription.createDefaultIno();

io.sloeber.tests/src/io/sloeber/providers/Adafruit.java

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -2,56 +2,61 @@
22

33
import static org.junit.Assert.*;
44

5+
import io.sloeber.core.api.BoardDescription;
56
import io.sloeber.core.api.BoardsManager;
7+
68
@SuppressWarnings("nls")
79
public class Adafruit extends MCUBoard {
8-
public final static String packageURL = "https://adafruit.github.io/arduino-board-index/package_adafruit_index.json";
10+
public final static String packageURL = "https://adafruit.github.io/arduino-board-index/package_adafruit_index.json";
911
private static final String AVRArchitectureName = "avr";
1012
private static final String SAMDArchitectureName = "samd";
11-
//private static final String SAMPlatformName = "Arduino SAM Boards (32-bits ARM Cortex-M3)";
13+
//private static final String SAMPlatformName = "Arduino SAM Boards (32-bits ARM Cortex-M3)";
1214
private static final String NFR52ArchitectureName = "nRF52";
13-
//private static final String XICEDPlatformName = "Adafruit WICED";
14-
public static final String metroM4SlangName="metroM4";
15-
public static final String metroM4ID="adafruit_metro_m4";
16-
17-
18-
19-
public Adafruit( String architectureName, String boardName) {
20-
21-
this.myBoardDescriptor = BoardsManager.getBoardDescription( "package_adafruit_index.json","adafruit",architectureName ,
22-
boardName, null);
23-
if (this.myBoardDescriptor == null) {
24-
fail(boardName + " Board not found");
25-
}
26-
this.myBoardDescriptor.setUploadPort("none");
27-
}
28-
29-
30-
public static MCUBoard feather() {
31-
MCUBoard ret= new Adafruit(NFR52ArchitectureName,"feather52832");
32-
ret.mySlangName="feather";
33-
return ret;
34-
}
35-
36-
37-
public static MCUBoard trinket8MH() {
38-
MCUBoard ret = new Adafruit(AVRArchitectureName, "trinket3");
39-
ret.mySlangName="trinket";
40-
return ret;
41-
}
42-
43-
public static MCUBoard featherMO() {
44-
MCUBoard ret = new Adafruit(SAMDArchitectureName, "adafruit_feather_m0");
45-
ret.mySlangName="FeatherM0";
46-
ret.myAttributes.mo_mcu=true;
47-
return ret;
48-
}
49-
50-
public static MCUBoard metroM4() {
51-
MCUBoard ret = new Adafruit(SAMDArchitectureName, metroM4ID);
52-
ret.mySlangName=metroM4SlangName;
53-
ret.myAttributes.mo_mcu=true;
54-
return ret;
55-
}
56-
15+
//private static final String XICEDPlatformName = "Adafruit WICED";
16+
public static final String metroM4ID = "adafruit_metro_m4";
17+
18+
public Adafruit(String architectureName, String boardName) {
19+
20+
this.myBoardDescriptor = BoardsManager.getBoardDescription("package_adafruit_index.json", "adafruit",
21+
architectureName, boardName, null);
22+
if (this.myBoardDescriptor == null) {
23+
fail(boardName + " Board not found");
24+
}
25+
this.myBoardDescriptor.setUploadPort("none");
26+
setAttributes();
27+
}
28+
29+
public static MCUBoard feather() {
30+
return new Adafruit(NFR52ArchitectureName, "feather52832");
31+
}
32+
33+
public static MCUBoard trinket8MH() {
34+
return new Adafruit(AVRArchitectureName, "trinket3");
35+
}
36+
37+
public static MCUBoard featherMO() {
38+
return new Adafruit(SAMDArchitectureName, "adafruit_feather_m0");
39+
}
40+
41+
public static MCUBoard metroM4() {
42+
return new Adafruit(SAMDArchitectureName, metroM4ID);
43+
}
44+
45+
@Override
46+
protected void setAttributes() {
47+
String BoardID = myBoardDescriptor.getBoardID();
48+
switch (BoardID) {
49+
case metroM4ID:
50+
case "adafruit_feather_m0":
51+
myAttributes.mo_mcu = true;
52+
return;
53+
}
54+
55+
}
56+
57+
@Override
58+
public MCUBoard createMCUBoard(BoardDescription boardDesc) {
59+
return new Teensy(boardDesc);
60+
}
61+
5762
}

0 commit comments

Comments
 (0)