首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【0x0047】HCI_Write_Page_Scan_Type详解

【0x0047】HCI_Write_Page_Scan_Type详解

作者头像
byte轻骑兵
发布2026-01-20 20:37:02
发布2026-01-20 20:37:02
1400
举报

HCI_Write_Page_Scan_Type 是蓝牙技术中的一个重要命令。它主要用于设置蓝牙设备的寻呼扫描(Page Scan)类型。寻呼扫描是蓝牙连接过程中的一个关键环节,用于响应其他设备的寻呼请求,从而建立连接。通过这个命令,可以控制设备如何进行寻呼扫描,以适应不同的连接场景和需求。

一、命令概述

HCI_Write_Page_Scan_Type 命令处于蓝牙主机控制器接口(HCI)层。HCI 层是蓝牙协议栈中连接主机(如手机、电脑等设备的主处理器部分)和控制器(主要负责蓝牙无线通信部分)的接口层。

HCI(HOST CONTROLLER INTERFACE)即主机控制层接口,是沟通host和controller的接口。每个蓝牙设备都由host和controller组成,host为蓝牙协议栈,controller为厂商封装好的固件。host通过hci下发command给controller,controller返回固件自身信息或从远端controller接收到的信息通过event上报给host。

HCI_Write_Page_Scan_Type 命令允许主机对控制器的寻呼扫描行为进行配置,从而影响蓝牙设备的连接性能和功耗等特性。具体来说,HCI_Write_Page_Scan_Type命令可能允许设备在两种扫描类型之间进行选择:交织扫描(Interlaced Scan)和标准扫描(Non-Interlaced Scan)。这两种扫描类型的主要区别在于它们扫描蓝牙频率信道的方式。逐行扫描会按顺序扫描每个信道,而隔行扫描则可能会跳过某些信道以加快扫描速度。选择哪种扫描类型取决于设备的具体需求和性能考虑。

二、命令格式和参数说明

HCI 命令一般由操作码(Opcode)和参数部分构成。操作码用于唯一标识命令,它又分为操作码组字段(OGF - Opcode Group Field)和操作码命令字段(OCF - Opcode Command Field)。

2.1. HCI_Write_Page_Scan_Type命令格式

HCI_Write_Page_Scan_Type命令通常遵循蓝牙核心规范中定义的HCI(Host Controller Interface)命令格式。

具体来说,该命令的格式可能包括以下几个部分:

  • HCI_type:1个字节,用于标识命令的类型。对于HCI命令包,该字段的值通常为0x01。
  • OpCode:2个字节,用于唯一标识命令的操作码(Opcode)。HCI_Write_Page_Scan_Type命令的操作码由操作码组字段(Opcode Group Field, OGF)和操作码命令字段(Opcode Command Field, OCF)组成。其中,OGF占用高6位字节,OCF占用低10位字节。
  • Parameter Length:1个字节,表示后续参数的长度。
  • Parameters:根据命令的不同,后续可能跟随一个或多个参数。对于HCI_Write_Page_Scan_Type命令,参数通常包括页面扫描类型(Page Scan Type)。

可能的字节顺序和数据类型细节:在命令格式中,数据的字节顺序(大端序或小端序)是需要注意的。例如,如果参数是一个多字节的整数,那么其存储顺序可能是按照大端序(高位字节在前)或者小端序(低位字节在前)来排列的。并且参数的数据类型也有明确规定,这保证了命令在不同设备之间的一致性和可理解性。

2.2. Page_Scan_Type参数说明

Page_Scan_Type参数是蓝牙技术中用于设置本地蓝牙设备page扫描类型的重要参数。通过正确配置该参数,可以提高蓝牙设备的连接性能和可靠性。

0x00 (默认的设置):标准扫描(Mandatory: Standard Scan)

  • 标准扫描特点:在这种模式下,设备会以一种标准的、相对固定的方式持续进行寻呼扫描,确保能够可靠地响应其他设备的寻呼请求。这就像一个始终坚守岗位的卫士,严格按照规定的流程和频率进行扫描工作。
  • 应用场景示例:对于一些需要随时保持可连接状态的关键设备,如蓝牙耳机,当它处于等待连接状态时,通常会采用这种默认的强制标准扫描模式。这样可以保证当用户在手机等设备上发起连接请求时,蓝牙耳机能够及时响应,快速建立连接,为用户提供流畅的使用体验。

