Skip to content

Commit ebce440

Browse files
committed
Add shortcut to open FirmwareUpdater sketch
1 parent dbff519 commit ebce440

File tree

3 files changed

+74
-6
lines changed

3 files changed

+74
-6
lines changed

src/cc/arduino/plugins/wifi101/UpdaterImpl.java

+11
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,17 @@ public void run() {
178178
}.start();
179179
}
180180

181+
@Override
182+
protected void openFirmwareUpdaterSketch() {
183+
Flasher fw = (Flasher) getFirmwareSelector().getSelectedItem();
184+
try {
185+
fw.openFirmwareUpdaterSketch(getSelectedPort());
186+
}
187+
catch (Exception e) {
188+
e.printStackTrace();
189+
}
190+
}
191+
181192
@Override
182193
protected void updateFirmware() {
183194
BoardPort port = getSelectedPort();

src/cc/arduino/plugins/wifi101/UpdaterJFrame.java

+25-6
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import javax.swing.event.ListSelectionListener;
5252

5353
import cc.arduino.plugins.wifi101.flashers.Flasher;
54+
import processing.app.Base;
5455

5556
@SuppressWarnings("serial")
5657
public class UpdaterJFrame extends JFrame {
@@ -72,6 +73,7 @@ public class UpdaterJFrame extends JFrame {
7273
private JButton addCertificateButton;
7374
private JButton updateFirmwareButton;
7475
private JButton testConnectionButton;
76+
private JButton openFirmwareUpdaterSketchButton;
7577

7678
public static void main(String[] args) {
7779
EventQueue.invokeLater(new Runnable() {
@@ -130,13 +132,13 @@ public UpdaterJFrame() {
130132

131133
serialPortList = new JList<String>();
132134
JScrollPane sp = new JScrollPane(serialPortList);
133-
serialPortList.setMaximumSize(new Dimension(300, 50));
135+
serialPortList.setMaximumSize(new Dimension(300, 100));
134136
GridBagConstraints gbc_serialPortList = new GridBagConstraints();
135137
gbc_serialPortList.insets = new Insets(5, 5, 5, 5);
136138
gbc_serialPortList.fill = GridBagConstraints.BOTH;
137139
gbc_serialPortList.gridx = 0;
138140
gbc_serialPortList.gridy = 1;
139-
gbc_serialPortList.gridheight = 2;
141+
gbc_serialPortList.gridheight = 5;
140142
panel_1.add(sp, gbc_serialPortList);
141143
serialPortList.addListSelectionListener(new ListSelectionListener() {
142144
public void valueChanged(ListSelectionEvent e) {
@@ -153,9 +155,9 @@ public void actionPerformed(ActionEvent e) {
153155
});
154156
GridBagConstraints gbc_refreshListButton = new GridBagConstraints();
155157
gbc_refreshListButton.fill = GridBagConstraints.HORIZONTAL;
156-
gbc_refreshListButton.insets = new Insets(5, 5, 5, 5);
158+
gbc_refreshListButton.insets = new Insets(0,0,0,0);
157159
gbc_refreshListButton.gridx = 1;
158-
gbc_refreshListButton.gridy = 1;
160+
gbc_refreshListButton.gridy = 2;
159161
panel_1.add(refreshListButton, gbc_refreshListButton);
160162

161163
testConnectionButton = new JButton("Test connection");
@@ -166,11 +168,24 @@ public void actionPerformed(ActionEvent e) {
166168
});
167169

168170
GridBagConstraints gbc_testConnectionButton = new GridBagConstraints();
169-
gbc_testConnectionButton.insets = new Insets(5, 5, 5, 5);
171+
gbc_testConnectionButton.insets = new Insets(0,0,0,0);
170172
gbc_testConnectionButton.gridx = 1;
171-
gbc_testConnectionButton.gridy = 2;
173+
gbc_testConnectionButton.gridy = 3;
172174
panel_1.add(testConnectionButton, gbc_testConnectionButton);
173175

176+
openFirmwareUpdaterSketchButton = new JButton("Open Updater sketch");
177+
openFirmwareUpdaterSketchButton.addActionListener(new ActionListener() {
178+
public void actionPerformed(ActionEvent e) {
179+
openFirmwareUpdaterSketch();
180+
}
181+
});
182+
183+
GridBagConstraints gbc_openFirmwareUpdaterSketchButton = new GridBagConstraints();
184+
gbc_openFirmwareUpdaterSketchButton.insets = new Insets(0,0,0,0);
185+
gbc_openFirmwareUpdaterSketchButton.gridx = 1;
186+
gbc_openFirmwareUpdaterSketchButton.gridy = 1;
187+
panel_1.add(openFirmwareUpdaterSketchButton, gbc_openFirmwareUpdaterSketchButton);
188+
174189
panel = new JPanel();
175190
panel.setBorder(new TitledBorder(new LineBorder(new Color(184, 207, 229)), "2. Update firmware", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(51, 51, 51)));
176191
panel.setMinimumSize(new Dimension(500, 150));
@@ -367,6 +382,10 @@ protected void testConnection() {
367382
// To be overridden
368383
}
369384

385+
protected void openFirmwareUpdaterSketch() {
386+
// To be overridden
387+
}
388+
370389
protected void refreshSerialPortList() {
371390
// To be overridden
372391
}

src/cc/arduino/plugins/wifi101/flashers/Flasher.java

+38
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,19 @@
3131
import java.util.List;
3232
import java.util.Arrays;
3333

34+
import javax.swing.JMenuItem;
3435
import javax.swing.JProgressBar;
36+
import javax.swing.JRadioButtonMenuItem;
3537

38+
import cc.arduino.packages.BoardPort;
3639
import cc.arduino.plugins.wifi101.flashers.java.FlasherSerialClient;
40+
import processing.app.Editor;
41+
import processing.app.debug.TargetBoard;
42+
import processing.app.packages.LibraryList;
43+
import processing.app.packages.UserLibrary;
44+
import processing.app.packages.UserLibraryFolder.Location;
45+
import processing.app.Base;
46+
import processing.app.BaseNoGui;
3747

3848
import java.net.MalformedURLException;
3949
import java.net.URL;
@@ -101,6 +111,31 @@ public void testConnection(String port, int baudrate) throws Exception {
101111
}
102112
}
103113

114+
public void openFirmwareUpdaterSketch(BoardPort port) throws Exception {
115+
LibraryList allLibraries = BaseNoGui.librariesIndexer.getInstalledLibraries();
116+
String firmwareUpdaterExamplePath = "";
117+
String nameToSearchFor = "";
118+
String pathToSketch = "";
119+
if (modulename.contains("NINA")) {
120+
nameToSearchFor = "WiFiNINA";
121+
pathToSketch = "examples/Tools/FirmwareUpdater/FirmwareUpdater.ino";
122+
}
123+
if (modulename.contains("WINC")) {
124+
nameToSearchFor = "WiFi101";
125+
pathToSketch = "examples/FirmwareUpdater/FirmwareUpdater.ino";
126+
}
127+
for (UserLibrary lib : allLibraries) {
128+
if (lib.getName().equals(nameToSearchFor)) {
129+
firmwareUpdaterExamplePath = lib.getInstalledFolder().getAbsolutePath() + "/" + pathToSketch;
130+
}
131+
}
132+
if (firmwareUpdaterExamplePath != "" && port != null) {
133+
BaseNoGui.selectSerialPort(port.getAddress());
134+
Base.INSTANCE.onBoardOrPortChange();
135+
Base.INSTANCE.handleOpen(new File(firmwareUpdaterExamplePath));
136+
}
137+
}
138+
104139
public void updateFirmware(String port) throws Exception {
105140
// To be overridden
106141
}
@@ -151,6 +186,9 @@ public void setFileName(String _filename) {
151186
}
152187

153188
public boolean isCompatible(String boardName) {
189+
if (boardName == null) {
190+
return false;
191+
}
154192
for (String name : compatibleBoard) {
155193
if (name.toLowerCase().equals(boardName.toLowerCase())) {
156194
return true;

0 commit comments

Comments
 (0)