New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 733707 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Feature

Blocking:
issue 612322
issue 721427


Participants' hotlists:
Sensors


Sign in to add a comment

Refactor sensor types at //device/generic_sensor

Project Member Reported by juncai@chromium.org, Jun 15 2017

Issue description

The //device/generic_sensor directory needs to be refactored to make sure the platform-specific sensor fallback logic at //device/sensors are also implemented at //device/generic_sensor, so that the renderer side code doesn’t need to implement this sensor fallback logic. In order to do this, the following two steps are needed:
1. ABSOLUTE_ORIENTATION and RELATIVE_ORIENTATION can be refactored to support both Euler angles and Quaternion representation.
2. Sensor Fallbacks Generalization

This will make //device/generic_sensor be ready to be used to replace //device/sensors to implement device orientation event.

Detailed design doc is at:
https://docs.google.com/document/d/1J6_frvCxmhf_oZIjKngFQmerYnsZ-ZRP3HL6Shm4gH8/edit?pli=1
 

Comment 1 by juncai@chromium.org, Jun 23 2017

Blocking: 612322
Project Member

Comment 2 by bugdroid1@chromium.org, Jul 10 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b4f1223115aa934a660b2df2776bbb7124ce6bd

commit 8b4f1223115aa934a660b2df2776bbb7124ce6bd
Author: Jun Cai <juncai@chromium.org>
Date: Mon Jul 10 19:19:50 2017

Change orientation sensor type in //services/device/generic_sensor to be quaternion

This is one of the CLs that refactor sensor types at
//services/device/generic_sensor.

This CL simply changes the following sensor types:
ABSOLUTE_ORIENTATION -> ABSOLUTE_ORIENTATION_QUATERNION
RELATIVE_ORIENTATION -> RELATIVE_ORIENTATION_QUATERNION

The ABSOLUTE_ORIENTATION and RELATIVE_ORIENTATION sensors already return
quaternion data, so only name changes are needed.

Bug:  733707 
Change-Id: I935a5e835e0c9f480731be806a26ce16e76dcce9
Reviewed-on: https://chromium-review.googlesource.com/552889
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485342}
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/services/device/generic_sensor/README.md
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/services/device/generic_sensor/android/java/src/org/chromium/device/sensors/PlatformSensorProvider.java
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/services/device/generic_sensor/android/junit/src/org/chromium/device/sensors/PlatformSensorAndProviderTest.java
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/services/device/generic_sensor/platform_sensor_reader_win.cc
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/services/device/public/cpp/generic_sensor/sensor_reading.h
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/services/device/public/interfaces/sensor.mojom
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/third_party/WebKit/Source/modules/sensor/AbsoluteOrientationSensor.cpp
[modify] https://crrev.com/8b4f1223115aa934a660b2df2776bbb7124ce6bd/third_party/WebKit/Source/modules/sensor/RelativeOrientationSensor.cpp

Project Member

Comment 3 by bugdroid1@chromium.org, Jul 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ca5c7b838dff34a59a278ca6bb41938fe414c73d

commit ca5c7b838dff34a59a278ca6bb41938fe414c73d
Author: Jun Cai <juncai@chromium.org>
Date: Fri Jul 14 01:06:47 2017

Add orientation Euler angles sensor type and implement it on Windows

This is one of the CLs that refactor sensor types at
//services/device/generic_sensor

This CL adds two new sensor types:
ABSOLUTE_ORIENTATION_EULER_ANGLES
RELATIVE_ORIENTATION_EULER_ANGLES
to //services/device/generic_sensor
so that when device orientation API renderer side needs Euler angles
data, the renderer side doesn't need to do the conversion from Quaternion
to Euler angles. And on Windows, there is Euler angles sensor type which
provides direct support for this data format and this CL uses it to
implement the sensors.

