【0x001C】HCI_Write_Page_Scan_Activity详解

目录

一、命令概述

二、命令格式和参数说明

2.1. HCI_Write_Page_Scan_Activity命令格式

2.2. Page_Scan_Interval

2.3. Page_Scan_Window

三、响应事件及参数说明

3.1. HCI_Command_Complete事件

3.2. Status

3.3. 示例

四、命令执行流程

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

4.2. 命令传输阶段

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

4.4. 执行寻呼扫描活动设置阶段(蓝牙控制器端)

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

4.6. 主机接收反馈阶段

4.7. 示例代码

五、使用场景

5.1. 设备连接场景

5.2. 低功耗场景

5.3. 多设备协同场景

六、注意事项

6.1. 命令格式与参数

6.2. 命令执行与响应

6.3. 设备兼容性与互操作性

6.4. 功耗与性能权衡

6.5. 安全与隐私保护


HCI_Write_Page_Scan_Activity 是蓝牙主机控制器接口(HCI)中的一个命令。它主要用于控制蓝牙设备的寻呼扫描(Page Scan)活动。寻呼扫描是蓝牙设备在被其他设备寻呼(建立连接请求)时的一种监听机制,通过这个命令可以设置扫描的开启、关闭以及扫描的参数等,从而使设备能够响应其他设备的连接请求。

一、命令概述

HCI_Write_Page_Scan_Activity命令用于写入Page_Scan_Interval(寻呼扫描间隔)和Page_Scan_Window(寻呼扫描窗口)这两个配置参数的值。这两个参数共同决定了蓝牙设备在进行寻呼扫描时的行为。

  • 参数关系:Page_Scan_Window必须小于或等于Page_Scan_Interval。这是因为寻呼扫描窗口是在寻呼扫描间隔所设定的时间范围内实际进行扫描的时间部分。
  • 寻呼扫描的启用:Page Scan 仅在 Page_Scan 启用时执行这表示,即使设置了寻呼扫描间隔和窗口,如果寻呼扫描功能(Page_Scan)没有被启用,设备也不会执行寻呼扫描。寻呼扫描的启用通常通过另一个命令(如HCI_Write_Scan_Enable)来控制。【0x001A】HCI_Write_Scan_Enable详解-CSDN博客
  • 参数影响:改变 Page_Scan_Interval 可能会影响本地 Page Scan Repetition Mode,寻呼扫描间隔的改变可能会影响设备的寻呼扫描重复模式。寻呼扫描重复模式决定了设备在多长时间内重复进行寻呼扫描,以及每次扫描之间的间隔。

例如,在蓝牙设备实际应用场景中,假设一个蓝牙耳机,它平时处于待机状态,当用户想要将其与手机连接时,手机会向蓝牙耳机发送连接请求(寻呼)。蓝牙耳机的主机需要先确保 “Page_Scan” 功能是开启的,然后之前通过 “HCI_Write_Page_Scan_Activity” 命令设置好的 “Page_Scan_Interval” 和 “Page_Scan_Window” 参数才能起作用,让蓝牙耳机在合适的时间范围内开启射频接收来监听手机的寻呼信号,从而建立连接。并且,如果调整了 “Page_Scan_Interval”,蓝牙耳机的寻呼扫描重复模式可能会随之改变,这可能会影响它对其他设备后续连接请求的响应方式和效率。

二、命令格式和参数说明

2.1. HCI_Write_Page_Scan_Activity命令格式

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

具体来说,它包含以下几个部分:

  • HCI_type:1个字节,用于标识命令的类型。对于HCI命令包,该字段的值通常为0x01
  • OpCode:2个字节,用于唯一标识命令的操作码(Opcode)。
  • OpCode:2个字节,用于唯一标识命令的操作码(Opcode)。这个操作码由操作码组字段(OGF)和操作码命令字段(OCF)组成。
    • OGF:占用高6位字节,表示命令所属的组。
    • OCF:占用低10位字节,表示在特定组内的命令。
  • Parameter Length:1个字节,表示后续参数的长度。
  • Parameters:这是命令的核心部分,用于传递具体的设置信息,主要包括寻呼扫描间隔(Page_Scan_Interval)和寻呼扫描窗口(Page_Scan_Window)的值,还可能包含扫描模式等信息。

2.2. Page_Scan_Interval