0x01:交织扫描(Optional: Interlaced Scan)

  • 交织扫描特点:这种扫描方式是可选的,设备可以根据自身的状态(如电量、当前连接情况等)或者用户的设置来灵活决定是否进行扫描以及扫描的频率等。交织扫描涉及到一种更为复杂的扫描模式,例如,扫描过程可能会与其他内部操作或事件交替进行,以在满足一定连接需求的同时,更好地平衡设备的资源利用和功耗。
  • 应用场景示例:在一些低功耗的蓝牙设备,如蓝牙传感器中,当设备处于低功耗模式或者对连接的及时性要求不高时,可以采用这种扫描方式。比如,一个蓝牙环境光传感器,它主要是定期将采集到的数据发送给接收设备,在两次数据发送的间隔时间内,如果没有紧急的连接请求需要响应,就可以通过可选交织扫描来降低功耗。这种扫描方式可以让设备在不影响主要功能的前提下,根据实际情况灵活调整扫描行为,节省电量。

其他取值:除了上述 0x00 和 0x01 这两个取值外,其他所有的值都被保留用于未来的扩展或新功能的添加。

2.3. 示例

以下是一个可能的HCI_Write_Page_Scan_Type命令的示例(注意:这只是一个示例,实际的命令格式和参数可能因设备和协议栈的不同而有所差异):

代码语言:javascript
复制
HCI_type: 0x01  // HCI命令包
OpCode: 0xXXXX  // HCI_Write_Page_Scan_Type命令的操作码,其中OGF和OCF需要根据具体实现来确定
Parameter Length: 0x01  // 参数长度为1个字节
Parameters: 0xYY  // 页面扫描类型参数,其中YY为具体的页面扫描类型值

在上面的示例中,0xXXXX表示HCI_Write_Page_Scan_Type命令的操作码,需要根据具体的蓝牙设备和蓝牙协议栈实现来确定。0xYY表示page扫描类型参数的值,也需要根据具体的设备和实现来确定。

三、响应事件及参数说明

当HCI_Write_Page_Scan_Type命令被发送后,蓝牙控制器会返回一个响应事件HCI_Command_Complete来确认命令的执行结果。

  • 通用 HCI 事件格式基础:HCI 命令完成后的响应事件通常遵循特定的格式,主要包括事件头(Event Header)和事件参数(Event Parameters)部分。事件头用于标识事件的类型等基本信息,如事件码(Event Code),通过这个事件码可以确定这是一个与命令完成相关的事件。事件参数部分则用于传递关于命令执行结果的详细信息。
  • 字节顺序和数据类型遵循原则:同命令格式一样,响应事件中的数据字节顺序(大端序或小端序)以及数据类型都要遵循蓝牙协议的规定。这确保了接收方能够正确地解析事件内容,不管是在主机还是在蓝牙控制器一侧。例如,事件参数中的整数类型数据(如返回状态码)存储方式要符合规定的字节顺序,以保证正确解读。

3.1. HCI_Command_Complete事件

HCI_Command_Complete事件是蓝牙HCI(Host Controller Interface)协议中定义的一种事件类型,用于确认HCI命令的执行结果。

HCI_Command_Complete事件包含以下参数:

  • Event Code:标识事件的类型,对于HCI_Command_Complete事件,其值通常为0x0E。表示之前发送的 “HCI_Write_Page_Scan_Type” 命令已经执行完成。主机通过识别这个事件码来区分不同类型的事件,从而确定需要对这个事件进行特定的处理,即处理与寻呼扫描类型设置命令完成相关的后续操作。
  • Parameter Total Length:表示整个事件参数部分的长度,以字节为单位。它帮助接收方(如主机)确定后续要读取多少字节的数据来完整地获取命令执行结果的相关信息。例如,如果参数总长度为 N 字节,那么接收方就知道要从事件参数部分读取 N 字节的数据进行解析。
  • Number of HCI Command Packets:在大多数情况下,此字段为1,表示这是一个单独的命令完成事件。但在某些情况下,如果控制器支持同时处理多个命令,此字段可能表示多个命令的完成。
  • Opcode:表示引发此事件的HCI命令的操作码(Opcode),对于HCI_Write_Page_Scan_Type命令的响应,其Opcode应与发送的HCI_Write_Page_Scan_Type命令的Opcode相同。
  • Status:表示命令的执行状态,其值可能为0x00(表示成功)或其他错误码(表示失败)。

