Added EDescriptor and EContainer interfaces so that it is able to be
easily integrated into fda ...
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
ch.psi.fda.cdump.CdumpEDescriptorProvider
|
||||
@@ -0,0 +1 @@
|
||||
ch.psi.fda.cdump.CdumpEContainerFactory
|
||||
Reference in New Issue
Block a user