Bug:  733707 
Change-Id: I37fe9b8614baef106c2482129e3e340dc1fcdf13
Reviewed-on: https://chromium-review.googlesource.com/569058
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486574}
[modify] https://crrev.com/ca5c7b838dff34a59a278ca6bb41938fe414c73d/services/device/generic_sensor/README.md
[modify] https://crrev.com/ca5c7b838dff34a59a278ca6bb41938fe414c73d/services/device/generic_sensor/platform_sensor_and_provider_unittest_win.cc
[modify] https://crrev.com/ca5c7b838dff34a59a278ca6bb41938fe414c73d/services/device/generic_sensor/platform_sensor_reader_win.cc
[modify] https://crrev.com/ca5c7b838dff34a59a278ca6bb41938fe414c73d/services/device/public/cpp/generic_sensor/sensor_reading.h
[modify] https://crrev.com/ca5c7b838dff34a59a278ca6bb41938fe414c73d/services/device/public/interfaces/sensor.mojom

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8677cfeade4f689ab37a61974561ffeb7c14fb3f

commit 8677cfeade4f689ab37a61974561ffeb7c14fb3f
Author: Jun Cai <juncai@chromium.org>
Date: Mon Jul 24 21:10:00 2017

Implement fusion sensor and RELATIVE_ORIENTATION_EULER_ANGLES on macOS

This CL implements a general fusion sensor which can be used to
implement a sensor using sensor data from one or more existing sensors.
For example, it can be used to implement *_EULER_ANGLES sensor using
*_QUATERNION sensor, or vice-versa.

On macOS, at //device/sensors, device relative orientation event is
implemented using sudden motion sensor. This concept can be generalized
to implement RELATIVE_ORIENTATION_EULER_ANGLES using ACCELEROMETER and
be reused anywhere where we need to provide a
RELATIVE_ORIENTATION_EULER_ANGLES sensor but only has an ACCELEROMETER.

This CL uses the above concept to implement
RELATIVE_ORIENTATION_EULER_ANGLES sensor type using ACCELEROMETER on
macOS. It can also be done in other platforms, and will be done in some
follow-up CLs.

Bug:  733707 
Change-Id: Ic59a99b4af66dbaa42d791990f942e95378b147b
Reviewed-on: https://chromium-review.googlesource.com/578253
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489074}
[modify] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/BUILD.gn
[modify] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/README.md
[modify] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/platform_sensor.cc
[modify] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/platform_sensor.h
[add] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/platform_sensor_fusion.cc
[add] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/platform_sensor_fusion.h
[add] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/platform_sensor_fusion_algorithm.cc
[add] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/platform_sensor_fusion_algorithm.h
[modify] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/platform_sensor_provider_mac.cc
[add] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.cc
[add] https://crrev.com/8677cfeade4f689ab37a61974561ffeb7c14fb3f/services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1baa52d60dca0277379ba9dd79aae6dfc915a84b

commit 1baa52d60dca0277379ba9dd79aae6dfc915a84b
Author: Jun Cai <juncai@chromium.org>
Date: Tue Jul 25 19:03:43 2017

Implement RELATIVE_ORIENTATION_QUATERNION using euler angles on macOS

This CL implements the RELATIVE_ORIENTATION_QUATERNION sensor type
using data from RELATIVE_ORIENTATION_EULER_ANGLES on macOS. It just
needs a conversion from euler angles to quaternion.

Bug:  733707 
Change-Id: I621c6fe208ced6a0c904965985f3b8519eb24f50
Reviewed-on: https://chromium-review.googlesource.com/583484
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jun Cai <juncai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489393}
[modify] https://crrev.com/1baa52d60dca0277379ba9dd79aae6dfc915a84b/services/device/generic_sensor/BUILD.gn
[modify] https://crrev.com/1baa52d60dca0277379ba9dd79aae6dfc915a84b/services/device/generic_sensor/README.md
[add] https://crrev.com/1baa52d60dca0277379ba9dd79aae6dfc915a84b/services/device/generic_sensor/orientation_quaternion_fusion_algorithm_using_euler_angles.cc
[add] https://crrev.com/1baa52d60dca0277379ba9dd79aae6dfc915a84b/services/device/generic_sensor/orientation_quaternion_fusion_algorithm_using_euler_angles.h
[modify] https://crrev.com/1baa52d60dca0277379ba9dd79aae6dfc915a84b/services/device/generic_sensor/platform_sensor_provider_mac.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e1003f334dc5ba8c7698d4b96557a58e433c416a

