ZHCACZ5 August   2023 CC2564C

 

  1.   1
  2.   摘要
  3.   商标
  4. 引言
  5. 运行蓝牙代码
  6. 演示应用程序
    1. 3.1 演示应用程序上的设备 1(服务器)设置
    2. 3.2 演示应用程序上的设备 2(客户端)设置
    3. 3.3 从设备 2 启动连接
    4. 3.4 确定支持的服务
    5. 3.5 客户端和服务器之间的数据传输
    6. 3.6 多个 SPPLE 连接指南
  7. 使用 LightBlue 应用在 iOS 设备上演示 SPP LE
    1. 4.1 LightBlue 概述
    2. 4.2 SPP LE 服务概述
      1. 4.2.1 特性
  8. LightBlue 作为客户端/SPPLEDemo 作为服务器
    1. 5.1 连接设备
    2. 5.2 启用通知
    3. 5.3 从 LightBlue 中发送数据/在 SPPLEDemo 中接收数据
    4. 5.4 从 SPPLEDemo 中发送数据/在 LightBlue 中接收数据
  9. LightBlue 作为服务器/SPPLEDemo 作为客户端
    1. 6.1 连接设备
    2. 6.2 从 LightBlue 中发送数据/在 SPPLEDemo 中接收数据
    3. 6.3 从 SPPLEDemo 中发送数据/在 LightBlue 中接收数据
  10. 应用程序命令
  11. 常规命令
    1. 8.1 帮助 (DisplayHelp)
    2. 8.2 获取本地地址
    3. 8.3 设置波特率
    4. 8.4 退出
  12. BR/EDR 命令
  13. 10GAPLE 命令
    1. 10.1  设置可发现性模式
    2. 10.2  设置可连接性模式
    3. 10.3  设置可配对性模式
    4. 10.4  更改配对参数
    5. 10.5  广播 LE
    6. 10.6  启动扫描
    7. 10.7  停止扫描
    8. 10.8  连接 LE
    9. 10.9  断开 LE
    10. 10.10 LE 配对
    11. 10.11 LE 通行密钥响应
    12. 10.12 LE 查询加密
    13. 10.13 设置通行密钥
    14. 10.14 发现 GAPS
    15. 10.15 获取本地名称
    16. 10.16 设置本地名称
    17. 10.17 获取远程名称
    18. 10.18 LE 用户确认响应
    19. 10.19 启用仅 SC
    20. 10.20 重新生成 P256 本地密钥
    21. 10.21 SC 生成 OOB 本地参数
    22. 10.22 设置本地外观
    23. 10.23 获取本地外观
  14. 11SPPLE 命令
    1. 11.1 发现 SPPLE
    2. 11.2 注册 SPPLE
    3. 11.3 LE 发送
    4. 11.4 配置 SPPLE
    5. 11.5 LE 读取
    6. 11.6 环回
    7. 11.7 显示原始模式数据
    8. 11.8 自动读取模式
  15. 12参考文献
  16. 13修订历史记录

连接 LE

说明

ConnectLE 命令负责连接到 LE 设备。如果成功,此命令将返回零;如果发生错误,则返回负值。此命令使用 ConnectLEDevice (BluetoothStackID, BD_ADDR, FALSE) 调用 ConnectLEDevice (unsigned in BluetoothStackID, BD_ADDR_t BD_ADDR, Boolean_t UseWhiteList) 函数。

参数

唯一需要的参数是远程设备的蓝牙地址。如果在扫描期间广播设备位于附近,则可以使用 StartScanning 命令轻松找到该地址。

命令调用示例

  • “ConnectLE 001bdc05b617”尝试向 BD_ADDR 为 001bdc05b617 的蓝牙设备发送连接请求。
  • “ConnectLE 000275e126FF”尝试向 BD_ADDR 为 000275e126FF 的蓝牙设备发送连接请求。

可能的返回值

  • (0) 成功设置可配对性模式
  • (-4) FUNCTION_ERROR
  • (-6) INVALID_PARAMETERS_ERROR
  • (-8) INVALID_STACK_ID_ERROR
  • (-116) BTPS_ERROR_RANDOM_ADDRESS_IN_USE
  • (-111) BTPS_ERROR_CREATE_CONNECTION_OUTSTANDING
  • (-66) BTPS_ERROR_INSUFFICIENT_RESOURCES
  • (-2) BTPS_ERROR_INVALID_BLUETOOTH_STACK_ID
  • (-1) BTPS_ERROR_INVALID_PARAMETER
  • (-56) BTPS_ERROR_GAP_NOT_INITIALIZED
  • (-104) BTPS_ERROR_LOCAL_CONTROLLER_DOES_NOT_SUPPORT_LE
  • (-57) BTPS_ERROR_DEVICE_HCI_ERROR
  • GAP_LE_ERROR_WHITE_LIST_IN_USE

API 调用

  • GAP_LE_Create_Connection(BluetoothStackID, 100, 100, Result?fpNoFilter:fpWhiteList, latPublic, Result?&BD_ADDR:NULL, latPublic, &ConnectionParameters,GAP_LE_Event_Callback, 0)
  • GAP_LE_Remove_Device_From_White_List(BluetoothStackID, 1, &WhiteListEntry, &WhiteListChanged)
  • GAP_LE_Add_Device_To_White_List(BluetoothStackID, 1, &WhiteListEntry, &WhiteListChanged)

注: 通常可以忽略这两个 API,除非在对 ConnectLEDevice 的调用中启用了白名单。

API 原型

  • int BTPSAPI GAP_LE_Create_Connection(unsigned int BluetoothStackID, unsigned int ScanInterval, unsigned int ScanWindow, GAP_LE_Filter_Policy_t InitatorFilterPolicy,GAP_LE_Address_Type_t RemoteAddressType, BD_ADDR_t *RemoteDevice, GAP_LE_Address_Type_t LocalAddressType, GAP_LE_Connection_Parameters_t*ConnectionParameters, GAP_LE_Event_Callback_t GAP_LE_Event_Callback, unsigned long CallbackParameter)
  • int BTPSAPI GAP_LE_Remove_Device_From_White_List( unsigned int BluetoothStackID, unsigned int DeviceCount, GAP_LE_White_List_Entry_t *WhiteListEntries, unsigned int*RemovedDeviceCount)
  • int BTPSAPI GAP_LE_Add_Device_To_White_List(unsigned int BluetoothStackID, unsigned int DeviceCount, GAP_LE_White_List_Entry_t *WhiteListEntries, unsigned int*AddedDeviceCount)

API 说明

提供的 GAP_LE_Create_Connection 函数使本地主机能够使用低功耗蓝牙无线电创建与远程设备的连接。连接过程本质上是异步的,当连接完成时,将通过 GAP LE 事件回调函数(在目前讨论的这个函数中指定)通知调用方。如果成功,此函数返回零;如果出现错误情况,则返回负的错误代码。提供的 GAP_LE_Remove_Device_From_White_List 函数使本地主机能够从本地设备维护的白名单中删除一个(或多个)设备。此函数尝试(从指定的列表中)删除尽可能多的设备,并返回已删除的设备数量。GAP_LE_Read_White_List_Size 函数可用于确定本地设备在白名单中(同时)支持多少设备。