Page MenuHomec4science

MetaWear.java
No OneTemporary

File Metadata

Created
Thu, May 16, 19:57

MetaWear.java

package ch.epfl.esl.elevatedmonitor.Devices.MetaMotionR;
import android.content.Context;
import com.mbientlab.metawear.MetaWearBoard;
import com.mbientlab.metawear.module.SensorFusionBosch;
import com.mbientlab.metawear.module.Settings;
import com.mbientlab.metawear.module.Temperature;
import com.mbientlab.metawear.module.Temperature.SensorType;
import com.mbientlab.metawear.module.Timer;
import java.util.ArrayList;
import ch.epfl.esl.elevatedmonitor.Devices.MetaMotionR.Sensors.SensorFusion;
import ch.epfl.esl.elevatedmonitor.Interfaces.InterfaceDevice;
import ch.epfl.esl.elevatedmonitor.SuperClasses.Device;
public class MetaWear extends Device implements InterfaceDevice {
private static final String MANAGER_NAME = "ch.epfl.esl.elevatedmonitor.Devices.MetaMotionR.MetaMotionManager";
public static final int SENSOR_FUSION = 0;
public static final int TEMPERATURE = 1;
private com.mbientlab.metawear.module.SensorFusionBosch sensorFusionBosch;
private Temperature.Sensor tempSensor;
private Settings settings = null;
static final String NAME = "MetaWear";
public static Integer i = 0;
private Timer timer;
private boolean init = false;
MetaWear(Context context, String name, String id, MetaWearBoard board) {
super(context);
setSensors();
setName(name);
setId(id);
initSensors(board);
}
MetaWear(Context context, String name, String id) {
super(context);
setSensors();
setName(name);
setId(id);
}
public MetaWear(Context context) {
super(context);
setSensors();
setName("MetaWear " + i.toString());
setId("N.D.");
i++;
i = i%3;
}
private void initSensors(MetaWearBoard board){
// Get a reference to the sensors
sensorFusionBosch = board.getModule(SensorFusionBosch.class);
Temperature temperature = board.getModule(Temperature.class);
timer = board.getModule(Timer.class);
settings = board.getModule(Settings.class);
// Configure the sensors
sensorFusionBosch.configure()
.mode(SensorFusionBosch.Mode.NDOF) // Can choose between NDoF that calculates absolute orientation from accelerometer, gyro, and magnetometer
// Or IMUPlus that calculates relative orientation in space from accelerometer and gyro data
.accRange(SensorFusionBosch.AccRange.AR_2G)
.gyroRange(SensorFusionBosch.GyroRange.GR_250DPS)
.commit();
tempSensor = temperature.findSensors(SensorType.PRESET_THERMISTOR)[0];
init = true;
}
Temperature.Sensor getTemperatureSensor(){
if (init)
return tempSensor;
else
return null;
}
Timer getTimer(){
if (init)
return timer;
else
return null;
}
SensorFusionBosch getSensorFusion(){
if(init)
return sensorFusionBosch;
else
return null;
}
Settings getSettings(){
return settings;
}
@Override
public void setSensors() {
//--- Set different sensors
if (sensorArrayList == null) {
sensorArrayList = new ArrayList<>();
}
sensorArrayList.add(new SensorFusion(deviceContext));
sensorArrayList.add(new ch.epfl.esl.elevatedmonitor.Devices.MetaMotionR.Sensors.Temperature(deviceContext));
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public void setId(String id) {
this.id = id;
}
@Override
public void setManagerName() {
this.managerName = MANAGER_NAME;
}
}

Event Timeline