Skip to content

Commit 0905fe6

Browse files
committed
Add popup to prompt ganglion firmware v2 upgrade
1 parent 6001e37 commit 0905fe6

3 files changed

Lines changed: 29 additions & 6 deletions

File tree

OpenBCI_GUI/BoardGanglion.pde

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class BoardGanglionNative extends BoardGanglion {
88
super();
99
}
1010

11-
public BoardGanglionNative(String name) {
11+
public BoardGanglionNative(String name, boolean showUpgradePopup) {
1212
super();
1313
this.boardName = name;
1414

@@ -19,6 +19,9 @@ class BoardGanglionNative extends BoardGanglion {
1919
else {
2020
this.firmwareVersion = 2;
2121
output("Detected Ganglion firmware version 2");
22+
if (showUpgradePopup) {
23+
PopupMessage msg = new PopupMessage("Warning", "Ganglion firmware version 2 detected. Please update to version 3 for better performance. \n\nhttps://docs.openbci.com/Ganglion/GanglionProgram");
24+
}
2225
}
2326
}
2427

@@ -68,7 +71,7 @@ class BoardGanglionBLE extends BoardGanglion {
6871
super();
6972
}
7073

71-
public BoardGanglionBLE(String deviceName, String serialPort, String macAddress) {
74+
public BoardGanglionBLE(String deviceName, String serialPort, String macAddress, boolean showUpgradePopup) {
7275
super();
7376
this.serialPort = serialPort;
7477
this.macAddress = macAddress;
@@ -79,6 +82,9 @@ class BoardGanglionBLE extends BoardGanglion {
7982
}
8083
else {
8184
this.firmwareVersion = 2;
85+
if (showUpgradePopup) {
86+
PopupMessage msg = new PopupMessage("Warning", "Ganglion firmware version 2 detected. Please update to version 3 for better performance. \n\nhttps://docs.openbci.com/Ganglion/GanglionProgram");
87+
}
8288
output("Detected Ganglion firmware version 2");
8389
}
8490
}

OpenBCI_GUI/GuiSettings.pde

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ enum ExpertModeEnum implements GuiSettingsEnum {
3434
public class GuiSettingsValues {
3535
public ExpertModeEnum expertMode = ExpertModeEnum.OFF;
3636
public boolean showCytonSmoothingPopup = true;
37+
public boolean showGanglionUpgradePopup = true;
3738

3839
public GuiSettingsValues() {
3940
}
@@ -43,7 +44,7 @@ class GuiSettings {
4344

4445
private GuiSettingsValues values;
4546
private String filename;
46-
private List<String> valueKeys = Arrays.asList("expertMode", "showCytonSmoothingPopup");
47+
private List<String> valueKeys = Arrays.asList("expertMode", "showCytonSmoothingPopup", "showGanglionUpgradePopup");
4748

4849
GuiSettings(String settingsDirectory) {
4950

@@ -164,7 +165,16 @@ class GuiSettings {
164165
saveToFile();
165166
}
166167

168+
public void setShowGanglionUpgradePopup(boolean b) {
169+
values.showGanglionUpgradePopup = b;
170+
saveToFile();
171+
}
172+
167173
public boolean getShowCytonSmoothingPopup() {
168174
return values.showCytonSmoothingPopup;
169175
}
176+
177+
public boolean getShowGanglionUpgradePopup() {
178+
return values.showGanglionUpgradePopup;
179+
}
170180
}

OpenBCI_GUI/OpenBCI_GUI.pde

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -606,19 +606,26 @@ void initSystem() {
606606
}
607607
break;
608608
case DATASOURCE_GANGLION:
609+
boolean showUpgradePopup = false;
610+
if (guiSettings.getShowGanglionUpgradePopup())
611+
{
612+
showUpgradePopup = true;
613+
guiSettings.setShowGanglionUpgradePopup(false);
614+
}
615+
609616
if (selectedProtocol == BoardProtocol.WIFI) {
610617
currentBoard = new BoardGanglionWifi(wifi_ipAddress, selectedSamplingRate);
611618
} else if (selectedProtocol == BoardProtocol.BLED112) {
612619
String ganglionName = (String)(controlPanel.bleBox.bleList.getItem(controlPanel.bleBox.bleList.activeItem).get("headline"));
613620
String ganglionPort = (String)(controlPanel.bleBox.bleList.getItem(controlPanel.bleBox.bleList.activeItem).get("subline"));
614621
String ganglionMac = controlPanel.bleBox.bleMACAddrMap.get(ganglionName);
615622
println("MAC address for Ganglion is " + ganglionMac);
616-
currentBoard = new BoardGanglionBLE(ganglionName, ganglionPort, ganglionMac);
623+
currentBoard = new BoardGanglionBLE(ganglionName, ganglionPort, ganglionMac, showUpgradePopup);
617624
} else if (selectedProtocol == BoardProtocol.NATIVE_BLE) {
618625
String ganglionName = (String)(controlPanel.bleBox.bleList.getItem(controlPanel.bleBox.bleList.activeItem).get("headline"));
619626
String ganglionMac = controlPanel.bleBox.bleMACAddrMap.get(ganglionName);
620627
println("MAC address for Ganglion is " + ganglionMac);
621-
currentBoard = new BoardGanglionNative(ganglionName);
628+
currentBoard = new BoardGanglionNative(ganglionName, showUpgradePopup);
622629
}
623630
break;
624631
case DATASOURCE_STREAMING:
@@ -641,7 +648,7 @@ void initSystem() {
641648
println("OpenBCI_GUI: Configuring Cyton Channel Count...");
642649
if (currentBoard instanceof BoardCytonSerial) {
643650
Pair<Boolean, String> res = ((BoardBrainFlow)currentBoard).sendCommand("c");
644-
//println(res.getKey().booleanValue(), res.getValue());
651+
//println(res.getKey().booleanValue(), res.getValue());guiSettings
645652
if (res.getValue().startsWith("daisy removed")) {
646653
println("OpenBCI_GUI: Daisy is physically attached, using Cyton 8 Channels instead.");
647654
}

0 commit comments

Comments
 (0)