当前位置: 首页 > news >正文

【0x005B】HCI_Write_Default_Erroneous_Data_Reporting命令详解

目录

一、命令概述

二、命令格式及参数

2.1. HCI_Write_Default_Erroneous_Data_Reporting命令格式

2.2. Erroneous_Data_Reporting

三、生成事件及参数

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. 蓝牙设备固件更新场景

六、注意事项

6.1. 参数范围与限制

6.2. 命令执行与结果检查

6.3. 对通信与功耗的影响

6.4. 设备兼容性与规范遵循

6.5. 其他注意事项


HCI_Write_Default_Erroneous_Data_Reporting命令允许主机(Host)设置蓝牙BR/EDR(Basic Rate/Enhanced Data Rate)控制器在接收到错误数据时的报告行为。这个设置决定了控制器是否会在HCI数据包的状态标志中反映数据包的错误状态。

一、命令概述

当执行此命令时,蓝牙BR/EDR控制器会根据Erroneous_Data_Reporting参数的值来决定是否在同步数据包的Packet_Status_Flag中设置错误状态。这个设置不会影响已经存在的同步连接,仅对命令执行后新建立的连接有效。

  • 如果Erroneous_Data_Reporting参数被设置为启用错误数据报告,那么当控制器接收到错误数据包时,它会在相应的HCI数据包的状态标志中设置Packet_Status_Flag,以指示数据包存在错误。
  • 如果Erroneous_Data_Reporting参数被设置为禁用错误数据报告,那么即使控制器接收到错误数据包,它也不会在HCI数据包的状态标志中反映这一错误状态。

二、命令格式及参数

2.1. HCI_Write_Default_Erroneous_Data_Reporting命令格式

HCI_Write_Default_Erroneous_Data_Reporting命令遵循蓝牙核心规范中定义的HCI命令结构。

通常包括命令操作码(Opcode)、参数长度(Parameter Length)和参数(Parameters)三部分。

  • 命令操作码(Opcode)
    • OGF(操作码组字段):通常为0x03,表示这是HCI Control and Baseband commands的一部分。
    • OCF(操作码命令字段):对于HCI_Write_Default_Erroneous_Data_Reporting命令,OCF为0x005B。
  • 参数长度(Parameter Length):表示随后参数部分的字节数。对于此命令,参数长度通常为1个字节。
  • 参数(Parameters):即要设置的Erroneous_Data_Reporting参数值。这个值决定了控制器的错误数据报告行为。

2.2. Erroneous_Data_Reporting

Erroneous_Data_Reporting参数用于指定当数据包出现错误时,蓝牙控制器是否应该在HC数据包的状态标志中设置Packet_Status_Flag。这个参数的值决定了控制器的行为。

  • 0x00:错误数据报告禁用(默认)。当设置为这个值时,蓝牙控制器在接收到错误数据包时,会在HCI数据包的状态标志中设置相应的错误状态。允许主机检测到这些错误数据包,并可以采取适当的行动,如重传、记录日志或通知用户。
  • 0x01:错误数据报告启用。当设置为这个值时,蓝牙控制器在接收到错误数据包时,不会在HCI数据包的状态标志中设置错误状态。意味着主机不会收到关于这些错误数据包的通知。
  • All other values Reserved for future use:除了0x00和0x01之外的所有值都保留给蓝牙核心规范的未来版本使用。

三、生成事件及参数

3.1. HCI_Command_Complete事件

HCI_Write_Default_Erroneous_Data_Reporting命令执行完毕后,蓝牙控制器会生成一个HCI_Command_Complete事件(除非该事件被屏蔽)。这个事件是HCI通信协议的一部分,用于通知主机命令已成功执行、遇到错误或需要进一步的响应。

  • 事件代码HCI_Command_Complete事件有一个固定的事件代码,用于标识它是一个命令完成事件。

  • 参数长度:指定了随后参数部分的字节数。对于HCI_Command_Complete事件,参数长度通常包括状态码、命令操作码(Opcode)的返回部分

相关文章:

【0x005B】HCI_Write_Default_Erroneous_Data_Reporting命令详解

目录 一、命令概述 二、命令格式及参数 2.1. HCI_Write_Default_Erroneous_Data_Reporting命令格式 2.2. Erroneous_Data_Reporting 三、生成事件及参数 3.1. HCI_Command_Complete事件 3.2. 状态码(Status) 四、命令执行流程 4.1. 命令发起阶段(主机端) 4.2. 命…...

基于 Python 的学生成绩管理系统设计与实现

标题:基于 Python 的学生成绩管理系统设计与实现 内容:1.摘要 摘要:本文介绍了一个基于 Python 的学生成绩管理系统的设计与实现。该系统旨在提高学生成绩管理的效率和准确性,方便教师和学生进行成绩查询和分析。本文详细描述了系统的设计思路、功能模块…...

【Apache Doris】周FAQ集锦:第 29 期

引言 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见问题。 通过这个每周 FAQ 栏目,希望帮助社…...

【C】初阶数据结构3 -- 单链表

之前在顺序表那一篇文章中,提到顺序表具有的缺点,比如头插,头删时间复杂度为O(n),realloc增容有消耗等。而在链表中,这些问题将得到解决。所以在这一篇文章里,我们将会讲解链表的定义与性质,以及…...

Autodl安装tensorflow2.10.0记录

首先租用新实例(我选的是3080*2卡),由于基础镜像中没有2.10.0版本,选miniconda3的基础环境 创建虚拟环境:conda create --name xxx python3.8(环境名)激活虚拟环境:conda activate x…...