commit e1003f334dc5ba8c7698d4b96557a58e433c416a
Author: Jun Cai <juncai@chromium.org>
Date: Fri Jul 28 17:42:27 2017

Remove base::Unretained when bind fusion sensor's CreateSensorCallback

The object created by base::MakeRefCounted<PlatformSensorFusion>() call
is freed immediately after
PlatformSensorProviderMac::CreateSensorInternal() returns, which makes
the fusion sensor object invalid.

This CL fixes this by removing base::Unretained when bind
PlatformSensorFusion::CreateSensorCallback.

Bug:  733707 
Change-Id: I1a01f2592dc00811d6b8d7443a2b7afcc863ff40
Reviewed-on: https://chromium-review.googlesource.com/590957
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jun Cai <juncai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490450}
[modify] https://crrev.com/e1003f334dc5ba8c7698d4b96557a58e433c416a/services/device/generic_sensor/platform_sensor_fusion.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9a810b690b0f42717373cfbf5611f3ab595fe27

commit e9a810b690b0f42717373cfbf5611f3ab595fe27
Author: Jun Cai <juncai@chromium.org>
Date: Fri Aug 04 22:18:29 2017

Implement device orientation fusion sensors on Android

This CL implements device orientation fusion sensors on Android. The
following sensor fallback is used:

1. For ABSOLUTE_ORIENTATION_EULER_ANGLES we use the following fallback:
   A: ABSOLUTE_ORIENTATION_QUATERNION (if it uses TYPE_ROTATION_VECTOR
directly)
   B: Combination of ACCELEROMETER and MAGNETOMETER

2. For ABSOLUTE_ORIENTATION_QUATERNION we use the following fallback:
   A: Use TYPE_ROTATION_VECTOR directly
   B: ABSOLUTE_ORIENTATION_EULER_ANGLES

3. For RELATIVE_ORIENTATION_EULER_ANGLES we use the following fallback:
   A: RELATIVE_ORIENTATION_QUATERNION (if it uses
      TYPE_GAME_ROTATION_VECTOR directly)
   B: ACCELEROMETER

4. For RELATIVE_ORIENTATION_QUATERNION we use the following fallback:
   A: Use TYPE_GAME_ROTATION_VECTOR directly
   B: RELATIVE_ORIENTATION_EULER_ANGLES

Bug:  733707 
Change-Id: Ic201f450487b586132952cbffae064682e93a10c
Reviewed-on: https://chromium-review.googlesource.com/585226
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492143}
[modify] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/BUILD.gn
[add] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.cc
[add] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.h
[modify] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/android/java/src/org/chromium/device/sensors/PlatformSensorProvider.java
[add] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/orientation_euler_angles_fusion_algorithm_using_quaternion.cc
[add] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/orientation_euler_angles_fusion_algorithm_using_quaternion.h
[modify] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/orientation_quaternion_fusion_algorithm_using_euler_angles.h
[add] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/orientation_util.cc
[add] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/orientation_util.h
[modify] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/platform_sensor_provider_android.cc
[modify] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/platform_sensor_provider_android.h
[modify] https://crrev.com/e9a810b690b0f42717373cfbf5611f3ab595fe27/services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.h

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/be9253322015bf040c298c481145c80f798aeb96

commit be9253322015bf040c298c481145c80f798aeb96
Author: Jun Cai <juncai@chromium.org>
Date: Fri Aug 04 22:32:17 2017

Implement device orientation fusion sensors on Linux/ChromeOS

This CL implements device orientation fusion sensors on Linux/ChromeOS.
The following sensor fallback is used:

1. For RELATIVE_ORIENTATION_EULER_ANGLES we use the following fallback:
   ACCELEROMETER

2. For RELATIVE_ORIENTATION_QUATERNION we use the following fallback:
   RELATIVE_ORIENTATION_EULER_ANGLES

