1e41f4b71Sopenharmony_ci# Sensor Usage Example
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe following sample code uses the sensor whose **sensorTypeId** is **0** as an example. The code for other sensor types is similar.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci```c
6e41f4b71Sopenharmony_ci#include "sensor_agent.h"
7e41f4b71Sopenharmony_ci#include "sensor_agent_type.h"
8e41f4b71Sopenharmony_ci#include "stdio.h"
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_civoid SensorDataCallbackImpl(SensorEvent *event)
11e41f4b71Sopenharmony_ci{
12e41f4b71Sopenharmony_ci    if(event == NULL){
13e41f4b71Sopenharmony_ci        return;
14e41f4b71Sopenharmony_ci    }
15e41f4b71Sopenharmony_ci    float *sensorData=(float *)event->data;
16e41f4b71Sopenharmony_ci    for(int32_t i = 0; i < (int32_t)(event->dataLen / sizeof(uint8_t *)); i++){
17e41f4b71Sopenharmony_ci        printf("SensorDataCallbackImpl data: %f", *(sensorData + i));
18e41f4b71Sopenharmony_ci    }
19e41f4b71Sopenharmony_ci}
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci/* Test case function */
22e41f4b71Sopenharmony_cistatic int32_t TestSensorService(void)
23e41f4b71Sopenharmony_ci{
24e41f4b71Sopenharmony_ci    SensorUser sensorUser;
25e41f4b71Sopenharmony_ci    sensorUser.callback = SensorDataCallbackImpl;
26e41f4b71Sopenharmony_ci    SensorInfo *sensorInfo = (SensorInfo *)NULL;
27e41f4b71Sopenharmony_ci    int32_t count = 0;
28e41f4b71Sopenharmony_ci    // Obtain the list of sensors on the device.
29e41f4b71Sopenharmony_ci    int32_t ret = GetAllSensors(&sensorInfo, &count);
30e41f4b71Sopenharmony_ci    if (ret != 0) {
31e41f4b71Sopenharmony_ci        printf("GetAllSensors failed! ret: %d", ret);
32e41f4b71Sopenharmony_ci        return ret;
33e41f4b71Sopenharmony_ci    }
34e41f4b71Sopenharmony_ci    // Enable the sensor.
35e41f4b71Sopenharmony_ci    ret = ActivateSensor(0, &sensorUser);
36e41f4b71Sopenharmony_ci    if (ret != 0) {
37e41f4b71Sopenharmony_ci        printf("ActivateSensorfailed! ret: %d", ret);
38e41f4b71Sopenharmony_ci        return ret;
39e41f4b71Sopenharmony_ci    }
40e41f4b71Sopenharmony_ci     // Subscribe to sensor data.
41e41f4b71Sopenharmony_ci    ret = SubscribeSensor(0, &sensorUser);
42e41f4b71Sopenharmony_ci    if (ret != 0) {
43e41f4b71Sopenharmony_ci        printf("SubscribeSensor! ret: %d", ret);
44e41f4b71Sopenharmony_ci        return ret;
45e41f4b71Sopenharmony_ci    }
46e41f4b71Sopenharmony_ci    sleep(10);
47e41f4b71Sopenharmony_ci    // Unsubscribe from the sensor data.
48e41f4b71Sopenharmony_ci    ret = UnsubscribeSensor(0, &sensorUser);
49e41f4b71Sopenharmony_ci    if (ret != 0) {
50e41f4b71Sopenharmony_ci        printf("UnsubscribeSensor! ret: %d", ret);
51e41f4b71Sopenharmony_ci        return ret;
52e41f4b71Sopenharmony_ci    }
53e41f4b71Sopenharmony_ci    // Disable the sensor.
54e41f4b71Sopenharmony_ci    ret = DeactivateSensor(0, &sensorUser);
55e41f4b71Sopenharmony_ci    if (ret != 0) {
56e41f4b71Sopenharmony_ci        printf("DeactivateSensor! ret: %d", ret);
57e41f4b71Sopenharmony_ci        return ret;
58e41f4b71Sopenharmony_ci    }
59e41f4b71Sopenharmony_ci}
60e41f4b71Sopenharmony_ci```
61e41f4b71Sopenharmony_ci
62