3.2. Status

Status是一个关键的参数,用于告知命令执行的结果。

  • 返回 0x00:表示 “HCI_Write_Page_Scan_Type” 命令成功执行,即寻呼扫描类型已经按照主机发送的要求成功设置。主机在收到这个返回状态后,可以认为设备现在的寻呼扫描类型已经更新,可以继续进行其他相关的蓝牙操作,如开始尝试连接其他设备或者等待其他设备的连接请求。
  • 返回 0x01 - 0xFF 范围内的错误码:表示命令执行失败。主机需要根据这个错误码参考蓝牙协议中的控制器错误码列表([Vol 1] Part F)来确定具体的错误原因。蓝牙Controller错误代码全面概览_蓝牙错误代码-CSDN博客
  • 例如,错误码可能表示参数设置错误、蓝牙控制器硬件故障、当前设备状态不允许执行该命令等情况。根据不同的错误原因,主机可能需要采取重新发送命令、调整参数或者进行硬件故障排查等相应的措施。

四、命令执行流程

HCI_Write_Page_Scan_Type命令的执行流程主要涉及蓝牙主机(Host)与蓝牙控制器(Controller)之间的交互。以下是该命令执行流程的梳理。

4.1. 命令发起阶段(主机端)

  • 主机准备工作:根据设备连接需求和当前状态,确定要设置的寻呼扫描类型参数。根据蓝牙协议规定的命令格式,构建HCI命令包,包括操作码和寻呼扫描类型参数。
  • 命令发送:通过HCI接口(如USB、UART等),将构建好的HCI命令包发送给蓝牙控制器。

4.2. 命令接收与解析阶段(蓝牙控制器端)

  • 接收命令包:蓝牙控制器通过HCI接口接收来自主机的HCI命令包。
  • 解析命令包:提取命令包中的操作码,确定这是HCI_Write_Page_Scan_Type命令。提取寻呼扫描类型参数,并检查命令包的格式和参数的有效性。

4.3. 执行寻呼扫描类型设置阶段(蓝牙控制器端)

  • 配置底层硬件
    • 根据提取的寻呼扫描类型参数,配置蓝牙控制器的底层硬件(如射频模块和控制逻辑)。
    • 对于不同的扫描类型(如标准扫描和交织扫描),调整射频模块的扫描行为。

4.4. 完成操作与事件反馈阶段(蓝牙控制器端)

  • 完成命令操作:当寻呼扫描类型参数设置完成后,生成HCI_Command_Complete事件。
  • 构建并发送事件包:将HCI_Command_Complete事件打包,包括事件码、参数总长度、命令操作码和返回状态。通过HCI接口将事件包发送回主机。

4.5. 主机接收事件并处理阶段(主机端)

  • 接收事件包:主机通过HCI接口接收来自蓝牙控制器的HCI_Command_Complete事件包。
  • 解析事件包
    • 提取事件码,确认这是HCI_Command_Complete事件。
    • 读取命令操作码,确定是HCI_Write_Page_Scan_Type命令的反馈。
    • 查看返回状态,判断命令是否成功执行。
  • 后续操作
    • 如果命令成功执行(返回状态为0x00),主机可以认为设备的寻呼扫描类型已经按照预期进行了设置。
    • 如果命令执行失败(返回状态为0x01 - 0xFF范围内的错误码),主机需要根据错误码确定具体的错误原因,并采取相应的措施,如重新发送命令、调整参数或进行硬件故障排查等。

4.6. 示例代码

实现HCI_Write_Page_Scan_Type命令的执行流程,需要模拟主机和蓝牙控制器之间的交互。由于实际的蓝牙硬件和驱动程序的复杂性,这里提供一个简化的示例,主要关注命令的构建、发送、接收和解析过程。请注意,这个示例不会与真实的蓝牙硬件进行交互,而是模拟这些步骤。

代码语言:javascript
复制
#include <stdio.h>
#include <stdint.h>
#include <stdbool.h>
#include <string.h>

// 假设的HCI接口(在实际中,这将是与蓝牙硬件通信的接口)
#define HCI_INTERFACE_SEND(data, length) send_to_controller(data, length)
#define HCI_INTERFACE_RECEIVE(buffer, maxLength) receive_from_controller(buffer, maxLength)