Bug:  733707 
Change-Id: I440d51195b8adf396b470113012dc25aad718c17
Reviewed-on: https://chromium-review.googlesource.com/594472
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492149}
[modify] https://crrev.com/be9253322015bf040c298c481145c80f798aeb96/services/device/generic_sensor/README.md
[modify] https://crrev.com/be9253322015bf040c298c481145c80f798aeb96/services/device/generic_sensor/platform_sensor_provider_linux.cc
[modify] https://crrev.com/be9253322015bf040c298c481145c80f798aeb96/services/device/generic_sensor/platform_sensor_provider_linux.h

Project Member

Comment 9 by bugdroid1@chromium.org, Aug 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/488e4a8f665ffe4d2465aec6d97be80db2009603

commit 488e4a8f665ffe4d2465aec6d97be80db2009603
Author: Jun Cai <juncai@chromium.org>
Date: Wed Aug 09 05:05:15 2017

Check fusion sensor reporting mode for some fusion sensor algorithm

When FusionSensor's reporting mode is CONTINUOUS, it will call
PlatformSensorFusion::OnSensorReadingChanged() in a fixed frequency, and
the |type| parameter it gives to OnSensorReadingChanged() function is
the fusion sensor type itself, not one of the source sensors' type. This
may cause problem since some fusion algorithm checks which sensor
changed and decide not providing fused data if certain sensor is not
changed.

This CL fixes it by updating the GetFusedData() to check fusion sensor
reporting mode at the absolute orientation euler angles fusion algorithm
using accelerometer and magnetometer.

Bug:  733707 
Change-Id: I4b49f0e929946118c3dcb18c08ff18f8c0791a86
Reviewed-on: https://chromium-review.googlesource.com/604268
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jun Cai <juncai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492829}
[modify] https://crrev.com/488e4a8f665ffe4d2465aec6d97be80db2009603/services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.cc
[modify] https://crrev.com/488e4a8f665ffe4d2465aec6d97be80db2009603/services/device/generic_sensor/platform_sensor_fusion.cc
[modify] https://crrev.com/488e4a8f665ffe4d2465aec6d97be80db2009603/services/device/generic_sensor/platform_sensor_fusion.h

Project Member

Comment 10 by bugdroid1@chromium.org, Aug 9 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6aba5a69536283a18b8c85b8af1c6922b20594fa

commit 6aba5a69536283a18b8c85b8af1c6922b20594fa
Author: Jun Cai <juncai@chromium.org>
Date: Wed Aug 09 21:12:43 2017

Update generic sensor documentation for ORIENTATION sensors on Android

This is a follow-up CL for:
https://chromium-review.googlesource.com/c/585226

This CL updates //services/device/generic_sensor/README.md for
ORIENTATION related sensors on Android.

Bug:  733707 
Change-Id: I5d46c5eb3aa246ddb6c42dd9722e0c9df4da6d36
Reviewed-on: https://chromium-review.googlesource.com/604227
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
Reviewed-by: Alexander Shalamov <alexander.shalamov@intel.com>
Commit-Queue: Jun Cai <juncai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493139}
[modify] https://crrev.com/6aba5a69536283a18b8c85b8af1c6922b20594fa/services/device/generic_sensor/README.md

Project Member

Comment 11 by bugdroid1@chromium.org, Aug 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/268fcc4c8121e10684da6ba4c95e5b2909e287b1

commit 268fcc4c8121e10684da6ba4c95e5b2909e287b1
Author: Jun Cai <juncai@chromium.org>
Date: Sat Aug 12 00:43:03 2017

Refactor PlatformSensor::Client to receive internal notification

As per comments on
https://chromium-review.googlesource.com/c/578253/
and
https://chromium-review.googlesource.com/c/604268/

It would be nice if the fusion sensor also receives a notification if
its source sensors are in CONTINUOUS reporting mode. By doing this,
the fusion sensor doesn't need to maintain its own high frequency
timer.

This CL adds a |receive_reading_changed_internal_notification_| flag
to let the PlatformSensor::Client choose if it would like to receive
sensor reading change internal notification. This flag doesn't affect
the notification sent out to the mojo clients, it is controlled by the
|notify_clients| parameter.

