Chromium Code Reviews| Index: device/generic_sensor/linux/sensor_data_linux.cc |
| diff --git a/device/generic_sensor/linux/sensor_data_linux.cc b/device/generic_sensor/linux/sensor_data_linux.cc |
| index 1d937c8b25ccc7ea9ea31f139e67b4609a67bf16..ed2f2581a093218a4953911b72bdd419d1368b99 100644 |
| --- a/device/generic_sensor/linux/sensor_data_linux.cc |
| +++ b/device/generic_sensor/linux/sensor_data_linux.cc |
| @@ -28,7 +28,6 @@ void InitAmbientLightSensorData(SensorDataLinux* data) { |
| "in_illuminance0_input", "in_illuminance_input", "in_illuminance0_raw", |
| "in_illuminance_raw"}; |
| data->sensor_file_names.push_back(std::move(file_names)); |
| - data->reporting_mode = mojom::ReportingMode::ON_CHANGE; |
| data->default_configuration = |
| PlatformSensorConfiguration(kDefaultAmbientLightFrequencyHz); |
| } |
| @@ -72,27 +71,30 @@ void InitAccelerometerSensorData(SensorDataLinux* data) { |
| #if defined(OS_CHROMEOS) |
| data->sensor_scale_name = "in_accel_base_scale"; |
| - data->apply_scaling_func = |
| - base::Bind([](double scaling_value, SensorReading& reading) { |
| - double scaling = kMeanGravity / scaling_value; |
| + data->sensor_frequency_file_name = "in_accel_base_sampling_frequency"; |
| + data->apply_scaling_func = base::Bind( |
| + [](double scaling_value, double offset, SensorReading& reading) { |
| + double scaling = (kMeanGravity / scaling_value) + offset; |
| reading.values[0] = scaling * reading.values[0]; |
| reading.values[1] = scaling * reading.values[1]; |
| reading.values[2] = scaling * reading.values[2]; |
| }); |
| #else |
| data->sensor_scale_name = "in_accel_scale"; |
| - data->apply_scaling_func = |
| - base::Bind([](double scaling_value, SensorReading& reading) { |
| + data->sensor_offset_file_name = "in_accel_offset"; |
| + data->sensor_frequency_file_name = "in_accel_sampling_frequency"; |
| + data->apply_scaling_func = base::Bind( |
| + [](double scaling_value, double offset, SensorReading& reading) { |
| + double scaling = scaling_value + offset; |
| // Adapt Linux reading values to generic sensor api specs. |
| - reading.values[0] = -scaling_value * reading.values[0]; |
| - reading.values[1] = -scaling_value * reading.values[1]; |
| - reading.values[2] = -scaling_value * reading.values[2]; |
| + reading.values[0] = -scaling * reading.values[0]; |
| + reading.values[1] = -scaling * reading.values[1]; |
| + reading.values[2] = -scaling * reading.values[2]; |
| }); |
| #endif |
| MaybeCheckKernelVersionAndAssignFileNames(file_names_x, file_names_y, |
| file_names_z, data); |
| - data->reporting_mode = mojom::ReportingMode::CONTINUOUS; |
| data->default_configuration = |
| PlatformSensorConfiguration(kDefaultAccelerometerFrequencyHz); |
| } |
| @@ -106,10 +108,11 @@ void InitGyroscopeSensorData(SensorDataLinux* data) { |
| "in_anglvel_z_raw"}; |
| #if defined(OS_CHROMEOS) |
| data->sensor_scale_name = "in_anglvel_base_scale"; |
| - data->apply_scaling_func = |
| - base::Bind([](double scaling_value, SensorReading& reading) { |
| + data->sensor_frequency_file_name = "in_anglvel_base_frequency"; |
| + data->apply_scaling_func = base::Bind( |
| + [](double scaling_value, double offset, SensorReading& reading) { |
| double scaling = |
| - kMeanGravity * kRadiansInDegreesPerSecond / scaling_value; |
| + kMeanGravity * kRadiansInDegreesPerSecond / scaling_value + offset; |
| // Adapt CrOS reading values to generic sensor api specs. |
| reading.values[0] = -scaling * reading.values[0]; |
| reading.values[1] = -scaling * reading.values[1]; |
| @@ -117,17 +120,19 @@ void InitGyroscopeSensorData(SensorDataLinux* data) { |
| }); |
| #else |
| data->sensor_scale_name = "in_anglvel_scale"; |
| - data->apply_scaling_func = |
| - base::Bind([](double scaling_value, SensorReading& reading) { |
| - reading.values[0] = scaling_value * reading.values[0]; |
| - reading.values[1] = scaling_value * reading.values[1]; |
| - reading.values[2] = scaling_value * reading.values[2]; |
| + data->sensor_offset_file_name = "in_anglvel_offset"; |
| + data->sensor_frequency_file_name = "in_anglvel_sampling_frequency"; |
| + data->apply_scaling_func = base::Bind( |
| + [](double scaling_value, double offset, SensorReading& reading) { |
| + double scaling = scaling_value + offset; |
| + reading.values[0] = scaling * reading.values[0]; |
| + reading.values[1] = scaling * reading.values[1]; |
| + reading.values[2] = scaling * reading.values[2]; |
| }); |
| #endif |
| MaybeCheckKernelVersionAndAssignFileNames(file_names_x, file_names_y, |
| file_names_z, data); |
| - data->reporting_mode = mojom::ReportingMode::CONTINUOUS; |
| data->default_configuration = |
| PlatformSensorConfiguration(kDefaultGyroscopeFrequencyHz); |
| } |
| @@ -140,16 +145,18 @@ void InitMagnitometerSensorData(SensorDataLinux* data) { |
| std::vector<std::string> file_names_z{"in_magn_z_raw"}; |
| data->sensor_scale_name = "in_magn_scale"; |
| - data->apply_scaling_func = base::Bind([](double scaling_value, |
| - SensorReading& reading) { |
| - reading.values[0] = scaling_value * kMicroteslaInGauss * reading.values[0]; |
| - reading.values[1] = scaling_value * kMicroteslaInGauss * reading.values[1]; |
| - reading.values[2] = scaling_value * kMicroteslaInGauss * reading.values[2]; |
| - }); |
| + data->sensor_offset_file_name = "in_magn_offset"; |
| + data->sensor_frequency_file_name = "in_magn_sampling_frequency"; |
| + data->apply_scaling_func = base::Bind( |
| + [](double scaling_value, double offset, SensorReading& reading) { |
| + double scaling = scaling_value + offset; |
| + reading.values[0] = scaling * kMicroteslaInGauss * reading.values[0]; |
| + reading.values[1] = scaling * kMicroteslaInGauss * reading.values[1]; |
| + reading.values[2] = scaling * kMicroteslaInGauss * reading.values[2]; |
| + }); |
| MaybeCheckKernelVersionAndAssignFileNames(file_names_x, file_names_y, |
| file_names_z, data); |
| - data->reporting_mode = mojom::ReportingMode::CONTINUOUS; |
| data->default_configuration = |
| PlatformSensorConfiguration(kDefaultMagnetometerFrequencyHz); |
| } |
| @@ -165,6 +172,7 @@ SensorDataLinux::SensorDataLinux(const SensorDataLinux& other) = default; |
| bool InitSensorData(SensorType type, SensorDataLinux* data) { |
| DCHECK(data); |
| + data->type = type; |
| switch (type) { |
| case SensorType::AMBIENT_LIGHT: |
| InitAmbientLightSensorData(data); |
| @@ -179,7 +187,7 @@ bool InitSensorData(SensorType type, SensorDataLinux* data) { |
| InitMagnitometerSensorData(data); |
| break; |
| default: |
| - NOTIMPLEMENTED(); |
| + // NOTIMPLEMENTED(); |
|
Reilly Grant (use Gerrit)
2016/11/29 20:19:56
Remove this line since now we regularly expect to
maksims (do not use this acc)
2016/12/05 13:06:59
Done.
|
| return false; |
| } |