// 假设的HCI命令和事件结构
typedef struct {
    uint8_t ogf;    // 操作码组字段
    uint16_t ocf;   // 操作码命令字段
    uint8_t paramLen; // 参数长度
    // 参数(这里是简化的,实际中可能更复杂)
    uint8_t pageScanType;
} HCI_Command_Packet;

typedef struct {
    uint8_t evtCode; // 事件码
    uint8_t plen;    // 参数长度
    uint16_t opcode; // 命令操作码
    uint8_t status;  // 返回状态
} HCI_Event_Packet;

// 发送命令到蓝牙控制器(模拟函数)
bool send_to_controller(uint8_t* data, uint8_t length) {
    // 在这里,我们简单地打印发送的数据(在实际中,这将通过某种接口发送到蓝牙控制器)
    printf("Sending to controller: ");
    for (int i = 0; i < length; i++) {
        printf("%02X ", data[i]);
    }
    printf("\n");
    return true; // 假设发送成功
}

// 从蓝牙控制器接收事件(模拟函数)
bool receive_from_controller(uint8_t* buffer, uint8_t maxLength) {
    // 在这里,我们模拟接收一个HCI_Command_Complete事件
    HCI_Event_Packet evt = {
        .evtCode = 0x0E, // HCI_Command_Complete事件码
        .plen = 4,       // 参数长度(包括opcode和status)
        .opcode = 0x001A, // 假设的HCI_Write_Page_Scan_Type操作码(OGF=0x00, OCF=0x1A)
        .status = 0x00   // 假设命令成功执行
    };

    // 将事件复制到缓冲区(注意:这里假设缓冲区足够大以容纳事件)
    memcpy(buffer, &evt, sizeof(HCI_Event_Packet));
    return true; // 假设接收成功
}

// 主机执行HCI_Write_Page_Scan_Type命令的函数
bool execute_hci_write_page_scan_type(uint8_t pageScanType) {
    // 构建HCI命令包
    HCI_Command_Packet cmd = {
        .ogf = 0x03, // HCI_OGF_HOST_CTL(主机控制功能组)对于写命令通常不是03,这里仅为示例
        .ocf = 0x1A, // HCI_OCF_WRITE_PAGE_SCAN_TYPE
        .paramLen = 1,
        .pageScanType = pageScanType
    };

    // 发送命令到蓝牙控制器
    if (!HCI_INTERFACE_SEND((uint8_t*)&cmd, sizeof(cmd))) {
        printf("Failed to send HCI command.\n");
        return false;
    }

    // 准备接收来自蓝牙控制器的响应
    uint8_t responseBuffer[256]; // 假设的缓冲区大小
    if (!HCI_INTERFACE_RECEIVE(responseBuffer, sizeof(responseBuffer))) {
        printf("Failed to receive HCI event.\n");
        return false;
    }

    // 解析接收到的HCI事件包
    HCI_Event_Packet* evt = (HCI_Event_Packet*)responseBuffer;
    if (evt->evtCode == 0x0E && evt->opcode == 0x001A) {
        if (evt->status == 0x00) {
            printf("HCI_Write_Page_Scan_Type command executed successfully.\n");
            return true;
        } else {
            printf("HCI_Write_Page_Scan_Type command failed with status %02X.\n", evt->status);
            return false;
        }
    } else {
        printf("Received unexpected HCI event code %02X or opcode %04X.\n", evt->evtCode, evt->opcode);
        return false;
    }
}

int main() {
    // 设置寻呼扫描类型为标准扫描(例如:0x00)
    uint8_t pageScanType = 0x00;
    if (execute_hci_write_page_scan_type(pageScanType)) {
        printf("Page scan type set successfully.\n");
    } else {
        printf("Failed to set page scan type.\n");
    }
    return 0;
}

请注意,这个示例代码有几个重要的假设和简化:

  • HCI_INTERFACE_SENDHCI_INTERFACE_RECEIVE 函数是模拟的,不会与实际的蓝牙硬件通信。在实际应用中,这些函数将调用与蓝牙硬件通信的底层驱动程序。
  • 示例中的OGF值(0x03)对于写命令通常不是正确的值。在实际应用中,写命令通常使用OGF 0x02(链路控制功能组)或OGF 0x03(链路策略与主机控制功能组)中的特定OCF值,但具体取决于蓝牙核心规范的版本和命令的用途。在这个示例中,我们仅使用了假设的值。
  • 示例中的事件接收函数 receive_from_controller 简单地返回了一个模拟的HCI_Command_Complete事件。在实际应用中,这个函数将从蓝牙控制器接收数据,并可能需要处理多个不同的事件类型。
  • 示例中的缓冲区大小(256字节)是假设的,实际应用中可能需要根据具体的需求进行调整。
  • 示例中的错误处理非常基础,仅打印了错误信息。在实际应用中,可能需要更复杂的错误处理逻辑。

