summaryrefslogtreecommitdiffstats
path: root/libsensors/sensors.cpp
diff options
context:
space:
mode:
authorKyle Repinski <repinski23@gmail.com>2015-12-06 11:53:02 -0600
committerZiyan <jaraidaniel@gmail.com>2016-01-17 22:41:00 +0100
commit36409dac6ce3c241d878d5997b6f7dca29321c6a (patch)
treee234231cac5bb328219054ef44d907e91b308178 /libsensors/sensors.cpp
parent2f7955bc68164c19978120ab7c67a9061ced72a5 (diff)
downloaddevice_samsung_tuna-36409dac6ce3c241d878d5997b6f7dca29321c6a.zip
device_samsung_tuna-36409dac6ce3c241d878d5997b6f7dca29321c6a.tar.gz
device_samsung_tuna-36409dac6ce3c241d878d5997b6f7dca29321c6a.tar.bz2
libsensors: Big cleanup.
- Some formatting nitpicks. - Removed useless 'dev_name'/'dev_fd' stuff for SensorBase. - Merged sensor structs together. - Added handleToDriver for MPLSensor.
Diffstat (limited to 'libsensors/sensors.cpp')
-rw-r--r--libsensors/sensors.cpp50
1 files changed, 39 insertions, 11 deletions
diff --git a/libsensors/sensors.cpp b/libsensors/sensors.cpp
index fe2070e..84b2682 100644
--- a/libsensors/sensors.cpp
+++ b/libsensors/sensors.cpp
@@ -34,6 +34,7 @@
#include <utils/Log.h>
#include "sensors.h"
+#include "sensor_params.h"
#include "MPLSensor.h"
#include "LightSensor.h"
@@ -93,6 +94,34 @@ static struct sensor_t sSensorList[LOCAL_SENSORS + MPLSensor::numSensors] =
{"BMP180 Temperature", "Bosch", 1, SENSORS_TEMPERATURE_HANDLE,
SENSOR_TYPE_AMBIENT_TEMPERATURE, 850.0f, 0.1f, 0.67f, 20000, 0, 0,
SENSOR_STRING_TYPE_AMBIENT_TEMPERATURE, "", 20000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Gyroscope", "Invensense", 1, SENSORS_GYROSCOPE_HANDLE,
+ SENSOR_TYPE_GYROSCOPE, GYRO_MPU3050_RANGE, GYRO_MPU3050_RESOLUTION,
+ GYRO_MPU3050_POWER, 10000, 0, 0, SENSOR_STRING_TYPE_GYROSCOPE, "",
+ 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Accelerometer", "Invensense", 1, SENSORS_ACCELERATION_HANDLE,
+ SENSOR_TYPE_ACCELEROMETER, ACCEL_BMA250_RANGE, ACCEL_BMA250_RESOLUTION,
+ ACCEL_BMA250_POWER, 10000, 0, 0, SENSOR_STRING_TYPE_ACCELEROMETER, "",
+ 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Magnetic Field", "Invensense", 1, SENSORS_MAGNETIC_FIELD_HANDLE,
+ SENSOR_TYPE_MAGNETIC_FIELD, COMPASS_YAS530_RANGE, COMPASS_YAS530_RESOLUTION,
+ COMPASS_YAS530_POWER, 10000, 0, 0, SENSOR_STRING_TYPE_MAGNETIC_FIELD, "",
+ 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Orientation", "Invensense", 1, SENSORS_ORIENTATION_HANDLE,
+ SENSOR_TYPE_ORIENTATION, NINEAXIS_ORIENTATION_RANGE, NINEAXIS_ORIENTATION_RESOLUTION,
+ NINEAXIS_ORIENTATION_POWER, 10000, 0, 0, SENSOR_STRING_TYPE_ORIENTATION, "",
+ 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Rotation Vector", "Invensense", 1, SENSORS_ROTATION_VECTOR_HANDLE,
+ SENSOR_TYPE_ROTATION_VECTOR, NINEAXIS_ROTATION_VECTOR_RANGE, NINEAXIS_ROTATION_VECTOR_RESOLUTION,
+ NINEAXIS_ROTATION_VECTOR_POWER, 10000, 0, 0, SENSOR_STRING_TYPE_ORIENTATION, "",
+ 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Linear Acceleration", "Invensense", 1, SENSORS_LINEAR_ACCEL_HANDLE,
+ SENSOR_TYPE_LINEAR_ACCELERATION, NINEAXIS_LINEAR_ACCEL_RANGE, NINEAXIS_LINEAR_ACCEL_RESOLUTION,
+ NINEAXIS_LINEAR_ACCEL_POWER, 10000, 0, 0, SENSOR_STRING_TYPE_LINEAR_ACCELERATION, "",
+ 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Gravity", "Invensense", 1, SENSORS_GRAVITY_HANDLE,
+ SENSOR_TYPE_GRAVITY, NINEAXIS_GRAVITY_RANGE, NINEAXIS_GRAVITY_RESOLUTION,
+ NINEAXIS_GRAVITY_POWER, 10000, 0, 0, SENSOR_STRING_TYPE_GRAVITY, "",
+ 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
};
static int numSensors = LOCAL_SENSORS;
@@ -253,7 +282,7 @@ sensors_poll_context_t::sensors_poll_context_t()
sensors_poll_context_t::~sensors_poll_context_t()
{
FUNC_LOG;
- for (int i=0 ; i<numSensorDrivers ; i++) {
+ for (int i = 0; i < numSensorDrivers; i++) {
delete mSensors[i];
}
close(mPollFds[wake].fd);
@@ -269,7 +298,7 @@ int sensors_poll_context_t::activate(int handle, int enabled)
if (!err) {
const char wakeMessage(WAKE_MESSAGE);
int result = write(mWritePipeFd, &wakeMessage, 1);
- ALOGE_IF(result<0, "error sending wake message (%s)", strerror(errno));
+ ALOGE_IF(result < 0, "error sending wake message (%s)", strerror(errno));
}
return err;
}
@@ -291,7 +320,7 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
do {
// see if we have some leftover from the last poll()
- for (int i=0 ; count && i<numSensorDrivers ; i++) {
+ for (int i = 0; count && i < numSensorDrivers; i++) {
SensorBase* const sensor(mSensors[i]);
if ((mPollFds[i].revents & POLLIN) || (sensor->hasPendingEvents())) {
int nb = sensor->readEvents(data, count);
@@ -304,13 +333,12 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
data += nb;
//special handling for the mpl, which has multiple handles
- if(i==mpl) {
- i+=2; //skip accel and timer
+ if (i == mpl) {
+ i += 2; //skip accel and timer
mPollFds[mpl_accel].revents = 0;
mPollFds[mpl_timer].revents = 0;
- }
- if(i==mpl_accel) {
- i+=1; //skip timer
+ } else if (i == mpl_accel) {
+ i += 1; //skip timer
mPollFds[mpl_timer].revents = 0;
}
}
@@ -323,18 +351,18 @@ int sensors_poll_context_t::pollEvents(sensors_event_t* data, int count)
do {
n = poll(mPollFds, numFds, nbEvents ? 0 : polltime);
} while (n < 0 && errno == EINTR);
- if (n<0) {
+ if (n < 0) {
ALOGE("poll() failed (%s)", strerror(errno));
return -errno;
}
if (mPollFds[wake].revents & POLLIN) {
char msg;
int result = read(mPollFds[wake].fd, &msg, 1);
- ALOGE_IF(result<0, "error reading from wake pipe (%s)", strerror(errno));
+ ALOGE_IF(result < 0, "error reading from wake pipe (%s)", strerror(errno));
ALOGE_IF(msg != WAKE_MESSAGE, "unknown message on wake queue (0x%02x)", int(msg));
mPollFds[wake].revents = 0;
}
- if(mPollFds[mpl_power].revents & POLLIN) {
+ if (mPollFds[mpl_power].revents & POLLIN) {
((MPLSensor*)mSensors[mpl])->handlePowerEvent();
mPollFds[mpl_power].revents = 0;
}