Data Processor¶
As mentioned in the Data Route page, the data processor can perform simple calcutaions on the data before passing it to the user. Adding and
configuring processors is handled with the RouteBuilder
api and the
DataProcessor interface is used to interact with the
processors that were tagged with the
name component.
import com.mbientlab.metawear.module.DataProcessor;
final DataProcessor dataproc = board.getModule(DataProcessor.class);
Modifying Processors¶
Some processors have parameters that can be modified after they are created. Call
edit using
the same string passed into the name
component and the type of editor to return. Make sure the editor class is appropriate for the desired
processor.
Processor |
Editor |
Editable Parameters |
---|---|---|
Accumulate |
AccumulatorEditor |
Accumulated sum |
Average |
AverageEditor |
Sample size, reset running avg |
Comparison |
ComparatorEditor |
Comparison operation, reference values |
Counter |
CounterEditor |
Accumulated count |
Differential |
DifferentialEditor |
Minimum distance |
Map |
MapEditor |
Right hand value for 2 op functions |
Passthrough |
PassthroughEditor |
Passthrough type and value |
Pulse |
PulseEditor |
Threshold and min sample size |
Threshold |
ThresholdEditor |
Boundary and hysteresis |
Time |
TimeEditor |
Period |
import com.mbientlab.metawear.module.DataProcessor.CounterEditor;
// assume route built with
// .count().name("counter")
// reset internal count
dataproc.edit("counter", CounterEditor.class).reset();
Internal State¶
Some processors have an internal state, represented as a forced data producer. These state data producers are retrieved with the
state method using the same
string passed into the name
component.
Processor |
Description |
---|---|
Accumulate |
Current accumulated sum |
Buffer |
Last received input |
Counter |
Current accumulated count |
Passthrough |
Value parameter |
// assume route built with
// .buffer().name("buffer")
// access the buffer state
ForcedDataProducer producer = dataproc.state("buffer")