Android Open Source - WAIDRecognizer Magnitude Listener






From Project

Back to project page WAIDRecognizer.

License

The source code is released under:

GNU General Public License

If you think the Android project WAIDRecognizer listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * /*from w ww.  j  ava  2s . c o  m*/
 */
package it.unibo.cs.jonus.waidrec;

import java.util.ArrayList;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.os.SystemClock;

/**
 * @author jei
 * 
 */
public class MagnitudeListener implements SensorEventListener {

  public static final int READING_DELAY_NORMAL = 100;

  private int readingDelay = Integer.MAX_VALUE;
  private long lastReading = Long.MAX_VALUE;

  public ArrayList<Double> magnitudeArray = new ArrayList<Double>();

  public MagnitudeListener(int delay) {
    readingDelay = delay;
  }

  /**
   * Tells the listener to start generating magnitudes
   */
  public void startGenerating() {
    lastReading = SystemClock.elapsedRealtime();
  }

  /**
   * Tells the listener to stop generating magnitudes
   */
  public void stopGenerating() {
    lastReading = Long.MAX_VALUE;
  }

  /**
   * Resets the arrays of magnitudes
   */
  public void clearMagnitudes() {
    magnitudeArray.clear();
  }

  /**
   * Generate a new set of features from the generated magnitudes
   * 
   * @return a MagnitudeFeatures object, or null if there were no sensor
   *         readings
   */
  public MagnitudeFeatures getFeatures() {
    MagnitudeFeatures mf = new MagnitudeFeatures();
    // check array size
    if (magnitudeArray.size() > 0) {
      // generate the set of features from the array of magnitudes
      double sum = 0;
      double max = Double.MIN_VALUE;
      double min = Double.MAX_VALUE;
      for (int i = 0; i < magnitudeArray.size(); i++) {
        sum += magnitudeArray.get(i);
        if (magnitudeArray.get(i) > max)
          max = magnitudeArray.get(i);
        if (magnitudeArray.get(i) < min)
          min = magnitudeArray.get(i);
      }
      double avg = sum / magnitudeArray.size();
      double std = Math.sqrt(sum - (avg * avg));

      mf.setMaximum(max);
      mf.setMinimum(min);
      mf.setAverage(avg);
      mf.setStandardDeviation(std);

    }

    return mf;
  }

  /*
   * (non-Javadoc)
   * 
   * @see
   * android.hardware.SensorEventListener#onAccuracyChanged(android.hardware
   * .Sensor, int)
   */
  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {
    // TODO Auto-generated method stub

  }

  /*
   * (non-Javadoc)
   * 
   * @see
   * android.hardware.SensorEventListener#onSensorChanged(android.hardware
   * .SensorEvent)
   */
  @Override
  public void onSensorChanged(SensorEvent event) {
    if (SystemClock.elapsedRealtime() > lastReading + readingDelay) {
      // generate the new magnitude
      lastReading = SystemClock.elapsedRealtime();
      double magnitude = Math.sqrt(event.values[0] * event.values[0]
          + event.values[1] * event.values[1] + event.values[2]
          * event.values[2]);
      magnitudeArray.add(magnitude);
    }
  }

}




Java Source Code List

it.unibo.cs.jonus.waidrec.AddVehicleDialog.java
it.unibo.cs.jonus.waidrec.DatabaseOpenHelper.java
it.unibo.cs.jonus.waidrec.EvaluationsProvider.java
it.unibo.cs.jonus.waidrec.HistoryFragment.java
it.unibo.cs.jonus.waidrec.HistoryListAdapter.java
it.unibo.cs.jonus.waidrec.HistorySelectorAdapter.java
it.unibo.cs.jonus.waidrec.MagnitudeFeatures.java
it.unibo.cs.jonus.waidrec.MagnitudeListener.java
it.unibo.cs.jonus.waidrec.MainActivity.java
it.unibo.cs.jonus.waidrec.MainPrefsActivity.java
it.unibo.cs.jonus.waidrec.ModelManager.java
it.unibo.cs.jonus.waidrec.RecognizerFragment.java
it.unibo.cs.jonus.waidrec.RecognizerService.java
it.unibo.cs.jonus.waidrec.TrainingFragment.java
it.unibo.cs.jonus.waidrec.TrainingService.java
it.unibo.cs.jonus.waidrec.VIListAdapter.java
it.unibo.cs.jonus.waidrec.VehicleInstance.java
it.unibo.cs.jonus.waidrec.VehicleItem.java
it.unibo.cs.jonus.waidrec.VehicleManager.java
it.unibo.cs.jonus.waidrec.VehicleObserver.java
it.unibo.cs.jonus.waidrec.VehicleRecognizer.java
it.unibo.cs.jonus.waidrec.VehicleTrainer.java
it.unibo.cs.jonus.waidrec.VehiclesFragment.java
it.unibo.cs.jonus.waidrec.VehiclesListAdapter.java