diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/core/messages/DataMessage.java b/ch.psi.fda/src/main/java/ch/psi/fda/core/messages/DataMessage.java index 19013ae..3cf9f89 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/core/messages/DataMessage.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/core/messages/DataMessage.java @@ -32,11 +32,11 @@ public class DataMessage extends Message{ private final List data; private final List metadata; - public DataMessage(){ - this.data = new ArrayList(); - this.metadata = new ArrayList<>(); - } - +// public DataMessage(){ +// this.data = new ArrayList(); +// this.metadata = new ArrayList<>(); +// } +// public DataMessage(List metadata){ this.data = new ArrayList(); this.metadata = metadata; diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/deserializer/DataDeserializerMDA.java b/ch.psi.fda/src/main/java/ch/psi/fda/deserializer/DataDeserializerMDA.java index 6144750..ad9e001 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/deserializer/DataDeserializerMDA.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/deserializer/DataDeserializerMDA.java @@ -391,7 +391,7 @@ public class DataDeserializerMDA implements DataDeserializer { for(Message m: container.getMessage()){ if(m instanceof DataMessage){ // Add own data to message and pass it to container - DataMessage mm = new DataMessage(); + DataMessage mm = new DataMessage(new ArrayList()); // Workaround for(Double[] d: data){ mm.getData().add(d[i]); } @@ -419,7 +419,7 @@ public class DataDeserializerMDA implements DataDeserializer { logger.fine("Convert data structure [rank="+scanRank+"]..."); for(int t = 0; t()); // workaround for(Double[] d: data){ m.getData().add(d[t]); } diff --git a/ch.psi.fda/src/test/java/ch/psi/fda/aq/ManipulatorTest.java b/ch.psi.fda/src/test/java/ch/psi/fda/aq/ManipulatorTest.java index 49b9054..106659d 100644 --- a/ch.psi.fda/src/test/java/ch/psi/fda/aq/ManipulatorTest.java +++ b/ch.psi.fda/src/test/java/ch/psi/fda/aq/ManipulatorTest.java @@ -42,9 +42,9 @@ import ch.psi.fda.core.Manipulation; import ch.psi.fda.core.manipulator.JythonManipulation; import ch.psi.fda.core.messages.ComponentMetadata; import ch.psi.fda.core.messages.DataMessage; -import ch.psi.fda.core.messages.DataMessageMetadata; import ch.psi.fda.core.messages.EndOfStreamMessage; import ch.psi.fda.core.messages.Message; +import ch.psi.fda.core.messages.Metadata; import ch.psi.fda.core.scripting.JythonParameterMapping; import ch.psi.fda.core.scripting.JythonParameterMappingChannel; import ch.psi.fda.core.scripting.JythonParameterMappingID; @@ -77,8 +77,6 @@ public class ManipulatorTest { */ @Test(expected=IllegalArgumentException.class) public void testConstructor() { - DataMessageMetadata dmm = new DataMessageMetadata(); - String id="computedId"; String script = "import math\ndef process(o):\n return math.cos(10.0) + math.sin(o)"; List mapping = new ArrayList(); @@ -89,14 +87,12 @@ public class ManipulatorTest { // id "myid" which is expected in the mapping List manipulations = new ArrayList(); manipulations.add(manipulation); - new Manipulator(bus, dmm, manipulations); + new Manipulator(bus, manipulations); } @Test public void testConstructorNoMappingNoParam() { - DataMessageMetadata dmm = new DataMessageMetadata(); - String id="cid"; String script = "import math\ndef process():\n return 0.0"; List mapping = new ArrayList(); @@ -105,15 +101,15 @@ public class ManipulatorTest { List manipulations = new ArrayList(); manipulations.add(manipulation); - new Manipulator(bus, dmm, manipulations); + new Manipulator(bus, manipulations); // Expect IllegalArgument Exception as there is no mapping for the parameter c } @Test public void testConstructorMappingNoParam() { - DataMessageMetadata dmm = new DataMessageMetadata(); - dmm.getComponents().add(new ComponentMetadata("myid")); - dmm.getComponents().add(new ComponentMetadata("myid2")); + List dmm = new ArrayList<>(); + dmm.add(new Metadata("myid")); + dmm.add(new Metadata("myid2")); String id="cid"; String script = "import math\ndef process():\n return 0.0"; @@ -123,8 +119,7 @@ public class ManipulatorTest { List manipulations = new ArrayList(); manipulations.add(manipulation); - new Manipulator(bus, dmm, manipulations); - // Expect IllegalArgument Exception as there is no mapping for the parameter c + new Manipulator(bus, manipulations).onMessage(new DataMessage(dmm)); } /** @@ -132,9 +127,9 @@ public class ManipulatorTest { */ @Test(expected=IllegalArgumentException.class) public void testConstructorNoMapping() { - DataMessageMetadata dmm = new DataMessageMetadata(); - dmm.getComponents().add(new ComponentMetadata("myid")); - dmm.getComponents().add(new ComponentMetadata("myid2")); + List dmm = new ArrayList<>(); + dmm.add(new Metadata("myid")); + dmm.add(new Metadata("myid2")); String id="cid"; String script = "import math\ndef process(o ,c):\n return math.cos(c) + math.sin(o)"; @@ -144,7 +139,8 @@ public class ManipulatorTest { List manipulations = new ArrayList(); manipulations.add(manipulation); - new Manipulator(bus, dmm, manipulations); + new Manipulator(bus, manipulations).onMessage(new DataMessage(dmm));; + // Expect IllegalArgument Exception as there is no mapping for the parameter c } diff --git a/ch.psi.fda/src/test/java/ch/psi/fda/deserializer/DataDeserializerMDATest.java b/ch.psi.fda/src/test/java/ch/psi/fda/deserializer/DataDeserializerMDATest.java index 519f4b1..b6a6bc5 100644 --- a/ch.psi.fda/src/test/java/ch/psi/fda/deserializer/DataDeserializerMDATest.java +++ b/ch.psi.fda/src/test/java/ch/psi/fda/deserializer/DataDeserializerMDATest.java @@ -31,10 +31,10 @@ import org.junit.Test; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; -import ch.psi.fda.core.messages.ComponentMetadata; import ch.psi.fda.core.messages.ControlMessage; import ch.psi.fda.core.messages.DataMessage; import ch.psi.fda.core.messages.Message; +import ch.psi.fda.core.messages.Metadata; /** * @author ebner @@ -63,30 +63,39 @@ public class DataDeserializerMDATest { @Test public void testRead() throws InterruptedException { - // Visualize metadata - StringBuilder b = new StringBuilder(); - b.append("["); - StringBuilder b1 = new StringBuilder(); - b1.append("["); - for(ComponentMetadata cm : deserializer.getMetadata().getComponents()){ - b.append(" "); - b.append(cm.getId()); - b1.append(" "); - b1.append(cm.getDimension()); - } - b.append(" ]"); - b1.append(" ]"); - logger.info("Metadata "+b.toString()); - logger.info("Metadata "+b1.toString()); // Do "read" data bus.register(new Object(){ + boolean first = true; + @Subscribe public void onMessage(Message m){ if(m instanceof DataMessage){ DataMessage x = (DataMessage) m; + + if(first){ + first=false; + // Visualize metadata + StringBuilder b = new StringBuilder(); + b.append("["); + StringBuilder b1 = new StringBuilder(); + b1.append("["); + for(Metadata cm : x.getMetadata()){ + b.append(" "); + b.append(cm.getId()); + b1.append(" "); + b1.append(cm.getDimension()); + } + b.append(" ]"); + b1.append(" ]"); + + logger.info("Metadata "+b.toString()); + logger.info("Metadata "+b1.toString()); + } + + logger.info( x.toString() ); } else if(m instanceof ControlMessage){ diff --git a/ch.psi.fda/src/test/java/ch/psi/fda/serializer/DataSerializerTest.java b/ch.psi.fda/src/test/java/ch/psi/fda/serializer/DataSerializerTest.java index 405707d..4025c46 100644 --- a/ch.psi.fda/src/test/java/ch/psi/fda/serializer/DataSerializerTest.java +++ b/ch.psi.fda/src/test/java/ch/psi/fda/serializer/DataSerializerTest.java @@ -20,6 +20,8 @@ package ch.psi.fda.serializer; import java.io.File; +import java.util.ArrayList; +import java.util.List; import org.junit.After; import org.junit.Before; @@ -27,9 +29,8 @@ import org.junit.Test; import com.google.common.eventbus.EventBus; -import ch.psi.fda.core.messages.ComponentMetadata; import ch.psi.fda.core.messages.DataMessage; -import ch.psi.fda.core.messages.DataMessageMetadata; +import ch.psi.fda.core.messages.Metadata; import ch.psi.fda.core.messages.StreamDelimiterMessage; import ch.psi.fda.core.messages.EndOfStreamMessage; import ch.psi.fda.serializer.DataSerializer; @@ -44,7 +45,6 @@ public class DataSerializerTest { private static final String tmpDirectory = "target/tmp"; - private DataMessageMetadata metadata; private EventBus bus; /** @@ -53,7 +53,6 @@ public class DataSerializerTest { @Before public void setUp() throws Exception { new File(tmpDirectory).mkdirs(); - metadata = new DataMessageMetadata(); bus = new EventBus(); } @@ -62,19 +61,19 @@ public class DataSerializerTest { * @throws InterruptedException */ private void generate1DData() throws InterruptedException{ - - metadata.getComponents().add(new ComponentMetadata("id0", 0)); - metadata.getComponents().add(new ComponentMetadata("id1", 0)); - metadata.getComponents().add(new ComponentMetadata("id2", 0)); + List metadata = new ArrayList<>(); + metadata.add(new Metadata("id0", 0)); + metadata.add(new Metadata("id1", 0)); + metadata.add(new Metadata("id2", 0)); // Dimension - DataMessage m = new DataMessage(); + DataMessage m = new DataMessage(metadata); m.getData().add(0.000000000000000001); m.getData().add(0.1); m.getData().add(1d); // have this value as double bus.post(m); - m = new DataMessage(); + m = new DataMessage(metadata); m.getData().add(0.02); m.getData().add(0.2); m.getData().add(2d); // have this value as double @@ -87,15 +86,15 @@ public class DataSerializerTest { * @throws InterruptedException */ private void generate2DData() throws InterruptedException{ - - metadata.getComponents().add(new ComponentMetadata("id0", 1)); - metadata.getComponents().add(new ComponentMetadata("id1", 0)); - metadata.getComponents().add(new ComponentMetadata("id2", 0)); + List metadata = new ArrayList<>(); + metadata.add(new Metadata("id0", 1)); + metadata.add(new Metadata("id1", 0)); + metadata.add(new Metadata("id2", 0)); for(double i=0;i<5;i++){ for(double t=0.1; t<10; t=t+0.1){ // Dimension - DataMessage m = new DataMessage(); + DataMessage m = new DataMessage(metadata); m.getData().add(i); m.getData().add(t); m.getData().add(Math.log(t)); // have this value as double @@ -114,17 +113,17 @@ public class DataSerializerTest { * @throws InterruptedException */ private void generate3DData() throws InterruptedException{ - - metadata.getComponents().add(new ComponentMetadata("id0", 2)); - metadata.getComponents().add(new ComponentMetadata("id1", 1)); - metadata.getComponents().add(new ComponentMetadata("id2", 0)); - metadata.getComponents().add(new ComponentMetadata("id3", 0)); + List metadata = new ArrayList<>(); + metadata.add(new Metadata("id0", 2)); + metadata.add(new Metadata("id1", 1)); + metadata.add(new Metadata("id2", 0)); + metadata.add(new Metadata("id3", 0)); for(double z=30;z<36;z++){ for(double i=0;i<6;i++){ for(double t=0.1; t<1.1; t=t+0.1){ // Dimension - DataMessage m = new DataMessage(); + DataMessage m = new DataMessage(metadata); m.getData().add(z); m.getData().add(i); m.getData().add(t); @@ -153,7 +152,7 @@ public class DataSerializerTest { */ @Test public void testRunTXT() throws InterruptedException { - DataSerializer serializer = new DataSerializerTXT(metadata, new File(tmpDirectory+"/test.txt"), true); + DataSerializer serializer = new DataSerializerTXT(new File(tmpDirectory+"/test.txt"), true); bus.register(serializer); generate1DData(); } @@ -165,7 +164,7 @@ public class DataSerializerTest { @Test public void testRunMAT() throws InterruptedException { - DataSerializer serializer = new DataSerializerMAT(metadata, new File(tmpDirectory+"/test.mat")); + DataSerializer serializer = new DataSerializerMAT(new File(tmpDirectory+"/test.mat")); bus.register(serializer); generate1DData(); } @@ -176,7 +175,7 @@ public class DataSerializerTest { */ @Test public void testRunMAT2D() throws InterruptedException { - DataSerializer serializer = new DataSerializerMAT2D(metadata, new File(tmpDirectory+"/test-2d.mat")); + DataSerializer serializer = new DataSerializerMAT2D(new File(tmpDirectory+"/test-2d.mat")); bus.register(serializer); generate2DData(); } @@ -187,7 +186,7 @@ public class DataSerializerTest { */ @Test public void testRunTXT2D() throws InterruptedException { - DataSerializer serializer = new DataSerializerTXT2D(metadata, new File(tmpDirectory+"/test-2d.txt")); + DataSerializer serializer = new DataSerializerTXT2D(new File(tmpDirectory+"/test-2d.txt")); bus.register(serializer); generate2DData(); } @@ -198,7 +197,7 @@ public class DataSerializerTest { */ @Test public void testRunSplitTXT() throws InterruptedException { - DataSerializer serializer = new DataSerializerTXTSplit(metadata, new File(tmpDirectory+"/test-2d-split.txt")); + DataSerializer serializer = new DataSerializerTXTSplit(new File(tmpDirectory+"/test-2d-split.txt")); bus.register(serializer); generate2DData(); } @@ -209,7 +208,7 @@ public class DataSerializerTest { */ @Test public void testRun2D() throws InterruptedException { - DataSerializer serializer = new DataSerializerMDA(metadata, new File(tmpDirectory+"/test-2d.mda")); + DataSerializer serializer = new DataSerializerMDA(new File(tmpDirectory+"/test-2d.mda")); bus.register(serializer); generate2DData(); } @@ -220,7 +219,7 @@ public class DataSerializerTest { */ @Test public void testRun3D() throws InterruptedException { - DataSerializer serializer = new DataSerializerMDA(metadata, new File(tmpDirectory+"/test-3d.mda")); + DataSerializer serializer = new DataSerializerMDA(new File(tmpDirectory+"/test-3d.mda")); bus.register(serializer); generate3DData(); } diff --git a/ch.psi.fda/src/test/java/ch/psi/fda/visualizer/DataVisualizerTest.java b/ch.psi.fda/src/test/java/ch/psi/fda/visualizer/DataVisualizerTest.java index e09aee8..e2989c3 100644 --- a/ch.psi.fda/src/test/java/ch/psi/fda/visualizer/DataVisualizerTest.java +++ b/ch.psi.fda/src/test/java/ch/psi/fda/visualizer/DataVisualizerTest.java @@ -2,15 +2,15 @@ * * Copyright 2010 Paul Scherrer Institute. All rights reserved. * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This code is free software: you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation, either version 3 of the License, or (at your option) any + * later version. * - * This code is distributed in the hope that it will be useful, - * but without any warranty; without even the implied warranty of - * merchantability or fitness for a particular purpose. See the - * GNU Lesser General Public License for more details. + * This code is distributed in the hope that it will be useful, but without any + * warranty; without even the implied warranty of merchantability or fitness for + * a particular purpose. See the GNU Lesser General Public License for more + * details. * * You should have received a copy of the GNU Lesser General Public License * along with this code. If not, see . @@ -21,8 +21,7 @@ package ch.psi.fda.visualizer; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; +import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JPanel; @@ -32,272 +31,178 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Test; -import ch.psi.fda.core.messages.ComponentMetadata; +import com.google.common.eventbus.EventBus; + import ch.psi.fda.core.messages.DataMessage; -import ch.psi.fda.core.messages.DataMessageMetadata; -import ch.psi.fda.core.messages.DataQueue; +import ch.psi.fda.core.messages.Metadata; import ch.psi.fda.core.messages.StreamDelimiterMessage; import ch.psi.fda.core.messages.EndOfStreamMessage; -import ch.psi.fda.core.messages.Message; -import ch.psi.fda.model.v1.MatrixPlot; -import ch.psi.fda.model.v1.PseudoPositioner; -import ch.psi.fda.model.v1.Visualization; -import ch.psi.fda.visualizer.Visualizer; +import ch.psi.plot.xy.LinePlot; +import ch.psi.plot.xyz.MatrixPlotData; /** - * All test cases in this test class are meant to be executed manually - * Remove @Ignore in front of the test function to be able to run it. - * - * @author ebner - * + * All test cases in this test class are meant to be executed manually Remove @Ignore + * in front of the test function to be able to run it. */ public class DataVisualizerTest { - /** - * @throws java.lang.Exception - */ + private static final Logger logger = Logger.getLogger(DataVisualizerTest.class.getName()); + @Before public void setUp() throws Exception { } - /** - * @throws java.lang.Exception - */ @After public void tearDown() throws Exception { } - /** - * Test method for {@link ch.psi.fda.visualizer.Visualizer#run()}. - * @throws InterruptedException - */ @Ignore @Test public void testRun() throws InterruptedException { - final BlockingQueue q = new LinkedBlockingQueue(); - DataMessageMetadata dm = new DataMessageMetadata(); - dm.getComponents().add(new ComponentMetadata("id1", 0)); - dm.getComponents().add(new ComponentMetadata("id2", 0)); - dm.getComponents().add(new ComponentMetadata("id3", 0)); - DataQueue queue = new DataQueue(q,dm); + List metadata = new ArrayList<>(); + metadata.add(new Metadata("id1")); + metadata.add(new Metadata("id2")); + metadata.add(new Metadata("id3")); + + EventBus bus = new EventBus(); + + List list = new ArrayList<>(); + list.add(new XYSeriesDataFilter("id1", "id2", new LinePlot("One"))); + list.add(new XYSeriesDataFilter("id1", "id3", new LinePlot("Two"))); - // Create visualization - List vlist = new ArrayList(); - ch.psi.fda.model.v1.LinePlot p = new ch.psi.fda.model.v1.LinePlot(); - p.setX("id1"); - p.getY().add("id2"); - vlist.add(p); - p = new ch.psi.fda.model.v1.LinePlot(); - p.setX("id1"); - p.getY().add("id3"); - vlist.add(p); - // Create visualizer - Visualizer visualizer = new Visualizer(queue.getDataMessageMetadata(), vlist); - + Visualizer visualizer = new Visualizer(list); + bus.register(visualizer); + JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(600, 400); JPanel pan = new JPanel(); - for(JPanel pp: visualizer.getPlotPanels()){ + for (JPanel pp : visualizer.getPlotPanels()) { pan.add(pp); } f.add(pan); f.setVisible(true); - - - // Thread creating data - Thread t = new Thread(new Runnable() { - - @Override - public void run() { - DataMessage m; - for(double t=0;t<4;t++){ - for(double i =0;i<100;i=i+0.1){ - m = new DataMessage(); - m.getData().add(i); - m.getData().add(t+Math.sin(i)); - m.getData().add(t+Math.cos(i)); - q.add(m); - try { - Thread.sleep(10); - } catch (InterruptedException e) { - throw new RuntimeException("Sleep interrupted",e); - } - } - q.add(new StreamDelimiterMessage(0)); - } - - q.add(new EndOfStreamMessage()); - + + DataMessage m; + for (double t = 0; t < 4; t++) { + for (double i = 0; i < 100; i = i + 0.1) { + m = new DataMessage(metadata); + m.getData().add(i); + m.getData().add(t + Math.sin(i)); + m.getData().add(t + Math.cos(i)); + bus.post(m); + + Thread.sleep(5); } - }); - // Start data thread - t.start(); - - -// visualizer.visualize(); - - t.join(); - + bus.post(new StreamDelimiterMessage(0)); + } + + bus.post(new EndOfStreamMessage()); + Thread.sleep(10000); } - + @Ignore @Test public void testRunArray() throws InterruptedException { - final BlockingQueue q = new LinkedBlockingQueue(); - DataMessageMetadata dm = new DataMessageMetadata(); - dm.getComponents().add(new ComponentMetadata("id1", 0)); - DataQueue queue = new DataQueue(q,dm); - // Create visualization - List vlist = new ArrayList(); - ch.psi.fda.model.v1.LinePlotArray p = new ch.psi.fda.model.v1.LinePlotArray(); - p.getY().add("id1"); - p.setMaxSeries(10); - vlist.add(p); - + List metadata = new ArrayList<>(); + metadata.add(new Metadata("id1")); + + EventBus bus = new EventBus(); + + List list = new ArrayList<>(); + list.add(new XYSeriesArrayDataFilter("id1", new LinePlot("One"))); + // Create visualizer - Visualizer visualizer = new Visualizer(queue.getDataMessageMetadata(), vlist); - + Visualizer visualizer = new Visualizer(list); + bus.register(visualizer); + JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(600, 400); JPanel pan = new JPanel(); - for(JPanel pp: visualizer.getPlotPanels()){ + for (JPanel pp : visualizer.getPlotPanels()) { pan.add(pp); } f.add(pan); f.setVisible(true); - - - // Thread creating data - Thread t = new Thread(new Runnable() { - - @Override - public void run() { - DataMessage m; - int npoints = 10000; - for(double t=0;t<10;t++){ - double[] values = new double[npoints]; - - for(int i=0;i q = new LinkedBlockingQueue(); - DataMessageMetadata dm = new DataMessageMetadata(); - dm.getComponents().add(new ComponentMetadata("id1", 1)); - dm.getComponents().add(new ComponentMetadata("id2", 0)); - dm.getComponents().add(new ComponentMetadata("id3", 0)); - DataQueue queue = new DataQueue(q,dm); - - List vlist = new ArrayList(); - ch.psi.fda.model.v1.LinePlot p = new ch.psi.fda.model.v1.LinePlot(); - p.setX("id2"); - p.getY().add("id3"); - vlist.add(p); - -// 0d,4d,5,0d,100d,1001 - - PseudoPositioner pos = new PseudoPositioner(); - pos.setId("id1"); - pos.setCounts(5); - - PseudoPositioner pos1 = new PseudoPositioner(); - pos1.setId("id2"); - pos1.setCounts(1000); - - MatrixPlot mp = new MatrixPlot(); - mp.setX(pos); - mp.setY(pos1); - mp.setZ("id3"); - vlist.add(mp); - + + int nx = 100; + int ny = 1000; + + List metadata = new ArrayList<>(); + metadata.add(new Metadata("id1")); + metadata.add(new Metadata("id2")); + metadata.add(new Metadata("id3")); + + // EventBus bus = new AsyncEventBus(Executors.newFixedThreadPool(1)); + EventBus bus = new EventBus(); + + List list = new ArrayList<>(); + list.add(new XYSeriesDataFilter("id2", "id3", new LinePlot("Line"))); + list.add(new XYZSeriesDataFilter("id1", "id2", "id3", new ch.psi.plot.xyz.MatrixPlot("Matrix", new MatrixPlotData(1, nx, nx, 1, ny, ny)))); + // Create visualizer - Visualizer visualizer = new Visualizer(queue.getDataMessageMetadata(), vlist); - + Visualizer visualizer = new Visualizer(list); + bus.register(visualizer); + JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(600, 400); -// f.add(plot.getPlotPanel()); + // f.add(plot.getPlotPanel()); JPanel pan = new JPanel(); - for(JPanel pp: visualizer.getPlotPanels()){ + for (JPanel pp : visualizer.getPlotPanels()) { pan.add(pp); } f.add(pan); f.setVisible(true); - - - // Thread creating data - Thread t = new Thread(new Runnable() { - - @Override - public void run() { - DataMessage m; - for(double t=1;t<=5;t++){ - for(double i=1;i<=1000;i++){ - m = new DataMessage(); - m.getData().add(t); - m.getData().add(i); - m.getData().add(t+Math.cos(i)); - q.add(m); - try { - Thread.sleep(10); - } catch (InterruptedException e) { - throw new RuntimeException("Sleep interrupted",e); - } - } - q.add(new StreamDelimiterMessage(0)); - } - - q.add(new EndOfStreamMessage()); - + + DataMessage m; + for (double t = 1; t <= nx; t++) { + for (double i = 1; i <= ny; i++) { + m = new DataMessage(metadata); + m.getData().add(t); + m.getData().add(i); + m.getData().add(t + Math.cos(i)); + bus.post(m); + + // Thread.sleep(5); } - }); - // Start data thread - t.start(); - - -// visualizer.visualize(); - - t.join(); - - Thread.sleep(10000); + bus.post(new StreamDelimiterMessage(0)); + } + + bus.post(new EndOfStreamMessage()); + + logger.info("Generation done"); + + Thread.sleep(100000); } - + }