ZHCACY9 August   2023 CC2564C

 

  1.   1
  2.   摘要
  3.   商标
  4. 1演示概述
  5. 2运行蓝牙代码
  6. 3演示应用程序
    1. 3.1 演示应用中的设备 1(主机/HID 主机)设置
    2. 3.2 演示应用上的设备 2(客户端/HID 设备)设置
    3. 3.3 从 HID 主机发起连接
    4. 3.4 从 HID 设备发起连接
    5. 3.5 主机与设备之间的通信
  7. 4应用程序命令
  8. 5Gap 命令
    1. 5.1  帮助 (DisplayHelp)
    2. 5.2  查询
    3. 5.3  显示查询列表
    4. 5.4  配对
    5. 5.5  结束配对
    6. 5.6  PIN 码响应
    7. 5.7  通行密钥响应
    8. 5.8  用户确认响应
    9. 5.9  设置可发现性模式
    10. 5.10 设置可连接性模式
    11. 5.11 设置可配对性模式
    12. 5.12 更改简易配对参数
    13. 5.13 获取本地地址
    14. 5.14 设置本地名称
    15. 5.15 获取本地名称
    16. 5.16 设置设备类别
    17. 5.17 获取设备类别
    18. 5.18 获取远程名称
  9. 6人机接口演示配置文件
    1. 6.1 主机
      1. 6.1.1  连接远程 HID 设备
      2. 6.1.2  关闭连接
      3. 6.1.3  控制请求
      4. 6.1.4  获取报告请求
      5. 6.1.5  设置报告请求
      6. 6.1.6  获取协议请求
      7. 6.1.7  设置协议请求
      8. 6.1.8  获取空闲请求
      9. 6.1.9  设置空闲请求
      10. 6.1.10 数据写入
    2. 6.2 客户端
      1. 6.2.1 获取报告响应
      2. 6.2.2 设置报告响应
      3. 6.2.3 获取协议响应
      4. 6.2.4 设置协议响应
      5. 6.2.5 获取空闲响应
      6. 6.2.6 设置空闲响应
  10. 7参考文献
  11. 8修订历史记录

配对

说明

Pair 命令负责启动与远程蓝牙设备的绑定。此函数在成功执行时返回零,而在出现任何错误时返回负值。在尝试配对之前,必须存在蓝牙协议栈 ID,并且该设备不能事先连接到任何设备(包括该设备尝试配对的设备)。请注意,要连接到远程设备,必须在调用 Pair 之前使用 Inquiry 命令。通用和专用绑定均受支持。

参数

Pair 命令需要一个或两个具有特定值的参数才能成功运行。第一个参数是远程蓝牙设备的查询索引。此参数始终是必需的。该值可以在查询后找到,或者在使用命令 DisplayInquiryList 时显示。如果所需的远程设备未出现在列表中,则无法进行配对。第二个参数是用于配对过程的绑定类型。这是一个可选参数,仅在连接需要通用绑定时才需要此参数。必须将值指定为 0(表示专用绑定)或 1(表示通用绑定)。如果仅提供一个参数,则绑定类型为专用绑定。

命令调用示例

  • “Pair 5 0”尝试使用专用绑定与第五个查询索引处的远程设备进行配对。
  • “Pair 5”操作与上述示例完全相同。如果没有参数,则绑定类型为专用。
  • “Pair 8 1”尝试使用通用绑定与第八个查询索引处的远程设备进行配对。

可能的返回值

  • (0) 配对成功
  • (-2) BTPS_ERROR_INVALID_BLUETOOTH_STACK_ID
  • (-1) BTPS_ERROR_INVALID_PARAMETER
  • (-59) BTPS_ERROR_ADDING_CALLBACK_INFORMATION
  • (-8) BTPS_ERROR_DEVICE_HCI_ERROR

API 调用

GAP_Initiate_Bonding(BluetoothStackID, InquiryResultList[(TempParam->Params[0].intParam – 1)], BondingType, GAP_Event_Callback, (unsigned long)0)

API 原型

int BTPSAPI GAP_Initiate_Bonding(unsigned int BluetoothStackID, BD_ADDR_t BD_ADDR, GAP_Bonding_Type_t GAP_Bonding_Type, GAP_Event_Callback_tGAP_Event_Callback, unsigned long CallbackParameter)

API 说明

提供此函数是为了能够启动绑定过程。此函数可以根据请求的绑定类型执行通用绑定和专用绑定。该函数将以下内容作为输入:本地蓝牙设备的蓝牙协议栈 ID(用于执行绑定)、要绑定的设备的远程蓝牙地址、要执行的绑定类型,以及 GAP 事件回调信息(用于处理此函数成功时将产生的身份验证事件)。如果该函数成功,则会通过注册的 GAP 事件回调返回所有进一步的信息。请注意,如果此函数成功返回结果,并不意味着远程设备已成功与本地设备绑定,仅意味着远程设备绑定过程已启动。仅当不存在与指定远程蓝牙设备的物理 DisplayInquiryList 配对连接时,此函数才会成功。此函数将连接到蓝牙设备并开始绑定过程。

如果指定了通用绑定并维持了链路,则在调用 GAP_End_Bonding 函数之前不会终止连接。这允许执行在同一物理链路上需要的任何更高级别的初始化。

如果执行了专用绑定,则在身份验证过程完成后,链路会自动终止。由于此过程的异步性质,指定的 GAP 事件回调将向调用方通知身份验证过程中出现的任何事件和/或数据。可随时调用 GAP_Cancel_Bonding 函数以结束绑定过程并终止链路(无论执行的是哪种绑定方法)。使用通用绑定时,如果通过此函数启动的蓝牙链路建立了 L2CAP 连接,则在发出 L2CAPDisconnect 请求(或响应)时,蓝牙协议栈可能会也可能不会终止物理链路。如果发生这种情况,则调用 GAP_End_Bonding 函数不起作用(在这种情况下,GAP_End_Bonding 函数会返回一个错误代码)。