package org.cleos.adroid.ondevicesensors2dt; import org.cleos.android.lib.Write2File; import org.cleos.android.rbnb.SimpleFlusher; import android.content.Context; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.util.Log; public class Pressure2DT_Thread extends Thread implements SensorEventListener { private String TAG = getClass().getSimpleName(); private boolean abort_ = false; private SensorManager mSM; private Sensor sensor; private Context context; private SimpleFlusher sf; private String name; private Write2File log = new Write2File("Pressure", TAG, true); private int delay = 250; // in mS private String[] data = new String[1]; public Pressure2DT_Thread(String name, Context context, String ipp, SensorManager mSM, Sensor mS){ this.name = name; this.context = context; this.mSM = mSM; this.sensor = mS; sf = new SimpleFlusher(name, context, ipp, log); mSM.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL); } public void setDelay(int delay_mS){ // this.delay = delay_mS; } @Override public void run() { super.run(); sf.createConnections(); while (true) { synchronized (this) { if (abort_) { Log.e(TAG, "Loop terminated!******************************"); kill(); break; } } sendData(); sleep(delay); } mSM.unregisterListener(this); Log.i(TAG, "Accelerometer thread finished with unregisterListener."); } public synchronized void abort(){ abort_ = true; } private void sendData() { sf.flushData(data); } @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public final void onSensorChanged(SensorEvent event) { float millibars_of_pressure = event.values[0]; data[0] = Float.toString(millibars_of_pressure); // Do something with this sensor data. } private void sleep(int mS) { try { super.sleep(mS); } catch (InterruptedException e) { e.printStackTrace(); } } public void kill() { sf.kill(); } public void setChNames(String[] chNames) { sf.setChNames(chNames); } public void setdTypes(String[] dTypes) { sf.setdTypes(dTypes); } public void setUnits(String[] units) { sf.setUnits(units); } public void setMIMEs(String[] mIMEs) { sf.setMIMEs(mIMEs); } }