package cupcarbon; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import device.DeviceList; import device.SensorNode; import javafx.fxml.FXML; import javafx.scene.chart.LineChart; import javafx.scene.chart.XYChart.Data; import javafx.scene.chart.XYChart.Series; import project.Project; public class EnergyDrawController { @FXML public LineChart<String, Double> lineChart; @FXML public void battery() { lineChart.getXAxis().setAutoRanging(true); lineChart.getYAxis().setAutoRanging(true); int idx = 1; double n = 0; double cv = 0; double sum = 0; for(SensorNode sensor : DeviceList.sensors) { if(sensor.isSelected()) { n++; Series<String, Double> series = new Series<String, Double>(); series.setName(sensor.getName()); String fileName = Project.getProjectResultPath()+File.separator+"wisen_simulation.csv"; String [] t ; try { FileReader fr = new FileReader(fileName); BufferedReader br = new BufferedReader(fr); br.readLine(); String s = ""; while((s=br.readLine()) != null) { t=s.split(";"); String sx = String.format("%2.2f" , Double.parseDouble(t[0])).replaceAll(",", "."); String sy = String.format("%2.2f" , Double.parseDouble(t[idx])) ; double y = Double.parseDouble(sy.replaceAll(",", ".")); cv = y; Data<String, Double> data = new Data<String, Double>(sx, y); series.getData().add(data); } br.close(); sum += cv; } catch (Exception e) { e.printStackTrace(); } lineChart.getData().add(series); } idx++; } System.out.println(sum/n); } @FXML public void consumption() { lineChart.getXAxis().setAutoRanging(true); lineChart.getYAxis().setAutoRanging(true); int idx = 1; for(SensorNode sensor : DeviceList.sensors) { if(sensor.isSelected()) { Series<String, Double> series = new Series<String, Double>(); series.setName(sensor.getName()); series.getData().removeAll(series.getData()); String fileName = Project.getProjectResultPath()+File.separator+"wisen_simulation.csv"; String [] t ; try { FileReader fr = new FileReader(fileName); BufferedReader br = new BufferedReader(fr); br.readLine(); String s = ""; s=br.readLine(); t=s.split(";"); String sx = String.format("%2.2f" , Double.parseDouble(t[0])).replaceAll(",", "."); String sy = String.format("%2.2f" , Double.parseDouble(t[idx])) ; double y0 = Double.parseDouble(sy.replaceAll(",", ".")); while((s=br.readLine()) != null) { t=s.split(";"); sx = String.format("%2.2f" , Double.parseDouble(t[0])).replaceAll(",", "."); sy = String.format("%2.2f" , Double.parseDouble(t[idx])) ; double y = Double.parseDouble(sy.replaceAll(",", ".")); Data<String, Double> data = new Data<String, Double>(sx, y0-y); y0=y; series.getData().add(data); } br.close(); } catch (Exception e) { e.printStackTrace(); } lineChart.getData().add(series); } idx++; } } @FXML public void batteryTotal() { //TODO } @FXML public void batteryAverage() { //TODO } }