Page_Scan_Interval这个配置参数用于明确连续两次寻呼扫描之间相隔的时间量。具体而言,它所规定的时间间隔是从蓝牙控制器启动上一次寻呼扫描的那个时间点开始,一直到其启动下一次寻呼扫描为止的这一段时长。可以说,这个参数掌控着设备进行寻呼扫描操作的节奏,对设备能否及时响应其他设备的连接请求以及设备自身的功耗情况有着关键影响。

  • 大小:该参数占用2个八位字节(octets),即16位。
  • 值范围从0x0012到0x1000,且仅偶数值有效。其取值通过十六进制数值 N = 0xXXXX 来表示。
  • 默认值:Page_Scan_Interval的默认值为0x0800。
  • 时间(Time):表示Page_Scan_Interval所对应的时间长度,计算公式为N × 0.625毫秒(ms)。时间范围
    • 最小值:当N=0x0012时,Time=0x0012 × 0.625 ms = 11.25 ms。
    • 最大值:当N=0x1000时,Time=0x1000 × 0.625 ms = 2560 ms(即2.56秒)。
    • 默认时间:当N为默认值0x0800时,Time=0x0800 × 0.625 ms = 1280 ms(即1.28秒)。

Page_Scan_Interval的设置会影响设备的寻呼扫描频率。较小的值意味着设备会更频繁地进行寻呼扫描,从而可能更快地响应其他设备的连接请求。然而,这也可能增加设备的功耗。相反,较大的值会降低设备的寻呼扫描频率,减少功耗,但可能延长连接建立的时间。

2.3. Page_Scan_Window

Page_Scan_Window这个配置参数主要用于定义一次寻呼扫描持续的时间长度。简单来讲,就是在每次寻呼扫描过程中,蓝牙设备开启扫描以接收其他设备发出的寻呼信号的实际时间段。可以将其想象成设备打开了一个 “窗口”,在这个 “窗口” 时间内来监听其他设备的寻呼信号,而这个 “窗口” 打开多久就是由Page_Scan_Window来确定的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472851.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI图像生成网站Golang】雪花算法

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构(等待更新) 五、图床上传与图像生成API搭建(等待更新) 六、项目测试与调试(等待更新) 雪花算法 雪花算法 (Snowflake) 是一种高效、可扩展的分布式唯一ID生成算法,最早…

JMeter与大模型融合应用之JMeter日志分析服务化实战应用

JMeter与大模型融合应用之JMeter日志分析服务化 引言 在当今的互联网时代,网站和应用程序的性能直接影响到用户的体验和业务的成功。为了保证系统的稳定性和高效性,性能测试成为了软件开发过程中的一个重要环节。在这其中,Apache JMeter作为一款开源的性能测试工具,凭借其…

Docker环境搭建Cloudreve网盘服务(附shell脚本一键搭建)

Docker搭建Cloudreve Cloudreve介绍: Cloudreve 是一个基于 ThinkPHP 框架构建的开源网盘系统,旨在帮助用户以较低的成本快速搭建起既能满足个人也能满足企业需求的网盘服务。Cloudreve 支持多种存储介质,包括但不限于本地存储、阿里云OSS、…

浪浪云轻量服务器搭建vulfocus网络安全靶场

什么是网络安全靶场 网络安全靶场是一个模拟真实网络环境的训练平台,旨在为网络安全专业人员提供一个安全的环境来测试和提高他们的技能。靶场通常包括各种网络设备、操作系统、应用程序和安全工具,允许用户在其中进行攻击和防御练习。以下是网络安全靶…

对称加密算法DES的实现

一、实验目的 1、了解对称密码体制基本原理 2、掌握编程语言实现对称加密、解密 二、实验原理 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密…

【linux学习指南】VSCode部署Ubantu云服务器,与Xshell进行本地通信文件编写

文章目录 📝前言🌠 步骤🌉测试同步 🚩总结 📝前言 本文目的是讲使用Vscode连接Ubantu,与本地Xshell建立通信同步文件编写。 查看本机系统相关信息: cat /etc/lsb*DISTRIB_IDUbuntu: 表示这是 Ubuntu 发行…

实战:一文讲透模糊匹配的三种方式的区别

在 SQL 查询中,模糊查询是我们常用的工具之一。LIKE 关键字配合 % 符号,可以实现前缀匹配、后缀匹配和包含匹配等多种查询方式。然而,不同的匹配方式对查询性能会有显著影响。本文将详细探讨在 SQL 查询中,字符串前后加 % 与只在后面加 % 的性能差异及其应用场景。 一、SQL…

利用Blackbox AI让编程更轻松

