• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Sensor服务使用指导
2
3
4下面使用步骤以sensorTypeId为0的传感器为例,其他类型的传感器使用方式类似。
5
6
7## 使用步骤
8
91. 导入需要的包
10
11
12    ```c
13    #include "sensor_agent.h"
14    #include "sensor_agent_type.h"
15    ```
16
172. 创建传感器回调函数
18
19
20
21    ```c
22    void SensorDataCallbackImpl(SensorEvent *event)
23    {
24        if(event == NULL){
25            return;
26        }
27        float *sensorData=(float *)event->data;
28    }
29    ```
30
31    > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
32    > 回调函数的格式为RecordSensorCallback类型。
33
343. 获取设备支持sensor列表
35
36
37
38    ```c
39    SensorInfo *sensorInfo = (SensorInfo *)NULL;
40    int32_t count = 0;
41    int32_t ret = GetAllSensors(&sensorInfo, &count);
42    ```
43
444. 创建的传感器用户
45
46
47
48    ```c
49    SensorUser sensorUser;
50    sensorUser.callback = SensorDataCallbackImpl; //成员变量callback指向创建的回调方法
51    ```
52
535. 使能传感器
54
55
56
57    ```c
58    int32_t ret = ActivateSensor(0, &sensorUser);
59    ```
60
616. 订阅传感器数据
62
63
64
65    ```c
66    int32_t ret = SubscribeSensor(0, &sensorUser);
67    ```
68
69    > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
70    > 到这步就可以在实现的回调方法中获取到传感器数据。
71
727. 取消传感器数据订阅
73
74
75
76    ```c
77    int32_t ret = UnsubscribeSensor(0, &sensorUser);
78    ```
79
808. 去使能一个传感器
81
82
83
84    ```c
85    int32_t ret = DeactivateSensor(0, &sensorUser);
86    ```
87