提交 452432a1 编写于 作者: B Bernard Xiong

[Sensor] Fix the call back issue in sensor.

上级 90e95eca
......@@ -58,7 +58,7 @@ int SensorBase::getConfig(SensorConfig *config)
return 0;
}
int SensorBase::subscribe(SensorEventHandler_t *handler, void *user_data)
int SensorBase::subscribe(SensorEventHandler_t handler, void *user_data)
{
this->evtHandler = handler;
this->userData = user_data;
......@@ -66,12 +66,12 @@ int SensorBase::subscribe(SensorEventHandler_t *handler, void *user_data)
return 0;
}
int SensorBase::publish(sensors_event_t *event)
int SensorBase::publish(void)
{
if (this->evtHandler != NULL)
{
/* invoke subscribed handler */
(*evtHandler)(event, this->userData);
(*evtHandler)(this->userData);
}
return 0;
......@@ -151,7 +151,7 @@ SensorBase *SensorManager::getDefaultSensor(int type)
return NULL;
}
int SensorManager::subscribe(int type, SensorEventHandler_t *handler, void *user_data)
int SensorManager::subscribe(int type, SensorEventHandler_t handler, void *user_data)
{
SensorBase *sensor;
......@@ -194,7 +194,7 @@ rt_sensor_t rt_sensor_get_default(int type)
return (rt_sensor_t)SensorManager::getDefaultSensor(type);
}
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t *handler, void *user_data)
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t handler, void *user_data)
{
SensorBase *sensor_base;
if (sensor == NULL) return -1;
......
......@@ -992,10 +992,10 @@ enum SensorAccelRange
SENSOR_ACCEL_RANGE_8G,
SENSOR_ACCEL_RANGE_16G,
};
#define SENSOR_ACCEL_SENSITIVITY_2G (0.001F)
#define SENSOR_ACCEL_SENSITIVITY_4G (0.002F)
#define SENSOR_ACCEL_SENSITIVITY_8G (0.004F)
#define SENSOR_ACCEL_SENSITIVITY_16G (0.012F)
#define SENSOR_ACCEL_SENSITIVITY_2G ((float)2/32768)
#define SENSOR_ACCEL_SENSITIVITY_4G ((float)4/32768)
#define SENSOR_ACCEL_SENSITIVITY_8G ((float)8/32768)
#define SENSOR_ACCEL_SENSITIVITY_16G ((float)16/32768)
enum SensorGyroRange
{
......@@ -1040,12 +1040,13 @@ typedef struct SensorConfig
union range
{
int range;
enum SensorAccelRange accel_range;
enum SensorGyroRange gyro_range;
} range;
}SensorConfig;
typedef void (*SensorEventHandler_t)(sensors_event_t *event, void *user_data);
typedef void (*SensorEventHandler_t)(void *user_data);
#ifdef __cplusplus
class SensorBase;
......@@ -1074,8 +1075,8 @@ public:
int setConfig(SensorConfig *config);
int getConfig(SensorConfig *config);
int subscribe(SensorEventHandler_t *handler, void *user_data);
int publish(sensors_event_t *event);
int subscribe(SensorEventHandler_t handler, void *user_data);
int publish(void);
protected:
SensorBase *next;
......@@ -1084,7 +1085,7 @@ protected:
/* sensor configuration */
SensorConfig config;
SensorEventHandler_t *evtHandler;
SensorEventHandler_t evtHandler;
void *userData;
friend class SensorManager;
......@@ -1103,7 +1104,7 @@ public:
static int unregisterSensor(SensorBase *sensor);
static SensorBase *getDefaultSensor(int type);
static int subscribe(int type, SensorEventHandler_t *handler, void *user_data);
static int subscribe(int type, SensorEventHandler_t handler, void *user_data);
static int sensorEventReady(SensorBase *sensor);
static int pollSensor(SensorBase *sensor, sensors_event_t *events, int number, int duration);
......@@ -1120,7 +1121,7 @@ extern "C" {
rt_sensor_t rt_sensor_get_default(int type);
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t *handler, void *user_data);
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t handler, void *user_data);
int rt_sensor_activate (rt_sensor_t sensor, int enable);
int rt_sensor_configure(rt_sensor_t sensor, SensorConfig *config);
int rt_sensor_poll(rt_sensor_t sensor, sensors_event_t *event);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册