Skip to content

Commit 1c7f33c

Browse files
committed
[Sensor] Fix the event handler issue in sensor.
1 parent cb1654d commit 1c7f33c

File tree

2 files changed

+16
-15
lines changed

2 files changed

+16
-15
lines changed

components/drivers/sensors/sensor.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,20 @@ int SensorBase::getConfig(SensorConfig *config)
5858
return 0;
5959
}
6060

61-
int SensorBase::subscribe(SensorEventHandler_t *handler, void *user_data)
61+
int SensorBase::subscribe(SensorEventHandler_t handler, void *user_data)
6262
{
6363
this->evtHandler = handler;
6464
this->userData = user_data;
6565

6666
return 0;
6767
}
6868

69-
int SensorBase::publish(sensors_event_t *event)
69+
int SensorBase::publish(void)
7070
{
7171
if (this->evtHandler != NULL)
7272
{
7373
/* invoke subscribed handler */
74-
(*evtHandler)(event, this->userData);
74+
(*evtHandler)(this->userData);
7575
}
7676

7777
return 0;
@@ -151,7 +151,7 @@ SensorBase *SensorManager::getDefaultSensor(int type)
151151
return NULL;
152152
}
153153

154-
int SensorManager::subscribe(int type, SensorEventHandler_t *handler, void *user_data)
154+
int SensorManager::subscribe(int type, SensorEventHandler_t handler, void *user_data)
155155
{
156156
SensorBase *sensor;
157157

@@ -194,7 +194,7 @@ rt_sensor_t rt_sensor_get_default(int type)
194194
return (rt_sensor_t)SensorManager::getDefaultSensor(type);
195195
}
196196

197-
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t *handler, void *user_data)
197+
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t handler, void *user_data)
198198
{
199199
SensorBase *sensor_base;
200200
if (sensor == NULL) return -1;

components/drivers/sensors/sensor.h

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -992,10 +992,10 @@ enum SensorAccelRange
992992
SENSOR_ACCEL_RANGE_8G,
993993
SENSOR_ACCEL_RANGE_16G,
994994
};
995-
#define SENSOR_ACCEL_SENSITIVITY_2G (0.001F)
996-
#define SENSOR_ACCEL_SENSITIVITY_4G (0.002F)
997-
#define SENSOR_ACCEL_SENSITIVITY_8G (0.004F)
998-
#define SENSOR_ACCEL_SENSITIVITY_16G (0.012F)
995+
#define SENSOR_ACCEL_SENSITIVITY_2G ((float)2/32768)
996+
#define SENSOR_ACCEL_SENSITIVITY_4G ((float)4/32768)
997+
#define SENSOR_ACCEL_SENSITIVITY_8G ((float)8/32768)
998+
#define SENSOR_ACCEL_SENSITIVITY_16G ((float)16/32768)
999999

10001000
enum SensorGyroRange
10011001
{
@@ -1040,12 +1040,13 @@ typedef struct SensorConfig
10401040

10411041
union range
10421042
{
1043+
int range;
10431044
enum SensorAccelRange accel_range;
10441045
enum SensorGyroRange gyro_range;
10451046
} range;
10461047
}SensorConfig;
10471048

1048-
typedef void (*SensorEventHandler_t)(sensors_event_t *event, void *user_data);
1049+
typedef void (*SensorEventHandler_t)(void *user_data);
10491050

10501051
#ifdef __cplusplus
10511052
class SensorBase;
@@ -1074,8 +1075,8 @@ class SensorBase
10741075
int setConfig(SensorConfig *config);
10751076
int getConfig(SensorConfig *config);
10761077

1077-
int subscribe(SensorEventHandler_t *handler, void *user_data);
1078-
int publish(sensors_event_t *event);
1078+
int subscribe(SensorEventHandler_t handler, void *user_data);
1079+
int publish(void);
10791080

10801081
protected:
10811082
SensorBase *next;
@@ -1084,7 +1085,7 @@ class SensorBase
10841085
/* sensor configuration */
10851086
SensorConfig config;
10861087

1087-
SensorEventHandler_t *evtHandler;
1088+
SensorEventHandler_t evtHandler;
10881089
void *userData;
10891090

10901091
friend class SensorManager;
@@ -1103,7 +1104,7 @@ class SensorManager
11031104
static int unregisterSensor(SensorBase *sensor);
11041105

11051106
static SensorBase *getDefaultSensor(int type);
1106-
static int subscribe(int type, SensorEventHandler_t *handler, void *user_data);
1107+
static int subscribe(int type, SensorEventHandler_t handler, void *user_data);
11071108

11081109
static int sensorEventReady(SensorBase *sensor);
11091110
static int pollSensor(SensorBase *sensor, sensors_event_t *events, int number, int duration);
@@ -1120,7 +1121,7 @@ extern "C" {
11201121

11211122
rt_sensor_t rt_sensor_get_default(int type);
11221123

1123-
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t *handler, void *user_data);
1124+
int rt_sensor_subscribe(rt_sensor_t sensor, SensorEventHandler_t handler, void *user_data);
11241125
int rt_sensor_activate (rt_sensor_t sensor, int enable);
11251126
int rt_sensor_configure(rt_sensor_t sensor, SensorConfig *config);
11261127
int rt_sensor_poll(rt_sensor_t sensor, sensors_event_t *event);

0 commit comments

Comments
 (0)