Bug:  753863 ,  733707 
Change-Id: I95cc3754c81e59dfaf3e6598bac780dd08e9ec44
Reviewed-on: https://chromium-review.googlesource.com/610895
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493908}
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/generic_sensor_service_unittest.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor.h
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_accelerometer_mac.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_ambient_light_mac.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_and_provider_unittest_linux.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_android.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_fusion.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_fusion.h
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_linux.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/platform_sensor_win.cc
[modify] https://crrev.com/268fcc4c8121e10684da6ba4c95e5b2909e287b1/services/device/generic_sensor/sensor_impl.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c567d95e46067dd11da0731216bc5a83c6dd862

commit 2c567d95e46067dd11da0731216bc5a83c6dd862
Author: Jun Cai <juncai@chromium.org>
Date: Thu Aug 17 22:45:21 2017

Remove relative orientation sensor fallback to Accelerometer on Android

At //device/sensors, the current implementation of relative orientation
sensor uses GAME_ROTATION_VECTOR to provide relative orientation data,
and if GAME_ROTATION_VECTOR doesn't exist, the device orientation event
will provide absolute orientation data instead. It doesn't fallback to
use Accelerometer to calculate the relative orientation data.

This CL changes the //services/generic_sensor Android implementation to
match the current implementation at //device/sensors by removing the
relative orientation sensor fallback to Accelerometer on Android.

Bug:  733707 
Change-Id: I90ce05e9f60603a0b052931af444bf74224be0f5
Reviewed-on: https://chromium-review.googlesource.com/614796
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jun Cai <juncai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495360}
[modify] https://crrev.com/2c567d95e46067dd11da0731216bc5a83c6dd862/services/device/generic_sensor/README.md
[modify] https://crrev.com/2c567d95e46067dd11da0731216bc5a83c6dd862/services/device/generic_sensor/platform_sensor_provider_android.cc
[modify] https://crrev.com/2c567d95e46067dd11da0731216bc5a83c6dd862/services/device/generic_sensor/platform_sensor_provider_android.h

Project Member

Comment 13 by bugdroid1@chromium.org, Aug 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b4890eeb9796518fd128c4fa408992f8722eda1e

commit b4890eeb9796518fd128c4fa408992f8722eda1e
Author: Jun Cai <juncai@chromium.org>
Date: Mon Aug 21 18:28:05 2017

Add unit tests for euler angles and quaternion fusion sensor algorithms

This CL adds unit tests for fusion sensor algorithms that convert
orientation euler angles to quaternion and vice-versa.

Bug:  754773 ,  733707 
Change-Id: I4a9ffff85b5f77c424dd962e0407b7d1b0c50223
Reviewed-on: https://chromium-review.googlesource.com/612672
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495996}
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/BUILD.gn
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.cc
[add] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/fake_platform_sensor_fusion.cc
[add] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/fake_platform_sensor_fusion.h
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/orientation_euler_angles_fusion_algorithm_using_quaternion.cc
[add] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/orientation_euler_angles_fusion_algorithm_using_quaternion_unittest.cc
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/orientation_quaternion_fusion_algorithm_using_euler_angles.cc
[add] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/orientation_quaternion_fusion_algorithm_using_euler_angles_unittest.cc
[add] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/orientation_test_data.h
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/orientation_util.cc
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/orientation_util.h
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/platform_sensor.cc
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/platform_sensor_fusion.cc
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/platform_sensor_fusion.h
[modify] https://crrev.com/b4890eeb9796518fd128c4fa408992f8722eda1e/services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Aug 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f01fc5545a1db7fa32af3f691202fb426277eec

commit 0f01fc5545a1db7fa32af3f691202fb426277eec
Author: Jun Cai <juncai@chromium.org>
Date: Mon Aug 21 22:20:50 2017

Add unit tests for absolute orientation using accel and magnetometer

This CL adds unit tests for fusion sensor algorithm that converts
accelerometer and magnetometer data to absolute orientation euler
angles.

