1## Gatt测试使用说明文档 2 3 本文档主要介绍蓝牙专项测试程序的Gatt部分的功能使用说明。 4 5### 从主界面跳转到Gatt蓝牙部分 6 7Gatt测试分为Client测试和Server测试 8 9 10 11### Gatt客户端 12 13选择GattClient测试,进行Gatt客户端的测试 14 15 16 17#### GattClientSetting界面 18 19点击"switch"图标<img src="switch.png" alt="switch" style="zoom: 50%;" />,可以在setting界面修改MAC地址, ServerUUID, characteristicUuid, descriptorUuid的值。已经设置了默认值。 20 21 22 23>Gatt_ClientSetting中参数有: 24> 25> 外围设备MAC 26> 27> 服务UUID 28> 29> 特征值UUID,特征值Value 30> 31> 描述符UUID,描述符Value 32> 33 34#### GattClient的主要接口 35 36| method名称 | API名称 | 所需参数 | 返回值 | 备注 | 37| :------------------: | :-------------------------------: | :----------------------------------------------------------: | :-------------------------: | :--: | 38| 创建GattClient | createGattClient | (deviceId: string) | GattClientDevice | | 39| 连接 | connect | () | boolean | | 40| 取消连接 | disconnect | () | boolean | | 41| ble连接状态 | on.BLEConnectionStatecChange | (type: "BLEConnectionStateChange", callback: Callback<BLEConnectChangedState>) | void | | 42| 关闭 | close | () | boolean | | 43| 获取服务callback | getServices(callback) | (callback: AsyncCallback<Array<GattService>>) | void | | 44| 获取服务promise | getServices(pomise) | () | Promise<Array<GattService>> | | 45| 读取特征值callback | readCharacteristicValue(callback) | (characteristic: BLECharacteristic, callback: AsyncCallback<BLECharacteristic>) | void | | 46| 读取特征值promise | readCharacteristicValue(pomise) | (characteristic: BLECharacteristic) | Promise<BLECharacteristic> | | 47| 读取描述符值callback | readDescripitorValue(callback) | (descriptor: BLEDescriptor, callback: AsyncCallback<BLEDescriptor>) | void | | 48| 读取描述符值promise | readDescripitorValue(promise) | (descriptor: BLEDescriptor) | Promise<BLEDescriptor> | | 49| 写入特征值 | writeCharacteristicValue | (characteristic: BLECharacteristic) | boolean | | 50| 写入描述符值 | writeDescripitorValue | (descriptor: BLEDescriptor) | boolean | | 51| BLE特征值变化 | on.BLECharacteristicChange | (type: "BLECharacteristicChange", callback: Callback<BLECharacteristic>) | void | | 52| 设定BLEMtu尺寸 | setBLEMtuSize | (mtu: number) | boolean | | 53| 设置通知特性更改 | setNotifyCharateristicChanged | (characteristic: BLECharacteristic, enable: boolean) | boolean | | 54| 获取设备名称callback | getDeviceName(callback) | (callback: AsyncCallback<string>) | void | | 55| 获取设备名称promise | getDeviceName(promise) | () | Promise<string> | | 56| 获取Rssi值callback | getRssiValue(callback) | (callback: AsyncCallback<number>) | void | | 57| 获取Rssi值promise | getRssiValue(promise) | () | Promise<number> | | 58 59#### Gatt_Client测试功能 60 61**"蓝牙打开"是其他功能测试的前提** 62 631. 创造GattClient 64 65 - 使用指导:点击"创造GattClient"后,创建一个JavaScript网关客户端设备实例。 66 - 限制条件:蓝牙状态要打开,且GattClient不存在实例,并且会判断是否输入了MAC地址和MAC地址长度正确与否。 67 - 验证方法:尝试可以去连接GattServer端的设备。 68 692. 连接/取消连接 70 71 - 使用指导: 72 73 > 连接:连接到BLE外围设备。如果连接进程启动,返回信息为true;否则返回false。 74 > 75 > 订阅“BLEConnectionStateChange”事件(即"ble连接状态")可以返回连接状态。 76 > 77 > 取消连接:断开或停止与BLE外围设备的持续连接。如果断开连接过程开始,返回信息为true;否则返回false。 78 > 79 80 - 限制条件:只有蓝牙打开且连接成功后,"连接"的返回信息才会显示"成功",才能成功取消连接设备。 81 82 - 验证方法:在设备设置上查看连接状态。如果成功连接正在advertise on的服务端,服务端会有连接响应。 83 843. ble连接状态 85 86 - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。 87 88 > - 订阅客户端连接状态更改事件。 89 > - type为要侦听的连接状态更改事件的类型。 90 > - callback回调用于侦听连接状态更改事件。 91 92 - 限制条件:需要在相关类型事件发生改变前,开启监听。且需要蓝牙打开,gatt客户端实例存在。 93 94 - 验证方法:在事件变化后,查看是否有弹窗信息显示,或直接查看其BLE连接状态。 95 964. 关闭 97 98 - 使用指导:禁用BLE外围设备。 99 - 限制条件:创立了Gatt客户端实例后,此方法注销设备并清除已注册的callback和handle。 100 - 验证方法:客户端已经关闭,无法连接server端。 101 1025. 获取服务callback/promise 103 104 - 使用指导:点击后,开始发现服务。返回的信息为BLE外围设备的服务GattService列表。 105 - 限制条件:Gatt客户端实例存在,连接设备的code不为0,ServerUUid正确。 106 - 验证方法:查看返回信息与连接的服务是否相同。 107 1086. 读取特征值callback/promise 109 110 - 使用指导:点击后,读取BLE外围设备的特性。characteristic表示要读取的特征。 111 - 限制条件:Gatt客户端实例存在,连接设备的errcode为0,特征值UUid正确。 112 - 验证方法:查看返回信息与连接的特征值是否相同。 113 1147. 读取描述符值callback/promise 115 116 - 使用指导:点击后,读取BLE外围设备的描述符。descriptor表示要读取的描述符。 117 - 限制条件:Gatt客户端实例存在,连接设备的errcode为0,描述符UUid正确。 118 - 验证方法:查看返回信息与连接的描述符值是否相同。 119 1208. 写入特征值 121 122 - 使用指导:写入BLE外围设备的特性。characteristic表示要写入的特征。如果成功写入特征,返回true;否则返回false。 123 - 限制条件:Gatt客户端实例存在,有写入的特征值。 124 - 验证方法:用验证程序查看写入的特征值。 125 1269. 写入描述符值 127 128 - 使用指导:写入BLE外围设备的描述符。descriptor指示要写入的描述符。如果描述符写入成功,返回true;否则返回false。 129 - 限制条件:Gatt客户端实例存在,有写入的描述符值。 130 - 验证方法:用验证程序查看写入的描述符值。 131 13210. BLE特征值变化 133 134 - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。 135 136 >订阅特征值更改事件。 137 > 138 >type为要侦听的特征值更改事件的类型。 139 > 140 >callback回调用于侦听特征值更改事件。 141 142 - 限制条件:需要在相关类型事件发生改变前,开启监听。 143 144 - 验证方法:在事件变化后,查看是否有弹窗信息显示。 145 14611. 设定BLEMtu尺寸 147 148 - 使用指导:设置BLE外围设备的mtu大小。mtu最大传输单位。如果设置mtu成功,返回信息为true;否则返回false。 149 - 限制条件:蓝牙需要打开,Gatt客户端实例存在。 150 - 验证方法:查看显示结果。 151 15212. 设置通知特性更改 153 154 - 使用指导:启用或禁用值更改时的特征通知。enable指定是否启用特征通知。值为true时表示通知已启用,值为false时表示通知已禁用。如果特性通知被启用,返回true;否则返回false。 155 - 限制条件:蓝牙需要打开,Gatt客户端实例存在,且需要传入UUid值。 156 - 验证方法:查看特征值的变化。 157 15813. 获取设备名称_callback/promise 159 160 - 使用指导:获取BLE外围设备的名称。如果获得,返回名称的字符串表示形式;如果无法获取名称或名称不存在,则返回null。 161 - 限制条件:Gatt客户端实例存在,传入的Name值要正确。 162 - 验证方法:查看显示的结果。 163 16414. 获取Rssi值_callback/promise 165 166 - 使用指导:获取此BLE外围设备的RSSI值。return返回RSSI值。 167 - 限制条件:Gatt客户端实例存在,传入的Rssi值要正确。 168 - 验证方法:查看显示的结果。 169 170--- 171 172### Gatt服务器 173 174<img src="Gatt与GattServer跳转1.png" alt="Gatt与GattServer跳转1"> 175 176#### GattServerSetting界面 177 178点击"switch"图标<img src="switch.png" alt="switch" style="zoom: 50%;" />,同样可以在setting界面修改MAC地址,ServerUUID,characteristicUuid,descriptorUuid的值。并且可以设置广播配置。默认值已经设置好,默认"设置"和"connectable"为已勾选的true,其他为false,如果测试时需要,可以手动设置"interval","txPower","Response" 179 180 181 182#### GattServer中的主要接口 183 184| method名称 | API名称 | 所需参数 | 返回值 | 备注 | 185| :------------: | :--------------------: | :----------------------------------------------------------: | :--------: | :--: | 186| 创建Gatt服务器 | createGattServer | () | GattServer | | 187| 添加服务 | addService | (service: GattService) | boolean | | 188| 删除服务 | removeService | (serviceUuid: string) | boolean | | 189| 开始广播 | startAdvertising | (setting: AdvertiseSetting, advData: AdvertiseData, advResponse?: AdvertiseData) | void | | 190| 停止广播 | stopAdvertising | () | void | | 191| 关闭 | close | () | void | | 192| 连接状态 | on.connectStateChange | (type: "connectStateChange", callback: Callback<BLEConnectChangedState>) | void | | 193| 读取特征值 | on.characteristicRead | (type: "characteristicRead", callback: Callback<CharacteristicReadReq>) | void | | 194| 写入特征值 | on.characteristicWrite | (type: "characteristicWrite", callback: Callback<CharacteristicWriteReq>) | void | | 195| 读取描述符 | on.descriptorRead | (type: "descriptorRead", callback: Callback<DescriptorReadReq>) | void | | 196| 写入描述符 | on.descriptorWrite | (type: "descriptorWrite", callback: Callback<DescriptorWriteReq>) | void | | 197 198#### Gatt_Server测试功能 199 2001. 创建Gatt服务器 201 202 - 使用指导:创建JavaScript网关服务器实例。return返回JavaScript网关服务器实例code网关服务器。 203 - 限制条件:蓝牙状态要打开,且GattServer不存在实例。 204 - 验证方法:可以尝试用Client端去搜索本设备的GattServer端。 205 2062. 添加/删除服务 207 208 - 使用指导: 209 210 >添加服务: 211 > 212 >- 添加要承载的指定服务,添加的服务及其特性由本地设备提供。 213 > 214 >- service表示要添加的服务。 215 > 216 >- 如果添加了服务,返回 true;否则返回 false。 217 > 218 >删除服务: 219 > 220 >- 从该设备提供的GATT服务列表中删除指定的服务。 221 > 222 >- serviceUuid表示要删除的服务的UUID。 223 > 224 >- 如果服务被删除,返回 true;否则返回 false。 225 226 - 限制条件:Gatt服务端实例要存在,并且要传入UUid和value的值。 227 228 - 验证方法:使用验证程序查看服务是否添加/删除成功。 229 2303. 开始/停止广播 231 232 - 使用指导: 233 234 >开始广播: 235 > 236 >- 启动BLE广播。 237 >- setting指示BLE广播的设置。如果需要使用默认值,将此参数设置为null。 238 >- advData表示广播数据。advResponse表示与广播数据关联的扫描响应。 239 > 240 >停止广播:停止BLE广播。 241 242 - 限制条件:配置页面中勾选了"√",并传入了正确的配置信息。 243 244 - 验证方法:查看显示信息,使用client端设备去尝试搜索广播。 245 2464. 关闭 247 248 - 使用指导:关闭此{GattServer}对象并注销其回调。 249 - 限制条件:Server端存在,才可以关闭。 250 - 验证方法:Server端关闭,无法搜索到本设备的Server端。 251 2525. 连接状态 253 254 - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。 255 256 > 订阅服务器连接状态更改事件。 257 > 258 > type为要侦听的连接状态更改事件的类型。 259 > 260 > callback回调用于侦听连接状态更改事件。 261 262 - 限制条件:需要在相关类型事件发生改变前,开启监听。 263 264 - 验证方法:在事件变化后,查看是否有弹窗信息显示。 265 2666. 读取/写入特征值 267 268 - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。 269 270 >读取特征值: 271 > 272 >- 订阅特征读取事件。 273 >- type为要侦听的特征读取事件的类型。 274 >- callback回调用于侦听特征读取事件。 275 > 276 >写入特征值: 277 > 278 >- 订阅特征写入事件。 279 >- type为要侦听的特征写入事件的类型。 280 >- callback回调用于侦听特征写入事件。 281 282 - 限制条件:需要在相关类型事件发生改变前,开启监听。 283 284 - 验证方法:在事件变化后,查看是否有弹窗信息显示。 285 2867. 读取/写入描述符 287 288 - 使用指导:为回调函数,用来监听相关类型事件的变化,并弹窗显示信息。 289 290 >读取描述符值: 291 > 292 >- 订阅描述符写入事件。 293 >- type为要侦听的描述符写入事件的类型。 294 >- callback为回调用于侦听描述符写入事件。 295 > 296 >写入描述符值: 297 > 298 >- 订阅描述符读取事件。 299 >- type为要侦听的描述符读取事件的类型。 300 >- callback回调用于侦听描述符读取事件。 301 302 - 限制条件:需要在相关类型事件发生改变前,开启监听。 303 304 - 验证方法:在事件变化后,查看是否有弹窗信息显示。 305