View Single Post
  #2   Spotlight this post!  
Unread 19-11-2016, 21:31
batteriesinblac batteriesinblac is offline
Registered User
FTC #4855
 
Join Date: Oct 2015
Location: Portland, OR
Posts: 2
batteriesinblac is an unknown quantity at this point
Post Re: [FTC]: [FTC]: Using Android's Built in Sensors

You want the code structured similar to the snippet below

Code:
	// get sensorManager and initialise sensor listeners
		mSensorManager = (SensorManager) hardwareMap.appContext.getSystemService(Context.SENSOR_SERVICE);
		if (mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) == null ||
				mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) == null ||
				mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION) == null ||
				mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) == null) {
			DbgLog.msg("FTC4855 - For this OpMode a phone with Gyro / Accelerometer / Magnetometer is required");
			bInitialized = false;
		}
		else {
			bInitialized = true;

			initListeners();

			// wait for one second until gyroscope and magnetometer/accelerometer
			// data is initialised then scedule the complementary filter task
			fuseTimer.scheduleAtFixedRate(new calculateFusedOrientationTask(),
					1000, TIME_CONSTANT);
		}

...

	// This function registers sensor listeners for the accelerometer, magnetometer and gyroscope.
	private void initListeners(){
		mSensorManager.registerListener(this,
				mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
				SensorManager.SENSOR_DELAY_FASTEST);

		mSensorManager.registerListener(this,
				mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE),
				SensorManager.SENSOR_DELAY_FASTEST);

		mSensorManager.registerListener(this,
				mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
				SensorManager.SENSOR_DELAY_FASTEST);

		mSensorManager.registerListener(this,
				mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION),
				SensorManager.SENSOR_DELAY_FASTEST);
	}
Reply With Quote