Permalink
Browse files

networking Serial further along

  • Loading branch information...
1 parent 1ff75e6 commit dbd834d984605276fe8d92aba3d4b8e19e0b9dfa @conorrussomanno conorrussomanno committed Mar 8, 2017
View
No changes.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@@ -23,6 +23,8 @@ class W_networking extends Widget {
/* Widget CP5 */
ControlP5 cp5_networking;
+ ControlP5 cp5_networking_dropdowns;
+
boolean dataDropdownsShouldBeClosed = false;
// CColor dropdownColors_networking = new CColor();
@@ -34,6 +36,7 @@ class W_networking extends Widget {
int column1;
int column2;
int column3;
+ int fullColumnWidth;
int row0;
int row1;
int row2;
@@ -57,17 +60,30 @@ class W_networking extends Widget {
Stream stream2;
Stream stream3;
+ List<String> baudRates;
+ List<String> comPorts;
+ String defaultBaud;
+
W_networking(PApplet _parent){
super(_parent);
networkActive = false;
stream1 = null;
stream2 = null;
stream3 = null;
dataTypes = Arrays.asList("None", "TimeSeries", "FFT", "EMG", "PowerBands", "Widget");
+ defaultBaud = "9600";
+ baudRates = Arrays.asList("1200", "9600", "57600", "115200");
protocolMode = "OSC"; //default to OSC
addDropdown("Protocol", "Protocol", Arrays.asList("OSC", "UDP", "LSL", "Serial"), protocolIndex);
+ comPorts = new ArrayList<String>(Arrays.asList(Serial.list()));
+ println("comPorts = " + comPorts);
+
+
initialize_UI();
cp5_networking.setAutoDraw(false);
+ cp5_networking_dropdowns.setAutoDraw(false);
+
+
}
/* ----- USER INTERFACE ----- */
@@ -90,42 +106,68 @@ class W_networking extends Widget {
if(dataDropdownsShouldBeClosed){ //this if takes care of the scenario where you select the same widget that is active...
dataDropdownsShouldBeClosed = false;
} else {
- if(cp5_networking.get(ScrollableList.class, "dataType1").isOpen()){
- if(!cp5_networking.getController("dataType1").isMouseOver()){
+ if(cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").isOpen()){
+ if(!cp5_networking_dropdowns.getController("dataType1").isMouseOver()){
// println("2");
- cp5_networking.get(ScrollableList.class, "dataType1").close();
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").close();
}
}
- if(!cp5_networking.get(ScrollableList.class, "dataType1").isOpen()){
- if(cp5_networking.getController("dataType1").isMouseOver()){
+ if(!cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").isOpen()){
+ if(cp5_networking_dropdowns.getController("dataType1").isMouseOver()){
// println("2");
- cp5_networking.get(ScrollableList.class, "dataType1").open();
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").open();
}
}
- if(cp5_networking.get(ScrollableList.class, "dataType2").isOpen()){
- if(!cp5_networking.getController("dataType2").isMouseOver()){
+ if(cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").isOpen()){
+ if(!cp5_networking_dropdowns.getController("dataType2").isMouseOver()){
// println("2");
- cp5_networking.get(ScrollableList.class, "dataType2").close();
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").close();
}
}
- if(!cp5_networking.get(ScrollableList.class, "dataType2").isOpen()){
- if(cp5_networking.getController("dataType2").isMouseOver()){
+ if(!cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").isOpen()){
+ if(cp5_networking_dropdowns.getController("dataType2").isMouseOver()){
// println("2");
- cp5_networking.get(ScrollableList.class, "dataType2").open();
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").open();
}
}
- if(cp5_networking.get(ScrollableList.class, "dataType3").isOpen()){
- if(!cp5_networking.getController("dataType3").isMouseOver()){
+ if(cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").isOpen()){
+ if(!cp5_networking_dropdowns.getController("dataType3").isMouseOver()){
// println("2");
- cp5_networking.get(ScrollableList.class, "dataType3").close();
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").close();
}
}
- if(!cp5_networking.get(ScrollableList.class, "dataType3").isOpen()){
- if(cp5_networking.getController("dataType3").isMouseOver()){
+ if(!cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").isOpen()){
+ if(cp5_networking_dropdowns.getController("dataType3").isMouseOver()){
// println("2");
- cp5_networking.get(ScrollableList.class, "dataType3").open();
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").open();
+ }
+ }
+
+ if(cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").isOpen()){
+ if(!cp5_networking_dropdowns.getController("baud_rate").isMouseOver()){
+ // println("2");
+ cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").close();
+ }
+ }
+ if(!cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").isOpen()){
+ if(cp5_networking_dropdowns.getController("baud_rate").isMouseOver()){
+ // println("2");
+ cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").open();
+ }
+ }
+
+ if(cp5_networking_dropdowns.get(ScrollableList.class, "port_name").isOpen()){
+ if(!cp5_networking_dropdowns.getController("port_name").isMouseOver()){
+ // println("2");
+ cp5_networking_dropdowns.get(ScrollableList.class, "port_name").close();
+ }
+ }
+ if(!cp5_networking_dropdowns.get(ScrollableList.class, "port_name").isOpen()){
+ if(cp5_networking_dropdowns.getController("port_name").isMouseOver()){
+ // println("2");
+ cp5_networking_dropdowns.get(ScrollableList.class, "port_name").open();
}
}
}
@@ -140,12 +182,24 @@ class W_networking extends Widget {
showCP5();
+ cp5_networking.draw();
+ cp5_networking_dropdowns.draw();
+
fill(0,0,0);// Background fill: white
textFont(h1,20);
- text(" Stream 1",column1,row0);
- text(" Stream 2",column2,row0);
- text(" Stream 3",column3,row0);
+
+ if(!protocolMode.equals("Serial")){
+ // text("Data Type", column0,row1);
+ text(" Stream 1",column1,row0);
+ text(" Stream 2",column2,row0);
+ text(" Stream 3",column3,row0);
+ } else{
+ // text("Data Type", column0,row0+15);
+ }
+
text("Data Type", column0,row1);
+
+
startButton.draw();
// textAlign(RIGHT,TOP);
@@ -176,15 +230,17 @@ class W_networking extends Widget {
textFont(f4,40);
text("Serial", x+20,y+h/8+15);
textFont(h1,20);
- text("Name", column0,row2);
- text("Baud", column0,row3);
+ text("Baud Rate", column0,row2);
+ text("Port Name", column0,row3);
+ text("Filters",column0,row4);
}
popStyle();
}
void initialize_UI(){
cp5_networking = new ControlP5(pApplet);
+ cp5_networking_dropdowns = new ControlP5(pApplet);
/* Textfields */
// OSC
@@ -214,19 +270,23 @@ class W_networking extends Widget {
createTextFields("lsl_name3","obci_eeg3");
createTextFields("lsl_type3","EEG");
createTextFields("lsl_numchan3",Integer.toString(nchan));
+
// Serial
- createDropdown("port_name");
- createDropdown("baud_rate");
+ //grab list of existing serial port options and store into Arrays.list...
+
+
+ createDropdown("port_name", comPorts);
+ createDropdown("baud_rate", baudRates);
/* General Elements */
createRadioButtons("filter1");
createRadioButtons("filter2");
createRadioButtons("filter3");
- createDropdown("dataType1");
- createDropdown("dataType2");
- createDropdown("dataType3");
+ createDropdown("dataType1", dataTypes);
+ createDropdown("dataType2", dataTypes);
+ createDropdown("dataType3", dataTypes);
// Start Button
startButton = new Button(x + w/2 - 70,y+h-40,200,20,"Start",14);
@@ -276,18 +336,28 @@ class W_networking extends Widget {
cp5_networking.get(Textfield.class, "lsl_type3").setVisible(lsl_visible);
cp5_networking.get(Textfield.class, "lsl_numchan3").setVisible(lsl_visible);
- cp5_networking.get(ScrollableList.class, "port_name").setVisible(serial_visible);
- cp5_networking.get(ScrollableList.class, "baud_rate").setVisible(serial_visible);
+ cp5_networking_dropdowns.get(ScrollableList.class, "port_name").setVisible(serial_visible);
+ cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").setVisible(serial_visible);
- cp5_networking.get(ScrollableList.class, "dataType1").setVisible(true);
- cp5_networking.get(ScrollableList.class, "dataType2").setVisible(true);
- cp5_networking.get(ScrollableList.class, "dataType3").setVisible(true);
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").setVisible(true);
+
+ if(!serial_visible){
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").setVisible(true);
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").setVisible(true);
+ } else{
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").setVisible(false);
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").setVisible(false);
+ }
cp5_networking.get(RadioButton.class, "filter1").setVisible(true);
- cp5_networking.get(RadioButton.class, "filter2").setVisible(true);
- cp5_networking.get(RadioButton.class, "filter3").setVisible(true);
- cp5_networking.draw();
+ if(!serial_visible){
+ cp5_networking.get(RadioButton.class, "filter2").setVisible(true);
+ cp5_networking.get(RadioButton.class, "filter3").setVisible(true);
+ } else {
+ cp5_networking.get(RadioButton.class, "filter2").setVisible(false);
+ cp5_networking.get(RadioButton.class, "filter3").setVisible(false);
+ }
}
@@ -332,7 +402,7 @@ class W_networking extends Widget {
}
/* Creating DataType Dropdowns */
- void createDropdown(String name){
+ void createDropdown(String name, List<String> _items){
// dropdownColors.setActive((int)color(150, 170, 200)); //bg color of box when pressed
// dropdownColors.setForeground((int)color(177, 184, 193)); //when hovering over any box (primary or dropdown)
@@ -341,7 +411,7 @@ class W_networking extends Widget {
// dropdownColors.setValueLabel((int)color(100)); //color of text in all dropdown boxes
// cp5_networking.setColor(dropdownColors);
- cp5_networking.addScrollableList(name)
+ cp5_networking_dropdowns.addScrollableList(name)
.setOpen(false)
// dropdownColors.setActive((int)color(150, 170, 200)); //bg color of box when pressed
@@ -358,13 +428,13 @@ class W_networking extends Widget {
.setColorActive(color(150, 170, 200)) // border color when selected
// .setColorCursor(color(26,26,26))
- .setSize(100,200)// + maxFreqList.size())
+ .setSize(100,100)// + maxFreqList.size())
.setBarHeight(navH-4) //height of top/primary bar
.setItemHeight(navH-4) //height of all item/dropdown bars
- .addItems(dataTypes) // used to be .addItems(maxFreqList)
+ .addItems(_items) // used to be .addItems(maxFreqList)
.setVisible(false)
;
- cp5_networking.getController(name)
+ cp5_networking_dropdowns.getController(name)
.getCaptionLabel() //the caption label is the text object in the primary bar
.toUpperCase(false) //DO NOT AUTOSET TO UPPERCASE!!!
.setText("None")
@@ -373,7 +443,7 @@ class W_networking extends Widget {
.getStyle() //need to grab style before affecting the paddingTop
.setPaddingTop(4)
;
- cp5_networking.getController(name)
+ cp5_networking_dropdowns.getController(name)
.getValueLabel() //the value label is connected to the text objects in the dropdown item bars
.toUpperCase(false) //DO NOT AUTOSET TO UPPERCASE!!!
.setText("None")
@@ -397,6 +467,8 @@ class W_networking extends Widget {
column2 = x+21*w/40;
column3 = x+30*w/40;
+ fullColumnWidth = (column3+100) - column1;
+
row0 = y+h/4+10;
row1 = y+4*h/10;
row2 = y+5*h/10;
@@ -447,12 +519,14 @@ class W_networking extends Widget {
}
//Serial Specific
- cp5_networking.get(ScrollableList.class, "port_name").setPosition(column1, row2-offset);
- cp5_networking.get(ScrollableList.class, "baud_rate").setPosition(column1, row3-offset);
-
- cp5_networking.get(ScrollableList.class, "dataType1").setPosition(column1, row1-offset);
- cp5_networking.get(ScrollableList.class, "dataType2").setPosition(column2, row1-offset);
- cp5_networking.get(ScrollableList.class, "dataType3").setPosition(column3, row1-offset);
+ cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").setPosition(column1, row2-offset);
+ cp5_networking_dropdowns.get(ScrollableList.class, "port_name").setPosition(column1, row3-offset);
+ cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").setSize(100, 100);
+ cp5_networking_dropdowns.get(ScrollableList.class, "port_name").setSize(fullColumnWidth, 100);
+
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").setPosition(column1, row1-offset);
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").setPosition(column2, row1-offset);
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").setPosition(column3, row1-offset);
}
void mousePressed(){
@@ -507,11 +581,13 @@ class W_networking extends Widget {
cp5_networking.get(Textfield.class, "lsl_name3").setVisible(false);
cp5_networking.get(Textfield.class, "lsl_type3").setVisible(false);
cp5_networking.get(Textfield.class, "lsl_numchan3").setVisible(false);
- cp5_networking.get(ScrollableList.class, "dataType1").setVisible(false);
- cp5_networking.get(ScrollableList.class, "dataType2").setVisible(false);
- cp5_networking.get(ScrollableList.class, "dataType3").setVisible(false);
- cp5_networking.get(ScrollableList.class, "port_name").setVisible(false);
- cp5_networking.get(ScrollableList.class, "baud_rate").setVisible(false);
+
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").setVisible(false);
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").setVisible(false);
+ cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").setVisible(false);
+ cp5_networking_dropdowns.get(ScrollableList.class, "port_name").setVisible(false);
+ cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").setVisible(false);
+
cp5_networking.get(RadioButton.class, "filter1").setVisible(false);
cp5_networking.get(RadioButton.class, "filter2").setVisible(false);
cp5_networking.get(RadioButton.class, "filter3").setVisible(false);
@@ -548,7 +624,7 @@ class W_networking extends Widget {
String dt2="None";
String dt3="None";
networkActive = true;
- switch ((int)cp5_networking.get(ScrollableList.class, "dataType1").getValue()){
+ switch ((int)cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").getValue()){
case 0 : dt1 = "None";
break;
case 1 : dt1 = "TimeSeries";
@@ -562,7 +638,7 @@ class W_networking extends Widget {
case 5 : dt1 = "Widget";
break;
}
- switch ((int)cp5_networking.get(ScrollableList.class, "dataType2").getValue()){
+ switch ((int)cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").getValue()){
case 0 : dt2 = "None";
break;
case 1 : dt2 = "TimeSeries";
@@ -576,7 +652,7 @@ class W_networking extends Widget {
case 5 : dt2 = "Widget";
break;
}
- switch ((int)cp5_networking.get(ScrollableList.class, "dataType3").getValue()){
+ switch ((int)cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").getValue()){
case 0 : dt3 = "None";
break;
case 1 : dt3 = "TimeSeries";
@@ -718,14 +794,17 @@ class W_networking extends Widget {
void clearCP5(){
//clears all controllers from ControlP5 instance...
w_networking.cp5_networking.dispose();
+ w_networking.cp5_networking_dropdowns.dispose();
println("clearing cp5_networking...");
}
void closeAllDropdowns(){
dataDropdownsShouldBeClosed = true;
- w_networking.cp5_networking.get(ScrollableList.class, "dataType1").close();
- w_networking.cp5_networking.get(ScrollableList.class, "dataType2").close();
- w_networking.cp5_networking.get(ScrollableList.class, "dataType3").close();
+ w_networking.cp5_networking_dropdowns.get(ScrollableList.class, "dataType1").close();
+ w_networking.cp5_networking_dropdowns.get(ScrollableList.class, "dataType2").close();
+ w_networking.cp5_networking_dropdowns.get(ScrollableList.class, "dataType3").close();
+ w_networking.cp5_networking_dropdowns.get(ScrollableList.class, "baud_rate").close();
+ w_networking.cp5_networking_dropdowns.get(ScrollableList.class, "port_name").close();
}
};
@@ -1254,3 +1333,9 @@ void dataType2(int n){
void dataType3(int n){
w_networking.closeAllDropdowns();
}
+void port_name(int n){
+ w_networking.closeAllDropdowns();
+}
+void baud_rate(int n){
+ w_networking.closeAllDropdowns();
+}

0 comments on commit dbd834d

Please sign in to comment.