package context.apps.demos.accelerometer;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import weka.core.Instance;
import weka.core.Instances;
import context.arch.discoverer.component.ClassnameElement;
import context.arch.discoverer.query.RuleQueryItem;
import context.arch.enactor.Generator;
import context.arch.storage.Attributes;
import context.arch.widget.ClassifierWidget;
public class AccelerometerGenerator extends Generator {
private Instances dataset;
public AccelerometerGenerator() {
super(RuleQueryItem.instance(new ClassnameElement(AccelerometerWidget.class.getName())),
"Accelerometer", null);
/*
* Preset dataset
*/
try {
String datasetName = "demos/accelerometer-nb/accelerometer-activity-test.arff";
Reader arffReader = new FileReader(datasetName);
dataset = new Instances(arffReader);
dataset.setClassIndex(dataset.numAttributes()-1); // last attribute is class
} catch (IOException e) {
e.printStackTrace();
}
start();
}
/**
* Load a scenario instance from the test ARFF file.
* @param instanceIndex index of the scenario index to load
* @return
*/
public void loadInstance(int instanceIndex) {
// load instance from dataset
Instance instance = dataset.instance(instanceIndex);
/*
* Set data values from .arff instance
*/
Attributes data = ClassifierWidget.instanceToAttributes(instance);
// put data into widget
updateOutWidget(data);
}
}