Bug:  754773 ,  733707 
Change-Id: Ia1bc2663146df63261f55c9e535261d4486b4f9b
Reviewed-on: https://chromium-review.googlesource.com/615000
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496084}
[modify] https://crrev.com/0f01fc5545a1db7fa32af3f691202fb426277eec/services/device/BUILD.gn
[modify] https://crrev.com/0f01fc5545a1db7fa32af3f691202fb426277eec/services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer.cc
[add] https://crrev.com/0f01fc5545a1db7fa32af3f691202fb426277eec/services/device/generic_sensor/absolute_orientation_euler_angles_fusion_algorithm_using_accelerometer_and_magnetometer_unittest.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Aug 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d0039f2d815fed73edd5f326c39d7504245069b4

commit d0039f2d815fed73edd5f326c39d7504245069b4
Author: Jun Cai <juncai@chromium.org>
Date: Mon Aug 21 22:38:34 2017

Add unit tests for relative orientation algorithm using accelerometer

This CL adds unit tests for fusion sensor algorithm that converts
accelerometer data to relative orientation euler angles.

Bug:  754773 ,  733707 
Change-Id: I519036cfa589b5a70aa5c33ddb53756e684f5282
Reviewed-on: https://chromium-review.googlesource.com/614083
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jun Cai <juncai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496094}
[modify] https://crrev.com/d0039f2d815fed73edd5f326c39d7504245069b4/services/device/BUILD.gn
[modify] https://crrev.com/d0039f2d815fed73edd5f326c39d7504245069b4/services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer.cc
[add] https://crrev.com/d0039f2d815fed73edd5f326c39d7504245069b4/services/device/generic_sensor/relative_orientation_euler_angles_fusion_algorithm_using_accelerometer_unittest.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/881413d0c36925974ff2a6075cef59f7eeb546d9

commit 881413d0c36925974ff2a6075cef59f7eeb546d9
Author: Jun Cai <juncai@chromium.org>
Date: Thu Aug 24 18:43:59 2017

Add unit tests for linear acceleration algorithm using accelerometer

This CL adds unit tests for fusion sensor algorithm that converts
accelerometer data to linear acceleration.

Bug:  754773 ,  733707 
Change-Id: I43b083908b43c0c3d4ad9eded04bb95ec32e46e1
Reviewed-on: https://chromium-review.googlesource.com/630242
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Commit-Queue: Jun Cai <juncai@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497141}
[modify] https://crrev.com/881413d0c36925974ff2a6075cef59f7eeb546d9/services/device/BUILD.gn
[add] https://crrev.com/881413d0c36925974ff2a6075cef59f7eeb546d9/services/device/generic_sensor/linear_acceleration_fusion_algorithm_using_accelerometer_unittest.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f8915ae2f5661e6da0cd62a39c165daf77a0ef09

commit f8915ae2f5661e6da0cd62a39c165daf77a0ef09
Author: Jun Cai <juncai@chromium.org>
Date: Thu Aug 24 19:44:17 2017

Update SensorReading comments for corresponding DeviceMotion values, etc

This CL adds documentation for ACCELEROMETER, LINEAR_ACCELERATION, and
GYROSCOPE for their corresponding DeviceMotion values in the W3C
DeviceMotion Event Specification, so that it is easy to reference these
values.

This CL also removes an unnecessary include file from
platform_sensor_fusion.h and fixes a typo at sensor_reading.h.

Bug:  733707 
Change-Id: I35445ce7978c28bc5bb074405a0a2dee18f6464a
Reviewed-on: https://chromium-review.googlesource.com/626340
Commit-Queue: Jun Cai <juncai@chromium.org>
Reviewed-by: Reilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497160}
[modify] https://crrev.com/f8915ae2f5661e6da0cd62a39c165daf77a0ef09/services/device/generic_sensor/platform_sensor_fusion.h
[modify] https://crrev.com/f8915ae2f5661e6da0cd62a39c165daf77a0ef09/services/device/public/cpp/generic_sensor/sensor_reading.h

Status: Fixed (was: Started)

Sign in to add a comment