引言 随着人工智能技术的发展,AI已经成为工作中不可缺少的工具之一。俗话讲“术业有专攻”,对AI来说当然也是如此。由于训练集、调教等方面的差别,不同的AI适用的工作也不尽相同。在编程辅助方面,已经有一系列比较成熟的平台&…

Vue学习记录03

响应式基础 声明响应式状态 ref() 在组合式API中,推荐使用ref()函数来声明响应式状态: import { ref } from vueconst count ref(0) ref()接收参数,并将其包裹在一个带有.value属性的ref对象中返回: const count ref(0)con…

排序排序的概念及其运用和选择排序

排序排序的概念及其运用和选择排序 7. 排序7.1 排序的概念及其运用7.2 选择排序算法——直接选择排序选择排序基本思想:直接选择排序选择排序原理参考程序 如何交换数据直接选择排序的特性总结: 7. 排序 7.1 排序的概念及其运用 排序:所谓排…

【目标检测】用YOLOv8-Segment训练语义分割数据集(保姆级教学)

前言 这篇教程会手把手带你用 YOLOv8-Segment 搭建一个属于自己的分割任务项目。从环境配置到数据集准备,再到模型训练和测试,所有步骤都有详细说明,适合初学者使用。你将学会如何安装必要的软件,标注自己的数据,并使…

爬虫开发工具与环境搭建——开发工具介绍

第二章:爬虫开发工具与环境搭建 第一节 开发工具介绍 爬虫开发需要一些合适的工具和框架来高效地抓取网页数据。在这节中,我们将介绍常用的开发工具,帮助开发者快速搭建爬虫开发环境。 1. Python与爬虫框架选择 Python因其简洁、易学的语法…

类和对象——拷贝构造函数,赋值运算符重载(C++)

1.拷⻉构造函数 如果⼀个构造函数的第⼀个参数是自身类类型的引用,且任何额外的参数都有默认值,则此构造函数也叫做拷贝构造函数,也就是说拷贝构造是⼀个特殊的构造函数。 // 拷贝构造函数//d2(d1) Date(const Date& d) {_year d._yea…

高级数据结构——hash表与布隆过滤器

文章目录 hash表与布隆过滤器1. hash函数2. 选择hash函数3. 散列冲突3.1 负载因子3.2 冲突解决3. STL中的散列表 4. 布隆过滤器4.1 背景1. 应用场景2. 常见的处理场景: 4.2 布隆过滤器构成4.3 原理4.4 应用分析4.5 要点 5. 分布式一致性hash5.1 缓存失效问题 6. 大数…

xcode-select: error: tool ‘xcodebuild‘ requires Xcode, but active developer

打开 .sh 文件所在的终端窗口,执行终端命令:sh 文件名.sh,出现如下错误: 解决办法:

java中volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗?

大家好,我是锋哥。今天分享关于【java中volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗?】面试题。希望对大家有帮助; java中volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗&…

candence : 通孔焊盘、插装器件封装绘制

通孔焊盘、插装器件封装绘制 以2.54mm 2x10的 排针为例绘制封装 一、 flash 热风焊盘制作 1、新建 2、选择 flash SYMBOL,并设置保存路径 3、add flash 具体参数 花焊盘参数 Inner diameter 通孔直径(1.0mm) 圆形补偿值(0.4mm)1.4mm Outer diameter 通孔直径…

VSCode设置

打开设置页 VSCode打开配置页面,有多种方式: a. 点击左上角 File(文件) -> Preferences (首选项) -> Settings(设置)。 b. 使用快捷键 Ctrl ,(Windows) 或 Cmd ,(Mac)。 c. 点击左下角 Manage(管理) -> Settings(设置)。 VSCode设置页面打…

SpringMVC数据校验、数据格式化处理、国际化设置

SpringMVC数据校验、数据格式化处理、国际化设置 1.数据验证 (1)使用JSR-303验证框架 JSR(Java Specification Requests),意思是Java 规范提案。JSR-303是JAVA EE 6中的一项子规范,叫做Bean Validation。JSR 303&am…

加速 AI 创新:引入 Elastic AI 生态系统

作者:来自 Elastic Alyssa Fitzpatrick, Steve Kearns 生成式人工智能 (Generative AI - GenAI) 正在改变我们所熟知的商业格局。为了简化和加速开发人员构建和部署检索增强生成 (retrieval augmented generation - RAG) 应用程序的方式,Elastic 自豪地宣…