Direct Measure - aabherve/measure-smm-measure-api GitHub Wiki

Direct Measure API

A direct Measure is used to collect data in physical world. This kind of measure can be executed on Platform Side on on Client Side.

To defined a Direct Measure, implement the IDirectMeasure interface. This interface will be calledby the MeasurePlatform to rettive the measurements.


public interface IDirectMeasure {
  public List<IMeasurement> getMeasurement() throws Exception;
  public Map<String,String> getProperties();
}

  • getMeasurement() : Calculate and Return a liste of Measurement.
  • getProperties() : Provide a way for the MeasurePlatform to communicate properties to DirectMeasure implementation.

To implement a direct measure, please extend the **DirectMeasure **class.

Direct Measure Example

RandomGenerator : A toy measure whch return a random number between MinRange and MaxRange value at each call.

public class RandomGenerator extends DirectMeasure {

	@Override
	public List<IMeasurement> getMeasurement() throws Exception {
		List<IMeasurement> result = new ArrayList<>();
		
                // Retrive Platform Properties by her name
		int maxRange =  Integer.valueOf(getProperty("MaxRange"));
		int minRange = Integer.valueOf(getProperty("MinRange"));

                // Collect Measure
		Random gen = new Random();
		int value = gen.nextInt(maxRange - minRange) + minRange;
		
                // Create Measurement :  In this case, a simple IntegerMeasurement
		IntegerMeasurement measurement = new IntegerMeasurement();
		measurement.setValue(value);		
		result.add(measurement);

		return result;
	}
}