subsys-sensor-guide.md 1.5 KB
Newer Older
N
NEEN 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
# Sensors Usage Guidelines<a name="EN-US_TOPIC_0000001077367158"></a>

-   [How to Use](#section18816105182315)

The following steps use the sensor whose  **sensorTypeId**  is  **0**  as an example. The guidelines for other sensor types are similar.

## How to Use<a name="section18816105182315"></a>

1.  Import the required header files.

```
#include "sensor_agent.h"
#include "sensor_agent_type.h"
```

1.  Create a sensor callback.

```
void SensorDataCallbackImpl(SensorEvent *event)
{
    if(event == NULL){
        return;
    }
    float *sensorData=(float *)event->data;
}
```

D
duangavin123 已提交
28
>![](../public_sys-resources/icon-note.gif) **NOTE:** 
N
NEEN 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
>The callback must be of the RecordSensorCallback type.

1.  Obtain the list of sensors supported by the device.

```
SensorInfo *sensorInfo = (SensorInfo *)NULL;
int32_t count = 0;
int32_t ret = GetAllSensors(&sensorInfo, &count);
```

1.  Create a sensor user.

```
SensorUser sensorUser;
sensorUser.callback = SensorDataCallbackImpl; // Assign the created callback SensorDataCallbackImpl to the member variable callback.
```

1.  Enable the sensor.

```
int32_t ret = ActivateSensor(0, &sensorUser);
```

1.  Subscribe to sensor data.

```
int32_t ret = SubscribeSensor(0, &sensorUser);
```

D
duangavin123 已提交
58
>![](../public_sys-resources/icon-note.gif) **NOTE:** 
N
NEEN 已提交
59 60 61 62 63 64 65 66 67 68 69 70 71 72
>Till now, you can obtain the sensor data via the callback.

1.  Unsubscribe from the sensor data.

```
int32_t ret = UnsubscribeSensor(0, &sensorUser);
```

1.  Disable the sensor.

```
int32_t ret = DeactivateSensor(0, &sensorUser);
```