diff options
| author | bernard <[email protected]> | 2015-01-04 12:24:46 +0800 |
|---|---|---|
| committer | bernard <[email protected]> | 2015-01-04 12:24:46 +0800 |
| commit | 46bca6f84a18576bf134bd184e825e905f83802d (patch) | |
| tree | 59f01db23e65ca567d19b74355e1171d44c635c3 /components/drivers/sensors/sensor.cpp | |
| parent | 58163f49e01e351699134426db90f2bd6529ca57 (diff) | |
Add C programming language APIs.
Diffstat (limited to 'components/drivers/sensors/sensor.cpp')
| -rw-r--r-- | components/drivers/sensors/sensor.cpp | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/components/drivers/sensors/sensor.cpp b/components/drivers/sensors/sensor.cpp index 88342d6dac..2848707192 100644 --- a/components/drivers/sensors/sensor.cpp +++ b/components/drivers/sensors/sensor.cpp @@ -71,7 +71,7 @@ int SensorBase::publish(sensors_event_t *event) if (this->evtHandler != NULL) { /* invoke subscribed handler */ - (*evtHandler)(this, event, this->userData); + (*evtHandler)(event, this->userData); } return 0; @@ -189,3 +189,39 @@ int SensorManager::pollSensor(SensorBase *sensor, sensors_event_t *events, int n return index; } +int rt_sensor_subscribe(int type, SensorEventHandler_t *handler, void *user_data) +{ + return SensorManager::subscribe(type, handler, user_data); +} + +rt_sensor_t rt_sensor_get_default(int type) +{ + return (rt_sensor_t)SensorManager::getDefaultSensor(type); +} + +int rt_sensor_poll(rt_sensor_t sensor, sensors_event_t *event) +{ + SensorBase *sensor_base; + if (sensor == NULL || event == NULL) return -1; + + return sensor_base->poll(event); +} + +int rt_sensor_configure(rt_sensor_t sensor, SensorConfig *config) +{ + SensorBase *sensor_base; + if (sensor == NULL || config == NULL) return -1; + + sensor_base = (SensorBase*)sensor; + return sensor_base->setConfig(config); +} + +int rt_sensor_activate(rt_sensor_t sensor, int enable) +{ + SensorBase *sensor_base; + if (sensor == NULL) return -1; + + sensor_base = (SensorBase*)sensor; + return sensor_base->activate(enable); +} + |
