_sensor.md 11.6 KB
Newer Older
D
hdi api  
duangavin123 已提交
1 2 3 4 5 6 7 8
# Sensor


## **汇总**


### 文件

9
| 文件 | 描述 |
D
hdi api  
duangavin123 已提交
10
| -------- | -------- |
11 12
| [sensor_if.h](sensor__if_8h.md) | Sensor模块对外通用的接口声明文件,提供获取传感器设备信息、订阅/取消订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度,量程等可选配置接口定义。 |
| [sensor_type.h](sensor__type_8h.md) | 定义传感器模块所使用的传感器类型,传感器信息,传感器数据结构等数据类型。 |
D
hdi api  
duangavin123 已提交
13 14 15 16


### 类

17
| 类 | 描述 |
D
hdi api  
duangavin123 已提交
18
| -------- | -------- |
19 20 21
| [SensorInterface](_sensor_interface.md) | 提供sensor设备基本控制操作接口。 [更多...](_sensor_interface.md) |
| [SensorInformation](_sensor_information.md) | 定义传感器基本信息。 [更多...](_sensor_information.md) |
| [SensorEvents](_sensor_events.md) | 上报传感器数据结构。 [更多...](_sensor_events.md) |
D
hdi api  
duangavin123 已提交
22 23 24 25


### 宏定义

