Added EDescriptor and EContainer interfaces so that it is able to be

easily integrated into fda ...
This commit is contained in:
2014-04-28 10:52:25 +02:00
parent 3d09aaf9b9
commit eb3fbcdab9
8 changed files with 181 additions and 27 deletions

View File

@@ -11,6 +11,12 @@
<version>0.0.2</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>ch.psi</groupId>
<artifactId>jcae</artifactId>

View File

@@ -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() {
}
}

View File

@@ -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);
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1 @@
ch.psi.fda.cdump.CdumpEDescriptorProvider

View File

@@ -0,0 +1 @@
ch.psi.fda.cdump.CdumpEContainerFactory