Android Open Source - BleSensorTag Sensor Fusion Helper






From Project

Back to project page BleSensorTag.

License

The source code is released under:

MIT License

If you think the Android project BleSensorTag 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

package sample.ble.sensortag.fusion.engine;
//from   ww w.j  ava 2  s .  c  om
import java.util.Timer;

public abstract class SensorFusionHelper {

    private static final int TIMER_RATE = 30;

    private Timer fuseTimer = null;
    private SensorFusionEngine fusionEngine = null;

    private boolean isRunning = false;

    public void start() {
        fuseTimer = new Timer();
        fusionEngine = new SensorFusionEngine();
    }

    public void stop() {
        if (fuseTimer != null) {
            fuseTimer.cancel();
            fuseTimer = null;
        }

        if (fusionEngine != null) {
            fusionEngine.cancel();
            fusionEngine = null;
        }
    }

    private synchronized void startSensorFusion() {
        if (isRunning)
            return;

        fuseTimer.scheduleAtFixedRate(fusionEngine, 0, TIMER_RATE);
        isRunning = true;
    }

    public void onAccDataUpdate(float[] acc) {
        if (fusionEngine == null)
            return;

        if (fusionEngine.scheduledExecutionTime() == 0)
            startSensorFusion();

        fusionEngine.onAccDataUpdate(acc);
        onOrientationChanged(fusionEngine.getFusedOrientation());
    }

    public void onMagDataUpdate(float[] magnet) {
        if (fusionEngine == null)
            return;

        if (fusionEngine.scheduledExecutionTime() == 0)
            startSensorFusion();

        fusionEngine.onMagDataUpdate(magnet);
        onOrientationChanged(fusionEngine.getFusedOrientation());
    }

    public void onGyroDataUpdate(float[] gyro) {
        if (fusionEngine == null)
            return;

        if (fusionEngine.scheduledExecutionTime() == 0)
            startSensorFusion();

        fusionEngine.onGyroDataUpdate(gyro);
        onOrientationChanged(fusionEngine.getFusedOrientation());
    }

    public abstract void onOrientationChanged(float[] orientation);
}




Java Source Code List

sample.ble.sensortag.BleSensorsRecordService.java
sample.ble.sensortag.BleServiceBindingActivity.java
sample.ble.sensortag.BleService.java
sample.ble.sensortag.BluetoothStateReciever.java
sample.ble.sensortag.DeviceScanActivity.java
sample.ble.sensortag.DeviceServicesActivity.java
sample.ble.sensortag.adapters.BleDevicesAdapter.java
sample.ble.sensortag.adapters.TiServicesAdapter.java
sample.ble.sensortag.ble.BleActionsReceiver.java
sample.ble.sensortag.ble.BleDevicesScanner.java
sample.ble.sensortag.ble.BleExecutorListener.java
sample.ble.sensortag.ble.BleGattExecutor.java
sample.ble.sensortag.ble.BleManager.java
sample.ble.sensortag.ble.BleServiceListener.java
sample.ble.sensortag.ble.BleUtils.java
sample.ble.sensortag.config.AppConfig.java
sample.ble.sensortag.dialogs.AppDialog.java
sample.ble.sensortag.dialogs.EnableBluetoothDialog.java
sample.ble.sensortag.dialogs.ErrorDialog.java
sample.ble.sensortag.fusion.SensorFusionActivity.java
sample.ble.sensortag.fusion.SensorFusionFragment.java
sample.ble.sensortag.fusion.engine.SensorFusionEngine.java
sample.ble.sensortag.fusion.engine.SensorFusionHelper.java
sample.ble.sensortag.fusion.sensors.AndroidSensorManager.java
sample.ble.sensortag.fusion.sensors.AndroidSensor.java
sample.ble.sensortag.fusion.sensors.BleSensorManager.java
sample.ble.sensortag.fusion.sensors.BleSensor.java
sample.ble.sensortag.fusion.sensors.ISensorManager.java
sample.ble.sensortag.fusion.sensors.ISensor.java
sample.ble.sensortag.fusion.sensors.SensorManagerException.java
sample.ble.sensortag.gl.GLSurfaceView.java
sample.ble.sensortag.gl.GlFragment.java
sample.ble.sensortag.gl.ModelLoader.java
sample.ble.sensortag.gl.ModelRenderer.java
sample.ble.sensortag.info.TiDeviceInfoSerivce.java
sample.ble.sensortag.info.TiGapSerivce.java
sample.ble.sensortag.info.TiGattSerivce.java
sample.ble.sensortag.info.TiInfoService.java
sample.ble.sensortag.info.TiInfoServices.java
sample.ble.sensortag.sensor.TiAccelerometerSensor.java
sample.ble.sensortag.sensor.TiGyroscopeSensor.java
sample.ble.sensortag.sensor.TiHumiditySensor.java
sample.ble.sensortag.sensor.TiKeysSensor.java
sample.ble.sensortag.sensor.TiMagnetometerSensor.java
sample.ble.sensortag.sensor.TiPeriodicalSensor.java
sample.ble.sensortag.sensor.TiPressureSensor.java
sample.ble.sensortag.sensor.TiRangeSensors.java
sample.ble.sensortag.sensor.TiSensorUtils.java
sample.ble.sensortag.sensor.TiSensor.java
sample.ble.sensortag.sensor.TiSensors.java
sample.ble.sensortag.sensor.TiTemperatureSensor.java
sample.ble.sensortag.sensor.TiTestSensor.java