五、使用场景

HCI_Write_Page_Scan_Type命令在多种蓝牙设备相关场景中发挥着重要作用,可根据不同情况灵活设置寻呼扫描类型,以满足设备连接、功耗控制、系统协同以及角色转换等各方面的需求。

5.1. 设备连接场景

  • 主动连接场景
    • 当主动发起连接的蓝牙设备(如手机)尝试与另一蓝牙设备(如蓝牙耳机)建立连接时,被连接的目标设备(蓝牙耳机)需借助寻呼扫描来响应连接请求。
    • 通过 “HCI_Write_Page_Scan_Type” 命令,蓝牙耳机可依据实际情况设置合适的寻呼扫描类型。比如,在用户打开手机蓝牙并选择连接蓝牙耳机的常见场景下,蓝牙耳机常采用标准扫描模式(如对应参数 0x00 的标准扫描),如此便能快速捕捉手机发出的寻呼请求,有效缩短连接等待时间,保障连接过程的及时性与流畅性。
  • 被动连接场景
    • 对于那些多数时间处于等待连接状态的蓝牙设备,如蓝牙打印机,其可根据自身工作状态及功耗要求,灵活运用 “HCI_Write_Page_Scan_Type” 命令来设置寻呼扫描类型。
    • 具体而言,当打印机长时间未接到打印任务时,为节省电量,可将扫描类型设置为可选扫描(如对应参数 0x01 的交织扫描),通过降低扫描频率减少能耗。而一旦接收到有打印任务即将到来的信号(如通过网络收到打印请求通知),则及时将扫描类型切换为强制扫描,确保能迅速与发送打印任务的设备建立连接,不影响正常工作流程。

5.2. 低功耗场景

  • 在各类由电池供电的蓝牙设备(如蓝牙手环、蓝牙传感器等)中,功耗管理至关重要。
  • 借助 “HCI_Write_Page_San_Type” 命令将扫描类型设置为可选扫描类型(如参数 0x01 对应的交织扫描)后,还可进一步合理调整扫描频率和触发条件。
  • 例如,蓝牙传感器可设置为每隔一段时间进行一次短暂的寻呼扫描,或者仅在检测到特定的外部事件(如环境参数变化超过阈值)时才开展寻呼扫描。通过这样的设置方式,在确保设备基本连接功能不受影响的前提下,能够最大程度地降低功耗,从而有效延长电池的续航时间,提升设备的使用便利性与续航能力。

5.3. 多设备协同场景

  • 在多个蓝牙设备协同工作的环境下,以智能家居系统为例,不同设备因其功能与角色差异,其连接需求和优先级各不相同。
  • 通过 “HCI_Write_Page_Scan_Type” 命令,能够针对每个设备的具体情况设置适宜的寻呼扫描类型,进而优化整个系统的连接性能。
  • 比如,智能门锁作为保障家居安全的关键设备,通常会采用强制扫描类型(如对应参数 0x00 的标准扫描),以保证能及时响应主人的手机连接请求,实现快速开锁操作;而一些非关键的蓝牙环境传感器则可选用可选扫描类型(如对应参数 0x01 的交织扫描),在满足基本数据传输需求的同时,有助于降低系统整体的功耗,实现系统资源的合理分配与高效利用。

5.4. 设备角色转换场景

  • 部分蓝牙设备会依据不同的工作模式扮演不同的角色,例如既能作为数据发送端,又能作为数据接收端的蓝牙音频设备。
  • 当这类设备的角色发生转换时,其寻呼扫描类型往往也需要相应地做出改变。
  • 以蓝牙音频设备为例,在播放本地音乐时它作为数据发送端,此时无需频繁响应其他设备的寻呼请求。然而,当用户希望通过手机连接该音频设备来播放手机中的音乐时,设备角色转变为数据接收端,这时便可利用 “HCI_Write_Page_Scan_Type” 命令对寻呼扫描类型进行调整,使其契合新的角色需求,从而能够快速建立连接并顺利接收数据,保障设备在不同角色下均能高效、稳定地运行。

