Skip to content

Instantly share code, notes, and snippets.

@rajkumarmishra
Created March 21, 2016 11:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rajkumarmishra/b113834fce5ea919f234 to your computer and use it in GitHub Desktop.
Save rajkumarmishra/b113834fce5ea919f234 to your computer and use it in GitHub Desktop.
Rss processing
package com.example.ritu.mymetawear;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import com.mbientlab.metawear.AsyncOperation;
import com.mbientlab.metawear.Message;
import com.mbientlab.metawear.MetaWearBleService;
import com.mbientlab.metawear.MetaWearBoard;
import com.mbientlab.metawear.RouteManager;
import com.mbientlab.metawear.UnsupportedModuleException;
import com.mbientlab.metawear.data.CartesianFloat;
import com.mbientlab.metawear.module.Accelerometer;
import com.mbientlab.metawear.module.Debug;
import com.mbientlab.metawear.processor.Rss;
public class MainActivity extends AppCompatActivity implements ServiceConnection {
private static final String LOG_TAG ="FreeFallDetection",ACCEL_DATA="accel_data", FREE_FALL_KEY="free_fall_key",NO_FREE_FALL_KEY="no_free_fall_key" ;
private MetaWearBleService.LocalBinder serviceBinder;
private MetaWearBoard mwBoard;
private Accelerometer accelModule;
private Debug debugModule;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getApplicationContext().bindService(new Intent(this, MetaWearBleService.class), this, Context.BIND_AUTO_CREATE);
findViewById(R.id.start_accel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
accelModule.enableAxisSampling();
accelModule.start();
}
});
findViewById(R.id.stop_accel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
accelModule.stop();
accelModule.disableAxisSampling();
}
});
findViewById(R.id.reset_accel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
debugModule.resetDevice();
}
});
}
@Override
public void onDestroy(){
super.onDestroy();
getApplicationContext().unbindService(this);
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
serviceBinder = (MetaWearBleService.LocalBinder) service;
String mwMacAdress= "F7:31:B8:53:9C:8F";
BluetoothManager btManager= (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothDevice btDevice= btManager.getAdapter().getRemoteDevice(mwMacAdress);
mwBoard= serviceBinder.getMetaWearBoard(btDevice);
mwBoard.setConnectionStateHandler(new MetaWearBoard.ConnectionStateHandler() {
@Override
public void connected() {
Log.i(LOG_TAG, "Connected");
try {
accelModule = mwBoard.getModule(Accelerometer.class);
accelModule.setOutputDataRate(12.5f);
accelModule.routeData().fromAxes().process(new Rss()).stream(ACCEL_DATA).commit()
// .process(new Rss())
// .process(new Average((byte) 4))
// .process(new Threshold(0.5f, Threshold.OutputMode.BINARY))
// .split()
// .branch().process(new Comparison(Comparison.Operation.EQ,-1)).stream(FREE_FALL_KEY)
// .branch().process(new Comparison(Comparison.Operation.EQ, 1)).stream(NO_FREE_FALL_KEY)
// .end()
// .commit()
.onComplete(new AsyncOperation.CompletionHandler<RouteManager>() {
@Override
public void success(RouteManager result) {
result.subscribe(ACCEL_DATA, new RouteManager.MessageHandler() {
@Override
public void process(Message message) {
Log.i(LOG_TAG, message.getData(CartesianFloat.class).toString());
}
});
// result.subscribe(NO_FREE_FALL_KEY, new RouteManager.MessageHandler() {
// @Override
// public void process(Message message) {
// Log.i(LOG_TAG, "Stoped Free Fall");
// }
// });
}
});
debugModule = mwBoard.getModule(Debug.class);
}catch (UnsupportedModuleException e) {
Log.i(LOG_TAG, "Cannot find module", e);
}
}
@Override
public void disconnected() {
Log.i(LOG_TAG, "Disconnected");
}
});
mwBoard.connect();
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment