diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/ConversionMain.java b/ch.psi.fda/src/main/java/ch/psi/fda/ConversionMain.java index ca93881..2d67037 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/ConversionMain.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/ConversionMain.java @@ -38,13 +38,13 @@ import com.google.common.eventbus.EventBus; import ch.psi.fda.deserializer.DataDeserializer; import ch.psi.fda.deserializer.DataDeserializerMDA; import ch.psi.fda.deserializer.DataDeserializerTXT; -import ch.psi.fda.serializer.DataSerializerMAT; -import ch.psi.fda.serializer.DataSerializerMAT2D; -import ch.psi.fda.serializer.DataSerializerMAT2DZigZag; -import ch.psi.fda.serializer.DataSerializerMDA; -import ch.psi.fda.serializer.DataSerializerTXT; -import ch.psi.fda.serializer.DataSerializerTXT2D; -import ch.psi.fda.serializer.DataSerializerTXTSplit; +import ch.psi.fda.serializer.SerializerMAT; +import ch.psi.fda.serializer.SerializerMAT2D; +import ch.psi.fda.serializer.SerializerMAT2DZigZag; +import ch.psi.fda.serializer.SerializerMDA; +import ch.psi.fda.serializer.SerializerTXT; +import ch.psi.fda.serializer.SerializerTXT2D; +import ch.psi.fda.serializer.SerializerTXTSplit; /** * Converter to convert the format of datafiles @@ -98,25 +98,25 @@ public class ConversionMain { } if(writer.equals(Writer.MAT)){ - bus.register(new DataSerializerMAT(output)); + bus.register(new SerializerMAT(output)); } else if(writer.equals(Writer.MAT_2D)){ - bus.register(new DataSerializerMAT2D(output)); + bus.register(new SerializerMAT2D(output)); } else if(writer.equals(Writer.TXT)){ - bus.register(new DataSerializerTXT(output, false)); + bus.register(new SerializerTXT(output, false)); } else if(writer.equals(Writer.TXT_2D)){ - bus.register(new DataSerializerTXT2D(output)); + bus.register(new SerializerTXT2D(output)); } else if(writer.equals(Writer.TXT_SPLIT)){ - bus.register(new DataSerializerTXTSplit(output)); + bus.register(new SerializerTXTSplit(output)); } else if(writer.equals(Writer.MDA)){ - bus.register(new DataSerializerMDA(output)); + bus.register(new SerializerMDA(output)); } else if(writer.equals(Writer.MAT_2D_Z)){ - bus.register(new DataSerializerMAT2DZigZag(output)); + bus.register(new SerializerMAT2DZigZag(output)); } else{ throw new IllegalArgumentException("Writer of type "+writer+" not supported."); diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/aq/Acquisition.java b/ch.psi.fda/src/main/java/ch/psi/fda/aq/Acquisition.java index 7712ff2..a153413 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/aq/Acquisition.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/aq/Acquisition.java @@ -106,7 +106,7 @@ import ch.psi.fda.model.v1.SimpleScalarDetector; import ch.psi.fda.model.v1.Timestamp; import ch.psi.fda.model.v1.Variable; import ch.psi.fda.model.v1.VariableParameterMapping; -import ch.psi.fda.serializer.DataSerializerTXT; +import ch.psi.fda.serializer.SerializerTXT; import ch.psi.jcae.Channel; import ch.psi.jcae.ChannelDescriptor; import ch.psi.jcae.ChannelException; @@ -130,7 +130,7 @@ public class Acquisition { private ActionLoop actionLoop; private Manipulator manipulator; - private DataSerializerTXT serializer; + private SerializerTXT serializer; private List manipulations; private volatile boolean active = false; @@ -250,7 +250,7 @@ public class Acquisition { b.register(this.manipulator); - this.serializer = new DataSerializerTXT(datafile, true); + this.serializer = new SerializerTXT(datafile, true); bus.register(serializer); } else{ @@ -259,7 +259,7 @@ public class Acquisition { mapScan(collector, smodel); // col = collector; - this.serializer = new DataSerializerTXT(datafile, true); + this.serializer = new SerializerTXT(datafile, true); bus.register(serializer); } } diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXT.java b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXT.java deleted file mode 100644 index c7c26f0..0000000 --- a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXT.java +++ /dev/null @@ -1,197 +0,0 @@ -/** - * - * 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 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 . - * - */ - -package ch.psi.fda.serializer; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.logging.Logger; - -import com.google.common.eventbus.Subscribe; - -import ch.psi.fda.messages.DataMessage; -import ch.psi.fda.messages.EndOfStreamMessage; -import ch.psi.fda.messages.Message; -import ch.psi.fda.messages.Metadata; -import ch.psi.fda.messages.StreamDelimiterMessage; - -/** - * Serialize data received by a DataQueue - */ -public class DataSerializerTXT { - - private static final Logger logger = Logger.getLogger(DataSerializerTXT.class.getName()); - - private File file; - - private boolean appendSuffix = true; - - - private boolean first = true; - private File outfile; - - private int icount; - private String basename; - private String extension; - private boolean newfile; - private boolean dataInBetween; - private BufferedWriter writer; - private StringBuffer b; - private StringBuffer b1; - - - /** - * @param metadata - * @param file - * @param appendSuffix Flag whether to append a _0000 suffix after the original file name - */ - public DataSerializerTXT(File file, boolean appendSuffix){ - this.file = file; - this.appendSuffix = appendSuffix; - } - - @Subscribe - public void onMessage(Message message){ - try{ - if(first){ - first=false; - // Write header - - - - icount = 0; - newfile = true; - dataInBetween = false; - writer = null; - - // Get basename of the file - basename = this.file.getAbsolutePath(); // Determine file name - extension = basename.replaceAll("^.*\\.", ""); // Determine extension - basename = basename.replaceAll("\\."+extension+"$", ""); - } - - if(message instanceof DataMessage){ - dataInBetween = true; - if(newfile){ - - b = new StringBuffer(); - b1 = new StringBuffer(); - b.append("#"); - b1.append("#"); - for(Metadata c: ((DataMessage) message).getMetadata()){ - - b.append(c.getId()); - b.append("\t"); - - b1.append(c.getDimension()); - b1.append("\t"); - } - b.setCharAt(b.length()-1, '\n'); - b1.setCharAt(b1.length()-1, '\n'); - - // Open new file and write header - // Construct file name - if(appendSuffix){ - outfile = new File(String.format("%s_%04d.%s", basename, icount, extension)); - } - else{ - outfile = new File(String.format("%s.%s", basename, extension)); - } - - // Open file - logger.fine("Open new data file: "+outfile.getAbsolutePath()); - writer = new BufferedWriter(new FileWriter(outfile)); - - // Write header - writer.write(b.toString()); - writer.write(b1.toString()); - - newfile=false; - } - - // Write message to file - each message will result in one line - DataMessage m = (DataMessage) message; - StringBuffer buffer = new StringBuffer(); - for(Object o: m.getData()){ - if(o.getClass().isArray()){ - // If the array object is of type double[] display its content - if(o instanceof double[]){ - double[] oa = (double[]) o; - for(double o1 : oa){ - buffer.append(o1); - buffer.append(" "); // Use space instead of tab - } - buffer.replace(buffer.length()-1,buffer.length()-1 , "\t"); // Replace last space with tab - } - else if(o instanceof Object[]){ - // TODO need to be recursive ... - Object[] oa = (Object[])o; - for(Object o1 : oa){ - buffer.append(o1); - buffer.append(" "); // Use space instead of tab - } - buffer.replace(buffer.length()-1,buffer.length()-1 , "\t"); // Replace last space with tab - } - else{ - buffer.append("-"); // Not supported - } - } - else{ - buffer.append(o); - buffer.append("\t"); - } - } - - if(buffer.length()>0){ - buffer.deleteCharAt(buffer.length()-1); // Remove last character (i.e. \t) - buffer.append("\n"); // Append newline - } - writer.write(buffer.toString()); - } - else if(message instanceof StreamDelimiterMessage){ - StreamDelimiterMessage m = (StreamDelimiterMessage) message; - logger.info("Delimiter - number: "+m.getNumber()+" iflag: "+m.isIflag()); - if(m.isIflag() && appendSuffix){ - // Only increase iflag counter if there was data in between - // subsequent StreamDelimiterMessages. - if(dataInBetween){ - icount++; - } - dataInBetween = false; - - // Set flag to open new file - newfile = true; - - // Close file - writer.close(); - } - } - else if (message instanceof EndOfStreamMessage){ - if(writer!=null){ - // Close file - writer.close(); //If the stream was closed previously this has no effect - } - } - } catch (IOException e) { - throw new RuntimeException("Data serializer had a problem writing to the specified file",e); - } - } -} diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT.java b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT.java similarity index 98% rename from ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT.java rename to ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT.java index a26835c..cc25d8d 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT.java @@ -37,7 +37,7 @@ import ch.psi.fda.messages.Metadata; /** * Serialize data received by a DataQueue into a Matlab file */ -public class DataSerializerMAT { +public class SerializerMAT { private File file; @@ -49,7 +49,7 @@ public class DataSerializerMAT { * @param queue Data queue holding the data to serialize * @param file Name of the Matlab file to serialize the data to */ - public DataSerializerMAT(File file){ + public SerializerMAT(File file){ this.file = file; } diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT2D.java b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT2D.java similarity index 97% rename from ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT2D.java rename to ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT2D.java index fba47b5..3110040 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT2D.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT2D.java @@ -39,9 +39,9 @@ import ch.psi.fda.messages.StreamDelimiterMessage; /** * Serialize data received by a DataQueue into a Matlab file */ -public class DataSerializerMAT2D { +public class SerializerMAT2D { - private static final Logger logger = Logger.getLogger(DataSerializerMAT2D.class.getName()); + private static final Logger logger = Logger.getLogger(SerializerMAT2D.class.getName()); private File file; private boolean appendSuffix = false; @@ -61,7 +61,7 @@ public class DataSerializerMAT2D { * @param queue Data queue holding the data to serialize * @param file Name of the Matlab file to serialize the data to */ - public DataSerializerMAT2D(File file){ + public SerializerMAT2D(File file){ this.file = file; diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT2DZigZag.java b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT2DZigZag.java similarity index 97% rename from ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT2DZigZag.java rename to ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT2DZigZag.java index 99bf738..681d90a 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMAT2DZigZag.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMAT2DZigZag.java @@ -40,9 +40,9 @@ import ch.psi.fda.messages.StreamDelimiterMessage; /** * Serialize data received by a DataQueue into a Matlab file */ -public class DataSerializerMAT2DZigZag { +public class SerializerMAT2DZigZag { - private static final Logger logger = Logger.getLogger(DataSerializerMAT2DZigZag.class.getName()); + private static final Logger logger = Logger.getLogger(SerializerMAT2DZigZag.class.getName()); private List metadata; private File file; @@ -66,7 +66,7 @@ public class DataSerializerMAT2DZigZag { * @param queue Data queue holding the data to serialize * @param file Name of the Matlab file to serialize the data to */ - public DataSerializerMAT2DZigZag(File file){ + public SerializerMAT2DZigZag(File file){ this.file = file; diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMDA.java b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMDA.java similarity index 98% rename from ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMDA.java rename to ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMDA.java index a048120..c2d21fb 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerMDA.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerMDA.java @@ -43,9 +43,9 @@ import ch.psi.fda.messages.StreamDelimiterMessage; * * http://www.aps.anl.gov/bcda/synApps/sscan/saveData_fileFormat.txt */ -public class DataSerializerMDA { +public class SerializerMDA { - private static final Logger logger = Logger.getLogger(DataSerializerMDA.class.getName()); + private static final Logger logger = Logger.getLogger(SerializerMDA.class.getName()); private File file; @@ -59,7 +59,7 @@ public class DataSerializerMDA { private HashMap> idMap; private int numberOfDimensions; - public DataSerializerMDA(File file){ + public SerializerMDA(File file){ this.file = file; } diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXT2D.java b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerTXT2D.java similarity index 98% rename from ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXT2D.java rename to ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerTXT2D.java index de1136a..9e636b8 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXT2D.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerTXT2D.java @@ -37,7 +37,7 @@ import ch.psi.fda.messages.StreamDelimiterMessage; /** * Serialize data received by a DataQueue into a Matlab file */ -public class DataSerializerTXT2D { +public class SerializerTXT2D { private File file; private boolean appendSuffix = false; @@ -56,7 +56,7 @@ public class DataSerializerTXT2D { * @param queue Data queue holding the data to serialize * @param file Name of the Matlab file to serialize the data to */ - public DataSerializerTXT2D(File file){ + public SerializerTXT2D(File file){ this.file = file; } diff --git a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXTSplit.java b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerTXTSplit.java similarity index 98% rename from ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXTSplit.java rename to ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerTXTSplit.java index 14dface..37ae810 100644 --- a/ch.psi.fda/src/main/java/ch/psi/fda/serializer/DataSerializerTXTSplit.java +++ b/ch.psi.fda/src/main/java/ch/psi/fda/serializer/SerializerTXTSplit.java @@ -36,7 +36,7 @@ import ch.psi.fda.messages.StreamDelimiterMessage; /** * Serialize data received by a DataQueue */ -public class DataSerializerTXTSplit { +public class SerializerTXTSplit { private File file; @@ -47,7 +47,7 @@ public class DataSerializerTXTSplit { private List header; private List data; - public DataSerializerTXTSplit(File file) { + public SerializerTXTSplit(File file) { this.file = file; } diff --git a/ch.psi.fda/src/test/java/ch/psi/fda/serializer/SerializerTest.java b/ch.psi.fda/src/test/java/ch/psi/fda/serializer/SerializerTest.java index 2a2a1cb..5159ec3 100644 --- a/ch.psi.fda/src/test/java/ch/psi/fda/serializer/SerializerTest.java +++ b/ch.psi.fda/src/test/java/ch/psi/fda/serializer/SerializerTest.java @@ -33,11 +33,11 @@ import ch.psi.fda.messages.DataMessage; import ch.psi.fda.messages.EndOfStreamMessage; import ch.psi.fda.messages.Metadata; import ch.psi.fda.messages.StreamDelimiterMessage; -import ch.psi.fda.serializer.DataSerializerMAT; -import ch.psi.fda.serializer.DataSerializerMAT2D; -import ch.psi.fda.serializer.DataSerializerTXT; -import ch.psi.fda.serializer.DataSerializerTXT2D; -import ch.psi.fda.serializer.DataSerializerTXTSplit; +import ch.psi.fda.serializer.SerializerMAT; +import ch.psi.fda.serializer.SerializerMAT2D; +import ch.psi.fda.serializer.SerializerTXT; +import ch.psi.fda.serializer.SerializerTXT2D; +import ch.psi.fda.serializer.SerializerTXTSplit; public class SerializerTest { @@ -146,79 +146,79 @@ public class SerializerTest { } /** - * Test method for {@link ch.psi.fda.serializer.DataSerializerTXT#run()}. + * Test method for {@link ch.psi.fda.serializer.SerializerTXT#run()}. * @throws InterruptedException */ @Test public void testRunTXT() throws InterruptedException { - DataSerializerTXT serializer = new DataSerializerTXT(new File(tmpDirectory+"/test.txt"), true); + SerializerTXT serializer = new SerializerTXT(new File(tmpDirectory+"/test.txt"), true); bus.register(serializer); generate1DData(); } /** - * Test method for {@link ch.psi.fda.serializer.DataSerializerTXT#run()}. + * Test method for {@link ch.psi.fda.serializer.SerializerTXT#run()}. * @throws InterruptedException */ @Test public void testRunMAT() throws InterruptedException { - DataSerializerMAT serializer = new DataSerializerMAT(new File(tmpDirectory+"/test.mat")); + SerializerMAT serializer = new SerializerMAT(new File(tmpDirectory+"/test.mat")); bus.register(serializer); generate1DData(); } /** - * Test method for {@link ch.psi.fda.serializer.DataSerializerTXT#run()}. + * Test method for {@link ch.psi.fda.serializer.SerializerTXT#run()}. * @throws InterruptedException */ @Test public void testRunMAT2D() throws InterruptedException { - DataSerializerMAT2D serializer = new DataSerializerMAT2D(new File(tmpDirectory+"/test-2d.mat")); + SerializerMAT2D serializer = new SerializerMAT2D(new File(tmpDirectory+"/test-2d.mat")); bus.register(serializer); generate2DData(); } /** - * Test method for {@link ch.psi.fda.serializer.DataSerializerTXT#run()}. + * Test method for {@link ch.psi.fda.serializer.SerializerTXT#run()}. * @throws InterruptedException */ @Test public void testRunTXT2D() throws InterruptedException { - DataSerializerTXT2D serializer = new DataSerializerTXT2D(new File(tmpDirectory+"/test-2d.txt")); + SerializerTXT2D serializer = new SerializerTXT2D(new File(tmpDirectory+"/test-2d.txt")); bus.register(serializer); generate2DData(); } /** - * Test method for {@link ch.psi.fda.serializer.DataSerializerTXT#run()}. + * Test method for {@link ch.psi.fda.serializer.SerializerTXT#run()}. * @throws InterruptedException */ @Test public void testRunSplitTXT() throws InterruptedException { - DataSerializerTXTSplit serializer = new DataSerializerTXTSplit(new File(tmpDirectory+"/test-2d-split.txt")); + SerializerTXTSplit serializer = new SerializerTXTSplit(new File(tmpDirectory+"/test-2d-split.txt")); bus.register(serializer); generate2DData(); } /** - * Test method for {@link ch.psi.fda.serializer.DataSerializerMDA#run()}. + * Test method for {@link ch.psi.fda.serializer.SerializerMDA#run()}. * @throws InterruptedException */ @Test public void testRun2D() throws InterruptedException { - DataSerializerMDA serializer = new DataSerializerMDA(new File(tmpDirectory+"/test-2d.mda")); + SerializerMDA serializer = new SerializerMDA(new File(tmpDirectory+"/test-2d.mda")); bus.register(serializer); generate2DData(); } /** - * Test method for {@link ch.psi.fda.serializer.DataSerializerMDA#run()}. + * Test method for {@link ch.psi.fda.serializer.SerializerMDA#run()}. * @throws InterruptedException */ @Test public void testRun3D() throws InterruptedException { - DataSerializerMDA serializer = new DataSerializerMDA(new File(tmpDirectory+"/test-3d.mda")); + SerializerMDA serializer = new SerializerMDA(new File(tmpDirectory+"/test-3d.mda")); bus.register(serializer); generate3DData(); }