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