【Rust】常见集合

目录 思维导图 一、Rust常用集合 1. Rust标准库中的集合概述 2. 常用集合类型 2.1 向量(Vector) 2.2 字符串(String) 2.3 哈希映射(Hash Map) 二、向量(Vec) 1. 向量的概述…...

SpiderFlow平台v0.5.0之引入selenium插件

引入selenium插件 首先到码云下载插件点击下载​编辑到本地并导入到工作空间或安装到maven库在spider-flow/spider-flow-web/pom.xml中引入插件 <!-- 引入selenium插件 --> <dependency><groupId>org.spiderflow</groupId><artifactId>spider-…...

git push命令

git push 常用命令 1. 拉取远程仓库最新数据 使用 git fetch git fetch作用&#xff1a; 获取远程仓库的最新数据&#xff08;包括分支、标签等&#xff09;&#xff0c;但不会修改本地工作目录。 结果&#xff1a; 仅更新远程分支&#xff08;如 origin/main&#xff09;的…...

洛谷P1161

开灯 - 洛谷 代码区&#xff1a; #include<stdio.h> int ans[2000005]{1}; //1为关 int main(){int n;scanf("%d",&n);double arry[n][2];//此处最好用双精度浮点数&#xff0c;单精度浮点数的精确度够高对于此题来说&#xff0c;第一次没全对就是因为精度…...

Python脚本自动发送电子邮件

要编写一个Python脚本来自动发送电子邮件&#xff0c;你可以使用smtplib库来处理SMTP协议&#xff0c;以及email库来构建邮件内容。 安装必要的库 通常情况下&#xff0c;smtplib和email库是Python标准库的一部分&#xff0c;因此不需要额外安装。如果你使用的是较旧的Python版…...

vscode的安装与使用

下载 地址&#xff1a;https://code.visualstudio.com/ 安装 修改安装路径&#xff08;不要有中文&#xff09; 点击下一步&#xff0c;创建桌面快捷方式&#xff0c;等待安装 安装中文插件 可以根据自己的需要安装python和Jupyter插件...

sparkRDD教程之必会的题目

1.前期准备 &#xff08;1&#xff09;看看上一期的博客&#xff0c;最好跟着上一期的博客把sparkRDD的基本命令给熟练掌握后&#xff0c;再来做这篇文章的任务。 上一期的博客&#xff1a;sparkRDD教程之基本命令-CSDN博客 &#xff08;2&#xff09;新建文件task6.scala …...

Unity 2d描边基于SpriteRender,高性能的描边解决方案

目标 以Unity默认渲染管线为例&#xff0c;打造不需要图片内边距&#xff0c;描边平滑&#xff0c;高性能的描边解决方案 前言 在2d游戏中经常需要给2d对象添加描边&#xff0c;来突出强调2d对象 当你去网上查找2d描边shader&#xff0c;移植到项目里面&#xff0c;大概率会…...

信凯科技业绩波动明显:毛利率远弱行业,资产负债率偏高

《港湾商业观察》施子夫 1月8日&#xff0c;深交所官网显示&#xff0c;浙江信凯科技集团股份有限公司&#xff08;以下简称“信凯科技”&#xff09;主板IPO提交注册。 自2022年递交上市申请&#xff0c;信凯科技的IPO之路已走过两年光景&#xff0c;尽管提交注册&#xff0…...

js基础---var与let的区别以及const的使用

js基础—var与let的区别以及const的使用 var与let的区别 在较旧的JavaScript&#xff0c;使用关键字var来声明变量&#xff0c;而不是let。var现在开发中一般不再使用它&#xff0c;只是我们可能再老版程序中看到它。let的出现为了解决var的一些问题。 var 声明存在以下三种问…...

用css和html制作太极图

目录 css相关参数介绍 边距 边框 伪元素选择器 太极图案例实现、 代码 效果 css相关参数介绍 边距 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}div{width: …...

OJ12:160. 相交链表

目录 题目思路分析代码展示 题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 示例 1&#xff1a; 输入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,…...

软件工程和项目管理领域 - CMMI 极简理解

CMMI 概述 CMMI 全称为 Capability Maturity Model Integration&#xff0c;即能力成熟度模型集成 CMMI 是由美国卡内基梅隆大学软件工程研究所&#xff08;SEI&#xff09;开发的一套综合性管理模型 CMMI 是一种用于评估和改进组织在软件开发和维护方面过程能力的国际标准 …...

C# 线程基础之 线程同步

线程同步的手段很多 lock 是通过内存索引块 0 1 切换 进行互斥的实现 互斥量 信号量 事件消息 其实意思就是 一个 标记量 通过这个标记 来进行类似的互斥手段 具体方式的分析 代码在后 1.互斥量 Mutex 作用 非常类似lock 一个Mutex 名称来代替 lock的引用对象 2.信号量 Semaph…...

[c语言日寄]c语言也有“回”字的多种写法——整数交换的三种方式

大家好啊&#xff0c;在今天的快乐刷题中&#xff0c;我们遇到了这样一道题目&#xff1a; 题目 写出 三种不同方式的 交换两个整数变量的 函数 交换变量的三种解法 常规方式 想要交换两个变量很简单&#xff0c;第一种方式就是新建一个临时变量&#xff0c;具体流程如下&…...

centos 7 部署awstats 网站访问检测

一、基础环境准备&#xff08;两种安装方式都要做&#xff09; bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...