You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SignalProcessingControl.java 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.feemers.android.fftdrawer.SignalProcessing;
  2. import android.hardware.SensorManager;
  3. import java.util.Observer;
  4. public class SignalProcessingControl {
  5. private IDetector detector;
  6. private ISensor sensor;
  7. private Notifier notifier;
  8. private Logger logger;
  9. public SignalProcessingControl(SensorManager sensorManager, Logger logger) {
  10. this.logger = logger;
  11. logger.log("SignalProcessingControl()");
  12. // create notifier
  13. notifier = new Notifier();
  14. // create detector
  15. //detector = new DetectorTimedomain(20);
  16. detector = new DetectorFFT(20);
  17. detector.setThreshold(6); //TODO: Remove hardcoded threshold and read from GUI instead
  18. detector.connectNotifier(notifier);
  19. // create & link hardware to sensor -> sensorManager
  20. MySensor mySensor = new MySensor();
  21. mySensor.connectSensorManager(sensorManager);
  22. this.sensor = mySensor;
  23. }
  24. public void init() {
  25. logger.log("SignalProcessingControl: init()");
  26. sensor.connectDetector(detector);
  27. }
  28. public void start() {
  29. logger.log("SignalProcessingControl: start()");
  30. sensor.startSampling();
  31. }
  32. public void stop() {
  33. logger.log("SignalProcessingControl: stop()");
  34. sensor.stopSampling();
  35. }
  36. public Notifier getNotifier() {
  37. return notifier;
  38. }
  39. }