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