六、注意事项

HCI_Write_Page_Scan_Type命令的注意事项梳理如下。

6.1. 命令格式与参数

  • 命令格式:HCI_Write_Page_Scan_Type命令由主机发送给控制器,用于设置蓝牙设备的寻呼扫描类型。
  • 参数说明
    • 扫描类型(Scan Type):决定蓝牙设备在寻呼扫描中的行为模式。
    • 常见扫描类型及参数值:
      • 标准扫描(Standard Scan):参数值为0x00。
      • 交织扫描(Interlaced Scan):参数值为0x01。

6.2. 使用注意事项

  • 兼容性:确保蓝牙设备和蓝牙协议栈支持该命令。不同设备和协议栈可能有不同的实现方式和参数范围。
  • 参数选择
    • 根据实际需求选择合适的扫描类型。
    • 快速响应连接请求时选择标准扫描。
    • 降低功耗时选择交织扫描。
    • 避免设置无效或错误的参数值。
  • 命令执行时机:在设备初始化或连接建立之前设置扫描类型。避免在设备处理其他重要任务时执行该命令。
  • 错误处理:关注命令的返回结果和状态码。命令执行失败或出现错误状态码时,及时进行错误处理并恢复。
  • 功耗考虑:权衡功耗和连接性能之间的关系。根据设备实际使用场景和功耗要求选择扫描类型和参数值。
  • 安全性:设置不当的扫描类型可能影响设备安全性。考虑安全性因素,采取相应安全措施。

6.3. 其他注意事项

  • 了解设备特性:充分了解蓝牙设备的特性和限制条件。某些设备可能不支持特定扫描类型或参数值。
  • 遵循规范标准:遵循蓝牙核心规范和相关标准中的规定和要求。确保命令的正确性和兼容性。
  • 测试和验证:对HCI_Write_Page_Scan_Type命令进行测试和验证。确保命令的正确性和可靠性,发现可能存在的问题和漏洞。
  • 射频资源占用:不同的扫描类型设置会影响射频资源占用。合理安排扫描类型的设置,平衡连接需求和其他功能的实现。
  • 连接性能和稳定性
    • 扫描类型选择影响连接性能和稳定性。
    • 根据应用场景和设备需求选择扫描类型。
    • 考虑环境因素的影响,如干扰、距离等,调整扫描类型以优化连接性能。

使用HCI_Write_Page_Scan_Type命令时,需要综合考虑命令格式与参数、兼容性、参数选择、命令执行时机、错误处理、功耗考虑、安全性、设备特性、规范标准、测试和验证、射频资源占用以及连接性能和稳定性等因素。遵循这些注意事项可以确保命令的正确性和有效性,优化蓝牙设备的连接性能和功耗表现。同时,也有助于提高蓝牙设备的安全性和稳定性,满足实际应用场景的需求。

综上所述,HCI_Write_Page_Scan_Type命令是蓝牙HCI(主机控制接口)协议中的一个重要命令,用于设置蓝牙设备的page扫描类型。该命令决定了设备在可被其他设备连接时的扫描方式,对蓝牙设备的连接性、扫描效率和性能优化具有重要作用。通过该命令,用户可以灵活配置蓝牙设备的扫描行为,以满足不同的应用需求。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、命令概述
  • 二、命令格式和参数说明
    • 2.1. HCI_Write_Page_Scan_Type命令格式
    • 2.2. Page_Scan_Type参数说明
    • 2.3. 示例
  • 三、响应事件及参数说明
    • 3.1. HCI_Command_Complete事件
    • 3.2. Status
  • 四、命令执行流程
    • 4.1. 命令发起阶段(主机端)
    • 4.2. 命令接收与解析阶段(蓝牙控制器端)
    • 4.3. 执行寻呼扫描类型设置阶段(蓝牙控制器端)
    • 4.4. 完成操作与事件反馈阶段(蓝牙控制器端)
    • 4.5. 主机接收事件并处理阶段(主机端)
    • 4.6. 示例代码
  • 五、使用场景
    • 5.1. 设备连接场景
    • 5.2. 低功耗场景
    • 5.3. 多设备协同场景
    • 5.4. 设备角色转换场景
  • 六、注意事项
    • 6.1. 命令格式与参数
    • 6.2. 使用注意事项
    • 6.3. 其他注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档