Getting data from accelerometer
Here is how you can get accelerometer data.
First you have to implement callback function for sensor event, then you have to subscribe for sensor events.
#include <sensor.h>
#include <dlog.h> // for logging purposes
//sensor event callback implementation
void sensor_event_callback(sensor_h sensor, sensor_event_s *event, void *user_data)
{
sensor_type_e type;
sensor_get_type(sensor, &type);
if(type == SENSOR_ACCELEROMETER)
{
LOGI("accelerometer: %f, %f, %f", event->values[0], event->values[1], event->values[2]);
}
}
//You must declare sensor handle and sensor listener handle.
sensor_h sensor;
sensor_listener_h listener;
//Starting sensor listener
sensor_type_e type = SENSOR_ACCELEROMETER;
if (sensor_get_default_sensor(type, &sensor) == SENSOR_ERROR_NONE)
{
if (sensor_create_listener(sensor, &listener) == SENSOR_ERROR_NONE
&& sensor_listener_set_event_cb(listener, 100, sensor_event_callback, NULL) == SENSOR_ERROR_NONE)
{
if (sensor_listener_start(listener) == SENSOR_ERROR_NONE)
{
LOGI("sensor listener started!");
}
}
}
//Stopping sensor listener
int err = sensor_listener_stop(listener);
//handle error codes as you wish
err = sensor_destroy_listener(listener);