Skip to content

Commit

Permalink
Merge remote-tracking branch 'Tainfante_origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
opetany93 committed Jan 24, 2018
2 parents 84815b6 + 75fbea5 commit 47b6d96
Show file tree
Hide file tree
Showing 4 changed files with 136 additions and 107 deletions.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

109 changes: 55 additions & 54 deletions src/mainwindow/Chart.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ public class Chart implements Initializable {
@FXML
public CheckBox checkEight;
@FXML
private ComboBox<String> timeBox;
private TextField sampleText;
@FXML
private ComboBox<String> variableBox;
@FXML
Expand All @@ -75,9 +75,9 @@ public void initialize(URL location, ResourceBundle resources) {
checkEight.setSelected(true);
lchart.getData().addAll(series1,series2,series3,series4,series5,series6,series7,series8);
lchart.setLegendVisible(false);
timeBox.getItems().addAll("20", "500", "5000","10000");
variableBox.getItems().addAll("8 bits", "16 bits", "32 bits");
yAxis.setForceZeroInRange(false);
xAxis.setAutoRanging(true);

//Styling chart with colors//

Expand Down Expand Up @@ -344,62 +344,63 @@ public void onCheck8(ActionEvent actionEvent) {
}
}

public void onChooseSamples(ActionEvent actionEvent) {
updateXAxis();
}

public void updateXAxis(){
try {
selectedTime = timeBox.getSelectionModel().getSelectedItem();
if (selectedTime.equals("20")) {
if (series1.getData().sorted().size() > 20) {
series1.getData().remove(0, (series1.getData().size() - 20));
series2.getData().remove(0, (series2.getData().size() - 20));
series3.getData().remove(0, (series3.getData().size() - 20));
series4.getData().remove(0, (series4.getData().size() - 20));
series5.getData().remove(0, (series5.getData().size() - 20));
series6.getData().remove(0, (series6.getData().size() - 20));
series7.getData().remove(0, (series7.getData().size() - 20));
series8.getData().remove(0, (series8.getData().size() - 20));
}
} else if (selectedTime.equals("5000")) {
if (series1.getData().sorted().size() > 5000) {
series1.getData().remove(0, (series1.getData().size() - 5000));
series2.getData().remove(0, (series2.getData().size() - 5000));
series3.getData().remove(0, (series3.getData().size() - 5000));
series4.getData().remove(0, (series4.getData().size() - 5000));
series5.getData().remove(0, (series5.getData().size() - 5000));
series6.getData().remove(0, (series6.getData().size() - 5000));
series7.getData().remove(0, (series7.getData().size() - 5000));
series8.getData().remove(0, (series8.getData().size() - 5000));
}
} else if (selectedTime.equals("10000")) {
if (series1.getData().sorted().size() > 10000) {
series1.getData().remove(0, (series1.getData().size() - 10000));
series2.getData().remove(0, (series2.getData().size() - 10000));
series3.getData().remove(0, (series3.getData().size() - 10000));
series4.getData().remove(0, (series4.getData().size() - 10000));
series5.getData().remove(0, (series5.getData().size() - 10000));
series6.getData().remove(0, (series6.getData().size() - 10000));
series7.getData().remove(0, (series7.getData().size() - 10000));
series8.getData().remove(0, (series8.getData().size() - 10000));
}
public void updateXAxis() {
int samples;
if(null==sampleText){
samples=300;
}
else{
selectedTime = sampleText.getText();
samples = Integer.parseInt(selectedTime);
}
if (series1.getData().sorted().size() > samples) {
try {
series1.getData().remove(0, (series1.getData().size() - samples));
series2.getData().remove(0, (series2.getData().size() - samples));
series3.getData().remove(0, (series3.getData().size() - samples));
series4.getData().remove(0, (series4.getData().size() - samples));
series5.getData().remove(0, (series5.getData().size() - samples));
series6.getData().remove(0, (series6.getData().size() - samples));
series7.getData().remove(0, (series7.getData().size() - samples));
series8.getData().remove(0, (series8.getData().size() - samples));
}
else if (selectedTime.equals("500")) {
if (series1.getData().sorted().size() > 500) {
series1.getData().remove(0, (series1.getData().size() - 500));
series2.getData().remove(0, (series2.getData().size() - 500));
series3.getData().remove(0, (series3.getData().size() - 500));
series4.getData().remove(0, (series4.getData().size() - 500));
series5.getData().remove(0, (series5.getData().size() - 500));
series6.getData().remove(0, (series6.getData().size() - 500));
series7.getData().remove(0, (series7.getData().size() - 500));
series8.getData().remove(0, (series8.getData().size() - 500));
}
catch(NullPointerException nul){
System.out.println("No such data in the Series");
}
}
catch (NullPointerException exe){
}

public int numberOfSamples(){
int samples;
if(null==sampleText){
samples=200;
}
else{
selectedTime = sampleText.getText();
samples = Integer.parseInt(selectedTime);
}
return samples;
}

public boolean update(){
int samples;
if(null==sampleText){
samples=200;
}
else{
selectedTime = sampleText.getText();
samples = Integer.parseInt(selectedTime);
}
if (series1.getData().sorted().size() > samples) {
return true;
}
else{
return false;
}

}

public void onEnter(ActionEvent actionEvent) {
updateXAxis();
}
}
2 changes: 1 addition & 1 deletion src/mainwindow/chart.fxml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
</padding>
<children>
<Label text="Show number of samples:" />
<ComboBox prefWidth="150.0" fx:id="timeBox" onAction="#onChooseSamples"/>
<TextField fx:id="samplesText" onAction="#onEnter"/>
</children>
</HBox>
</children>
Expand Down
130 changes: 79 additions & 51 deletions src/plot/Plot.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import classes.DateAxis;
import classes.Frame;
import javafx.application.Platform;
import javafx.concurrent.Task;
import javafx.scene.chart.XYChart;
import mainwindow.Chart;
import mainwindow.Log;
Expand All @@ -18,15 +20,16 @@

public class Plot {

private boolean stop=false;
private volatile boolean stop = false;

private static volatile Plot PlotINSTANCE;

public boolean stopPlotting(){
return stop=true;
public boolean stopPlotting() {
return stop = true;

}


public static Plot getInstance() {
if (null == PlotINSTANCE) {
synchronized (Plot.class) {
Expand All @@ -38,58 +41,83 @@ public static Plot getInstance() {
return PlotINSTANCE;
}

private void plotData() throws InterruptedException {
private Frame plotData() throws InterruptedException {
Frame frame;
int data;
frame=PortReader.getInstance().getFrameBuffer().take();
frame.setNumberOfChannels(frame.getChannelData().size());
for(int i=0; i<frame.getNumberOfChannels();i++){
data=frame.getChannelData().get(i);

switch (i){
case 0:
series1.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 1:
series2.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 2:
series3.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 3:
series4.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 4:
series5.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 5:
series6.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 6:
series7.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 7:
series8.getData().add(new XYChart.Data(frame.getTime(), data));
break;

}
}
frame = PortReader.getInstance().getFrameBuffer().take();
return frame;
}
public void startPlotting(){
Thread plotThread=new Thread(()->{

while(!stop) {
try {
plotData();
Chart.getInstance().updateXAxis();
}
catch (Exception e) {
break;
public void startPlotting() {

new Thread(new Runnable() {
Frame receivedFrame;

@Override
public void run() {
while (!stop) {
try {
receivedFrame = plotData();
} catch (InterruptedException e) {
e.printStackTrace();

}
receivedFrame.setNumberOfChannels(receivedFrame.getChannelData().size());
for (int i = 0; i < receivedFrame.getNumberOfChannels(); i++) {
final int data = receivedFrame.getChannelData().get(i);
final int j = i;
final Frame frame = receivedFrame;

Platform.runLater(() -> {

switch (j) {
case 0:
series1.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 1:
series2.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 2:
series3.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 3:
series4.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 4:
series5.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 5:
series6.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 6:
series7.getData().add(new XYChart.Data(frame.getTime(), data));
break;
case 7:
series8.getData().add(new XYChart.Data(frame.getTime(), data));
break;
}
});
}
final boolean update = Chart.getInstance().update();
final int samples = Chart.getInstance().numberOfSamples();
if (update) {
Platform.runLater(() -> {
try {
series1.getData().remove(0, (series1.getData().size() - samples));
series2.getData().remove(0, (series2.getData().size() - samples));
series3.getData().remove(0, (series3.getData().size() - samples));
series4.getData().remove(0, (series4.getData().size() - samples));
series5.getData().remove(0, (series5.getData().size() - samples));
series6.getData().remove(0, (series6.getData().size() - samples));
series7.getData().remove(0, (series7.getData().size() - samples));
series8.getData().remove(0, (series8.getData().size() - samples));
} catch (NullPointerException nul) {
System.out.println("No such data in the Series");
}
});
}
}
}
});
plotThread.start();

}).start();
}

}

0 comments on commit 47b6d96

Please sign in to comment.