diff --git a/ch.psi.fda.cdump/pom.xml b/ch.psi.fda.cdump/pom.xml index e060f8b..a350306 100644 --- a/ch.psi.fda.cdump/pom.xml +++ b/ch.psi.fda.cdump/pom.xml @@ -11,6 +11,12 @@ 0.0.2 + + javax.inject + javax.inject + 1 + + ch.psi jcae diff --git a/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEContainer.java b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEContainer.java new file mode 100644 index 0000000..6e36219 --- /dev/null +++ b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEContainer.java @@ -0,0 +1,79 @@ +package ch.psi.fda.cdump; + +import java.io.File; + +import com.google.common.eventbus.EventBus; + +import ch.psi.fda.EContainer; +import ch.psi.fda.serializer.SerializerTXT; +import ch.psi.jcae.ChannelService; + +public class CdumpEContainer implements EContainer { + + public final static String CDUMP_CONFIG = "ch.psi.fda.cdump.config"; + + private final ChannelService cservice; + private final CdumpEDescriptor edescriptor; + private final EventBus eventbus; + + private CdumpConfiguration configuration; + private Cdump cdump; + + private volatile boolean running = false; + + public CdumpEContainer(ChannelService cservice, EventBus eventbus, CdumpEDescriptor edescriptor) { + this.cservice = cservice; + this.edescriptor = edescriptor; + this.eventbus = eventbus; + + configuration = new CdumpConfiguration(); + + String config = System.getProperty(CDUMP_CONFIG); + + if (config != null) { + configuration.loadFile(new File(config)); + } + } + + @Override + public void initialize() { + cdump = new Cdump(cservice, eventbus, configuration); + + SerializerTXT serializer = new SerializerTXT(new File(edescriptor.getFileName())); + serializer.setShowDimensionHeader(false); + + eventbus.register(serializer); + } + + @Override + public void execute() { + running = true; + try { + cdump.acquire(edescriptor.getSamplingRate()); + } catch (Exception e) { + running = false; + throw e; + } + } + + @Override + public void abort() { + stop(); + } + + @Override + public void stop() { + cdump.stop(); + running = false; + } + + @Override + public boolean isActive() { + return running; + } + + @Override + public void destroy() { + } + +} diff --git a/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEContainerFactory.java b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEContainerFactory.java new file mode 100644 index 0000000..451916b --- /dev/null +++ b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEContainerFactory.java @@ -0,0 +1,27 @@ +package ch.psi.fda.cdump; + +import javax.inject.Inject; + +import com.google.common.eventbus.EventBus; + +import ch.psi.fda.EContainer; +import ch.psi.fda.EContainerFactory; +import ch.psi.fda.edescriptor.EDescriptor; +import ch.psi.jcae.ChannelService; + +public class CdumpEContainerFactory implements EContainerFactory { + + @Inject + private ChannelService cservice; + + @Override + public boolean supportsEDescriptor(EDescriptor descriptor) { + return descriptor instanceof CdumpEDescriptor; + } + + @Override + public EContainer createContainer(EDescriptor descriptor, EventBus bus) { + return new CdumpEContainer(cservice, bus, (CdumpEDescriptor) descriptor); + } + +} diff --git a/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEDescriptor.java b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEDescriptor.java new file mode 100644 index 0000000..3cfbb2b --- /dev/null +++ b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEDescriptor.java @@ -0,0 +1,33 @@ +package ch.psi.fda.cdump; + +import javax.xml.bind.annotation.XmlRootElement; + +import ch.psi.fda.edescriptor.EDescriptor; + +@XmlRootElement(name="cdump") +public class CdumpEDescriptor implements EDescriptor { + +// private String name; + private String samplingRate; + private String fileName; + +// public String getName() { +// return name; +// } +// public void setName(String name) { +// this.name = name; +// } + public String getSamplingRate() { + return samplingRate; + } + public void setSamplingRate(String samplingRate) { + this.samplingRate = samplingRate; + } + public String getFileName() { + return fileName; + } + public void setFileName(String fileName) { + this.fileName = fileName; + } + +} diff --git a/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEDescriptorProvider.java b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEDescriptorProvider.java new file mode 100644 index 0000000..ab6f5b3 --- /dev/null +++ b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/CdumpEDescriptorProvider.java @@ -0,0 +1,34 @@ +package ch.psi.fda.cdump; + +import java.io.File; + +import ch.psi.fda.DescriptorProvider; +import ch.psi.fda.edescriptor.EDescriptor; +import ch.psi.fda.vdescriptor.VDescriptor; + +public class CdumpEDescriptorProvider implements DescriptorProvider { + + @Override + public void load(File... files) { + // TODO Auto-generated method stub + + } + + @Override + public EDescriptor getEDescriptor() { + // TODO Auto-generated method stub + return null; + } + + @Override + public VDescriptor getVDescriptor() { + // TODO Auto-generated method stub + return null; + } + + @Override + public Class getEDescriptorClass() { + return CdumpEDescriptor.class; + } + +} diff --git a/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/model/CdumpParameters.java b/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/model/CdumpParameters.java deleted file mode 100644 index b367053..0000000 --- a/ch.psi.fda.cdump/src/main/java/ch/psi/fda/cdump/model/CdumpParameters.java +++ /dev/null @@ -1,27 +0,0 @@ -package ch.psi.fda.cdump.model; - -import javax.xml.bind.annotation.XmlRootElement; - -import ch.psi.fda.edescriptor.EDescriptor; - -@XmlRootElement(name="cdump") -public class CdumpParameters implements EDescriptor { - - private String name; - private String samplingRate; - - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public String getSamplingRate() { - return samplingRate; - } - public void setSamplingRate(String samplingRate) { - this.samplingRate = samplingRate; - } - - -} diff --git a/ch.psi.fda.cdump/src/main/resources/META-INF/services/ch.psi.fda.DescriptorProvider b/ch.psi.fda.cdump/src/main/resources/META-INF/services/ch.psi.fda.DescriptorProvider new file mode 100644 index 0000000..f31cdb5 --- /dev/null +++ b/ch.psi.fda.cdump/src/main/resources/META-INF/services/ch.psi.fda.DescriptorProvider @@ -0,0 +1 @@ +ch.psi.fda.cdump.CdumpEDescriptorProvider diff --git a/ch.psi.fda.cdump/src/main/resources/META-INF/services/ch.psi.fda.EContainerFactory b/ch.psi.fda.cdump/src/main/resources/META-INF/services/ch.psi.fda.EContainerFactory new file mode 100644 index 0000000..88bc480 --- /dev/null +++ b/ch.psi.fda.cdump/src/main/resources/META-INF/services/ch.psi.fda.EContainerFactory @@ -0,0 +1 @@ +ch.psi.fda.cdump.CdumpEContainerFactory \ No newline at end of file