26
| 宏定义 | 描述 |
D
hdi api  
duangavin123 已提交
27
| -------- | -------- |
28 29
| [SENSOR_NAME_MAX_LEN](#sensornamemaxlen)   32 | Sensor名称的最大长度。 |
| [SENSOR_VERSION_MAX_LEN](#sensorversionmaxlen)   16 | Sensor版本号的最大长度。 |
D
hdi api  
duangavin123 已提交
30 31 32 33


### 类型定义

34
| 类型定义 | 描述 |
D
hdi api  
duangavin123 已提交
35
| -------- | -------- |
36
| ([RecordDataCallback](#recorddatacallback)) (const struct [SensorEvents](_sensor_events.md) \*) | 传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)。 [更多...](#recorddatacallback) |
D
hdi api  
duangavin123 已提交
37 38 39 40


### 枚举

41
| 枚举 | 描述 |
D
hdi api  
duangavin123 已提交
42
| -------- | -------- |
43 44 45 46 47 48
| [SensorStatus](#sensorstatus) { SENSOR_SUCCESS = 0, SENSOR_FAILURE = -1, SENSOR_NOT_SUPPORT = -2, SENSOR_INVALID_PARAM = -3,   SENSOR_INVALID_SERVICE = -4, SENSOR_NULL_PTR = -5 } | 定义传感器模块返回值类型。 [更多...](#sensorstatus) |
| [SensorTypeTag](#sensortypetag) { SENSOR_TYPE_NONE = 0, SENSOR_TYPE_ACCELEROMETER = 1, SENSOR_TYPE_GYROSCOPE = 2, SENSOR_TYPE_PHOTOPLETHYSMOGRAPH = 3,   SENSOR_TYPE_ELECTROCARDIOGRAPH = 4, SENSOR_TYPE_AMBIENT_LIGHT = 5, SENSOR_TYPE_MAGNETIC_FIELD = 6, SENSOR_TYPE_CAPACITIVE = 7,   SENSOR_TYPE_BAROMETER = 8, SENSOR_TYPE_TEMPERATURE = 9, SENSOR_TYPE_HALL = 10, SENSOR_TYPE_GESTURE = 11,   SENSOR_TYPE_PROXIMITY = 12, SENSOR_TYPE_HUMIDITY = 13, SENSOR_TYPE_MEDICAL_BEGIN = 128, SENSOR_TYPE_MEDICAL_END = 160,   SENSOR_TYPE_PHYSICAL_MAX = 255, SENSOR_TYPE_ORIENTATION = 256, SENSOR_TYPE_GRAVITY = 257, SENSOR_TYPE_LINEAR_ACCELERATION = 258,   SENSOR_TYPE_ROTATION_VECTOR = 259, SENSOR_TYPE_AMBIENT_TEMPERATURE = 260, SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED = 261, SENSOR_TYPE_GAME_ROTATION_VECTOR = 262,   SENSOR_TYPE_GYROSCOPE_UNCALIBRATED = 263, SENSOR_TYPE_SIGNIFICANT_MOTION = 264, SENSOR_TYPE_PEDOMETER_DETECTION = 265, SENSOR_TYPE_PEDOMETER = 266,   SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR = 277, SENSOR_TYPE_HEART_RATE = 278, SENSOR_TYPE_DEVICE_ORIENTATION = 279, SENSOR_TYPE_WEAR_DETECTION = 280,   SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED = 281, SENSOR_TYPE_MAX } | 定义传感器类型标识。 [更多...](#sensortypetag) |
| [SensorAccuracyType](#sensoraccuracytype) { SENSOR_NO_ACCURACY = 0, SENSOR_LOW_ACCURACY = 1, SENSOR_MEDIUM_ACCURACY = 2, SENSOR_HIGH_ACCURACY = 3,   SENSOR_MAX_ACCURACY } | 传感器的精度类型。 [更多...](#sensoraccuracytype) |
| [SensorRangeType](#sensorrangetype) { SENSOR_RANGE_LEVEL1 = 0, SENSOR_RANGE_LEVEL2 = 1, SENSOR_RANGE_LEVEL3 = 2, SENSOR_RANGE_LEVEL_MAX } | 传感器的量程级别。 [更多...](#sensorrangetype) |
| [SensorModeType](#sensormodetype) { SENSOR_MODE_DEFAULT = 0, SENSOR_MODE_REALTIME = 1, SENSOR_MODE_ON_CHANGE = 2, SENSOR_MODE_ONE_SHOT = 3,   SENSOR_MODE_FIFO_MODE = 4, SENSOR_MODE_MAX } | 传感器的工作模式。 [更多...](#sensormodetype) |
| [SensorGroupType](#sensorgrouptype) { TRADITIONAL_SENSOR_TYPE = 0, MEDICAL_SENSOR_TYPE = 1, SENSOR_GROUP_TYPE_MAX } | 枚举传感器的硬件服务组。 [更多...](#sensorgrouptype) |
D
hdi api  
duangavin123 已提交
49 50 51 52


### 函数

53
| 函数 | 描述 |
D
hdi api  
duangavin123 已提交
54
| -------- | -------- |
55 56
| [NewSensorInterfaceInstance](#newsensorinterfaceinstance) (void) | 创建传感器接口实例。 [更多...](#newsensorinterfaceinstance) |
| [FreeSensorInterfaceInstance](#freesensorinterfaceinstance) (void) | 释放传感器接口实例。 [更多...](#freesensorinterfaceinstance) |
D
hdi api  
duangavin123 已提交
57 58 59 60 61 62


## **详细描述**

传感器设备驱动对传感器服务提供通用的接口能力。

63
模块提供传感器服务对传感器驱动访问统一接口,服务获取驱动对象或者代理后, 通过其提供的各类方法,以传感器id区分访问不同类型传感器设备,实现获取传感器设备信息、订阅/取消订阅传感器数据、 使能/去使能传感器、设置传感器模式、设置传感器精度、量程等可选配置等。
D
hdi api  
duangavin123 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78

**Since:**

2.2

**Version:**

1.0


## **宏定义说明**


### SENSOR_NAME_MAX_LEN

79

D
hdi api  
duangavin123 已提交
80 81 82 83 84 85 86 87 88 89 90
```
#define SENSOR_NAME_MAX_LEN   32
```

**描述:**

Sensor名称的最大长度。


### SENSOR_VERSION_MAX_LEN

91

D
hdi api  
duangavin123 已提交
92 93 94 95 96 97 98 99 100 101 102 103 104 105
```
#define SENSOR_VERSION_MAX_LEN  16
```

**描述:**

Sensor版本号的最大长度。


## **类型定义说明**


### RecordDataCallback

106

D
hdi api  
duangavin123 已提交
107 108 109 110 111 112 113 114 115 116 117 118 119 120
```
typedef int32_t(* RecordDataCallback) (const struct SensorEvents *)
```

**描述:**

传感器上报数据回调函数的定义,传感器服务用户在订阅传感器时, 需要注册上报数据回调函数,传感器使能后,传感器服务用户可以接受到传感器数据,详见[SensorInterface](_sensor_interface.md)


## **枚举类型说明**


### SensorAccuracyType

121

D
hdi api  
duangavin123 已提交
122 123 124 125 126 127 128 129
```
enum SensorAccuracyType
```

**描述:**

传感器的精度类型。

130
| 枚举值 | 描述 |
D
hdi api  
duangavin123 已提交
131
| -------- | -------- |
132 133 134 135 136
| SENSOR_NO_ACCURACY | 无精度类型。 |
| SENSOR_LOW_ACCURACY | 低精度类型。 |
| SENSOR_MEDIUM_ACCURACY | 中等精度类型。 |
| SENSOR_HIGH_ACCURACY | 高精度类型。 |
| SENSOR_MAX_ACCURACY | 最大精度类型。 |
D
hdi api  
duangavin123 已提交
137 138 139 140


### SensorGroupType

141

D
hdi api  
duangavin123 已提交
142 143 144 145 146 147 148 149
```
enum SensorGroupType
```

**描述:**

枚举传感器的硬件服务组。

150
| 枚举值 | 描述 |
D
hdi api  
duangavin123 已提交
151
| -------- | -------- |
152 153 154
| TRADITIONAL_SENSOR_TYPE | 传统传感器类型,传感器ID枚举值范围为128-160。 |
| MEDICAL_SENSOR_TYPE | 医疗传感器类型,传感器ID枚举值范围不在128-160之间。 |
| SENSOR_GROUP_TYPE_MAX | 最大传感器类型。 |
D
hdi api  
duangavin123 已提交
155 156 157 158


### SensorModeType

159

D
hdi api  
duangavin123 已提交
160 161 162 163 164 165 166 167
```
enum SensorModeType
```

**描述:**

传感器的工作模式。

168
| 枚举值 | 描述 |
D
hdi api  
duangavin123 已提交
169
| -------- | -------- |
170 171 172 173 174 175
| SENSOR_MODE_DEFAULT | 传感器默认工作模式状态。 |
| SENSOR_MODE_REALTIME | 传感器实时工作模式状态,一组数据上报一次。 |
| SENSOR_MODE_ON_CHANGE | 传感器实时工作模式状态,状态变更上报一次。 |
| SENSOR_MODE_ONE_SHOT | 传感器实时工作模式状态,只上报一次。 |
| SENSOR_MODE_FIFO_MODE | 传感器缓存工作模式状态,根据配置的缓存大小上报。 |
| SENSOR_MODE_MAX | 传感器最大类型标识。 |
D
hdi api  
duangavin123 已提交
176 177 178 179


### SensorRangeType

180

D
hdi api  
duangavin123 已提交
181 182 183 184 185 186 187 188
```
enum SensorRangeType
```

**描述:**

传感器的量程级别。

189
| 枚举值 | 描述 |
D
hdi api  
duangavin123 已提交
190
| -------- | -------- |
191 192 193 194
| SENSOR_RANGE_LEVEL1 | 量程级别1。 |
| SENSOR_RANGE_LEVEL2 | 量程级别2。 |
| SENSOR_RANGE_LEVEL3 | 量程级别3。 |
| SENSOR_RANGE_LEVEL_MAX | 量程最大级别。 |
D
hdi api  
duangavin123 已提交
195 196 197 198


### SensorStatus

199

D
hdi api  
duangavin123 已提交
200 201 202 203 204 205 206 207
```
enum SensorStatus
```

**描述:**

定义传感器模块返回值类型。

208
| 枚举值 | 描述 |
D
hdi api  
duangavin123 已提交
209
| -------- | -------- |
210 211 212 213 214 215
| SENSOR_SUCCESS | 传感器执行成功。 |
| SENSOR_FAILURE | 传感器执行失败。 |
| SENSOR_NOT_SUPPORT | 传感器不支持。 |
| SENSOR_INVALID_PARAM | 传感器无效参数。 |
| SENSOR_INVALID_SERVICE | 传感器无效服务。 |
| SENSOR_NULL_PTR | 传感器空指针。 |
D
hdi api  
duangavin123 已提交
216 217 218 219


### SensorTypeTag

220

D
hdi api  
duangavin123 已提交
221 222 223 224 225 226 227 228
```
enum SensorTypeTag
```

**描述:**

定义传感器类型标识。

229
| 枚举值 | 描述 |
D
hdi api  
duangavin123 已提交
230
| -------- | -------- |
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
| SENSOR_TYPE_NONE | 空传感器类型,用于测试。 |
| SENSOR_TYPE_ACCELEROMETER | 加速度传感器。 |
| SENSOR_TYPE_GYROSCOPE | 陀螺仪传感器。 |
| SENSOR_TYPE_PHOTOPLETHYSMOGRAPH | 心率传感器。 |
| SENSOR_TYPE_ELECTROCARDIOGRAPH | 心电传感器。 |
| SENSOR_TYPE_AMBIENT_LIGHT | 环境光传感器。 |
| SENSOR_TYPE_MAGNETIC_FIELD | 地磁传感器。 |
| SENSOR_TYPE_CAPACITIVE | 电容传感器。 |
| SENSOR_TYPE_BAROMETER | 气压计传感器。 |
| SENSOR_TYPE_TEMPERATURE | 温度传感器。 |
| SENSOR_TYPE_HALL | 霍尔传感器。 |
| SENSOR_TYPE_GESTURE | 手势传感器。 |
| SENSOR_TYPE_PROXIMITY | 接近光传感器。 |
| SENSOR_TYPE_HUMIDITY | 湿度传感器。 |
| SENSOR_TYPE_MEDICAL_BEGIN | 医疗传感器ID枚举值范围的开始。 |
| SENSOR_TYPE_MEDICAL_END | 医疗传感器ID枚举值范围的结束。 |
| SENSOR_TYPE_PHYSICAL_MAX | 物理传感器最大类型。 |
| SENSOR_TYPE_ORIENTATION | 方向传感器。 |
| SENSOR_TYPE_GRAVITY | 重力传感器。 |
| SENSOR_TYPE_LINEAR_ACCELERATION | 线性加速度传感器。 |
| SENSOR_TYPE_ROTATION_VECTOR | 旋转矢量传感器。 |
| SENSOR_TYPE_AMBIENT_TEMPERATURE | 环境温度传感器 |
| SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED | 未校准磁场传感器。 |
| SENSOR_TYPE_GAME_ROTATION_VECTOR | 游戏旋转矢量传感器。 |
| SENSOR_TYPE_GYROSCOPE_UNCALIBRATED | 未校准陀螺仪传感器。 |
| SENSOR_TYPE_SIGNIFICANT_MOTION | 大幅度动作传感器。 |
| SENSOR_TYPE_PEDOMETER_DETECTION | 计步器检测传感器。 |
| SENSOR_TYPE_PEDOMETER | 计步器传感器。 |
| SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR | 地磁旋转矢量传感器。 |
| SENSOR_TYPE_HEART_RATE | 心率传感器。 |
| SENSOR_TYPE_DEVICE_ORIENTATION | 设备方向传感器。 |
| SENSOR_TYPE_WEAR_DETECTION | 佩戴检测传感器。 |
| SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED | 未校准加速度传感器。 |
| SENSOR_TYPE_MAX | 传感器类型最大个数标识。 |
D
hdi api  
duangavin123 已提交
265 266 267 268 269 270 271


## **函数说明**


### FreeSensorInterfaceInstance()

272

D
hdi api  
duangavin123 已提交
273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297
```
int32_t FreeSensorInterfaceInstance (void )
```

**描述:**

释放传感器接口实例。

**返回:**

如果释放实例成功,则返回0。

如果释放实例失败,则返回负值。

**Since:**

2.2

**Version:**

1.0


### NewSensorInterfaceInstance()

298

D
hdi api  
duangavin123 已提交
299 300 301 302 303 304 305 306 307 308
```
const struct SensorInterface* NewSensorInterfaceInstance (void )
```

**描述:**

创建传感器接口实例。

**参数:**

309
| 名称 | 描述 |
D
hdi api  
duangavin123 已提交
310
| -------- | -------- |
311 312
| sensorId | 表示传感器ID。有关详细信息,详见[SensorTypeTag](#sensortypetag)。 |
| cb | 表示要注册的回调函数。有关详细信息,详见[RecordDataCallback](#recorddatacallback)。 |
D
hdi api  
duangavin123 已提交
313 314 315 316 317 318 319 320 321 322 323 324 325 326

**返回:**

如果创建实例成功,则返回非零值。

如果创建实例失败,则返回负值。

**Since:**

2.2

**Version:**

1.0