【HFP】蓝牙语音通话控制深度解析:来电拒接与通话终止协议
目录
一、来电拒接的核心流程与信令交互
1.1 拒接场景的分类与触发条件
1.2 HF 端拒接流程
1.3 AG 端拒接流程
二、通话终止流程:主动断开与异常中断
2.1 终止场景的界定
2.2 HF 端终止流程
2.3 AG 端终止流程
三、信令协议的核心要素:AT 命令与 + CIEV 机制
3.1 AT+CHUP 命令的底层实现
3.2 +CIEV 结果码的状态语义
四、工程实现中的关键挑战与解决方案
4.1 信令冲突处理:拒接与接听的竞态条件
4.2 低功耗设计:资源释放的及时性
4.3 多设备场景:一拖二模式下的拒接逻辑
五、异常场景处理与协议健壮性设计
5.1 信令丢失:HF 拒接命令未送达 AG
5.2 跨协议版本兼容性:旧设备对 + CIEV 的支持差异
5.3 语音流残留:终止后仍有声音输出
六、测试体系构建:从单元测试到场景验证
6.1 单元测试:信令解析与状态机
6.2 集成测试:设备互操作性
6.3 压力测试:功耗与稳定性
七、典型应用场景与优化实践
7.1 车载蓝牙:方向盘按键的拒接优化
7.2 真无线耳机(TWS):双耳协同拒接逻辑
八、未来技术演进:与 5G 和 AI 的融合
8.1 5G VoNR 场景下的蓝牙协同
8.2 AI 驱动的智能拒接策略
九、总结
十、参考文献
在蓝牙语音通信系统中,除了来电接听流程,来电拒接(Reject)与通话终止(Terminate)机制同样是保障用户体验与系统稳定性的关键环节。这些流程涉及设备间的信令交互、状态同步及资源释放,其协议实现的准确性直接影响蓝牙设备的兼容性和可靠性。本文基于蓝牙核心规范中 4.14 节(来电拒接)与4.15 节(通话终止) 的技术要求,结合实际应用场景,深入解析 AG(网关)与 HF(耳机)在拒接和终止场景下的交互逻辑、信令流程及异常处理策略。
一、来电拒接的核心流程与信令交互
1.1 拒接场景的分类与触发条件
来电拒接流程可分为HF 端拒接与AG 端拒接两种模式,其触发条件包括:
-
用户主动操作:通过 HF 按键或 AG 界面执行拒接;
-
系统自动拒接:如黑名单过滤、电量不足等异常情况。
协议共性:无论拒接发起方是谁,最终均需通过蓝牙信令完成以下操作:
-
停止设备端的来电提醒(如铃声、震动);
-
释放已占用的信令与音频资源;
-
同步通话状态至对端设备。
1.2 HF 端拒接流程
①前提条件与信令链路
在 HF 执行拒接前,需确保:
-
AG 已向 HF 发送 RING 通知或带内铃声;
-
服务层连接(Service Level Connection)已建立,确保 AT 命令传输通道可用。
②核心信令交互
-
用户操作触发:用户通过 HF 物理按键(如拒接键)或触控界面执行拒接;
-
AT+CHUP 命令发送:HF 向 AG 发送AT+CHUP(Call Hang Up)命令,该命令是蓝牙串口协议(SPP)中用于挂断通话的标准指令;
-
AG 响应处理:
-
停止向 HF 发送 RING 通知或带内铃声;
-
返回OK确认响应,并附加 +CIEV result code(
callsetup=0
),表明通话建立失败。
-
技术要点:
-
AT+CHUP 的时效性:需确保命令在通话建立超时前送达 AG,避免进入无效状态;
-
资源释放顺序:AG 应先终止音频连接(若已建立),再释放服务层连接,防止残留数据干扰后续通信。
1.3 AG 端拒接流程
①触发场景
AG 主动拒接的典型场景包括:
-
用户通过 AG 设备(如车载中控屏)执行拒接;
-
AG 检测到异常条件(如内存不足、安全认证失败);
-
来电号码被 AG 本地黑名单拦截。
②信令流程
-
AG 主动终止:无需 HF 操作,AG 直接生成 +CIEV: callsetup=0 信令;
-
状态同步:HF 接收到信令后,立即停止本地提醒(如关闭铃声);
-
连接管理:AG 可选择保持服务层连接(以便后续快速重连)或主动断开。
协议原文映射:
"The AG shall send the +CIEV result code, with the value indicating (callsetup=0). The HF shall then stop alerting the user."
二、通话终止流程:主动断开与异常中断
2.1 终止场景的界定
通话终止与来电拒接的核心区别在于:
-
拒接:发生在通话建立阶段(RING 通知至接听前);
-
终止:发生在通话已建立(Audio Connection 激活)后的主动断开或异常中断。
应用场景:
-
主动终止:用户按结束键挂断通话;
-
异常终止:蓝牙链路断开、设备断电、网络侧断话等。
2.2 HF 端终止流程
①前提条件
-
服务层连接与音频连接均已建立;
-
AG 当前存在有效的通话进程(如正在进行语音传输)。
②信令与资源释放
-
用户操作:HF 通过按键或界面触发挂断;
-
AT+CHUP 命令:与拒接场景相同,HF 发送 AT+CHUP 至 AG;
-
AG 处理逻辑:
-
终止音频连接,停止语音流传输;
-
返回OK响应,并发送 +CIEV: call=0 信令,标识通话结束;
-
可选操作:释放服务层连接或保持为待机状态。
-
③关键差异(与拒接对比)
表格 还在加载中,请等待加载完成后再尝试复制
2.3 AG 端终止流程
①触发原因
-
用户通过 AG 设备挂断(如手机点击结束按钮);
-
AG 检测到异常(如对端设备超时无响应、音频编解码错误);
-
网络侧强制断话(如运营商拆线)。
②信令与状态机
-
AG 主动生成信令:直接发送 +CIEV: call=0 至 HF;
-
HF 响应:接收到信令后,关闭音频输出,清除通话状态;
-
连接管理:AG 与 HF 需协调释放音频连接的底层资源(如蓝牙逻辑传输通道 L2CAP)。
协议机制图:
三、信令协议的核心要素:AT 命令与 + CIEV 机制
3.1 AT+CHUP 命令的底层实现
AT+CHUP 是基于AT 命令集(Attention Command Set)的标准控制指令,其传输需遵循以下规则:
-
协议栈层级:通过蓝牙串口协议(SPP)传输,承载于 RFCOMM 链路;
-
格式规范:需以
\r\n
作为命令结束符,如:
AT+CHUP\r\n
-
响应机制:AG 需在接收到命令后 100ms 内返回
OK
或ERROR
响应。
3.2 +CIEV 结果码的状态语义
+CIEV(Change Indication)是蓝牙协议中用于异步通知状态变更的核心信令,其参数结构为:
+CIEV: <event>,<value>[,<cause>]
拒接与终止场景的关键参数:
-
event=callsetup:表示通话建立阶段的状态(适用于拒接);
-
value=0
:拒接或中断,cause
可选(如 1 = 用户拒接,2 = 超时);
-
-
event=call:表示已建立通话的状态(适用于终止);
-
value=0
:通话结束,cause
可选(如 1 = 正常挂断,3 = 链路故障)。
-
示例信令:
-
HF 拒接:
+CIEV: callsetup,0,1
(用户拒接); -
AG 异常终止:
+CIEV: call,0,3
(蓝牙链路断开)。
四、工程实现中的关键挑战与解决方案
4.1 信令冲突处理:拒接与接听的竞态条件
挑战:当 HF 与 AG 同时发起操作(如 HF 发送拒接命令时 AG 正在尝试建立音频连接),可能导致状态机混乱。
解决方案:
-
引入操作锁机制:在 AG 端维护一个通话状态锁,同一时刻仅允许一种操作(接听 / 拒接 / 终止)执行;
-
超时重传策略:对 AT+CHUP 命令设置重传定时器(如 500ms),确保信令可靠送达。
4.2 低功耗设计:资源释放的及时性
挑战:若音频连接或服务层连接未及时释放,会导致设备持续占用射频资源,增加功耗。
解决方案:
-
分层释放策略:
-
优先终止音频连接(释放 CODEC 与射频通道);
-
延迟释放服务层连接(如等待 5 秒),以便快速处理后续来电;
-
-
被动超时机制:若 AG 未收到 HF 的确认响应,在超时(如 10 秒)后强制释放所有连接。
4.3 多设备场景:一拖二模式下的拒接逻辑
挑战:当 AG 同时连接多个 HF(如双耳耳机或车载 + 手机),需明确拒接操作的目标设备。
解决方案:
-
设备标识绑定:在 AT+CHUP 命令中附加 HF 的 BD_ADDR(蓝牙地址)参数,如:
AT+CHUP=00:11:22:33:44:55\r\n // 指定拒接目标设备
-
优先级策略:默认拒接主音频通道对应的 HF,或通过用户操作指定目标设备。
五、异常场景处理与协议健壮性设计
5.1 信令丢失:HF 拒接命令未送达 AG
现象:用户执行拒接操作后,HF 停止提醒,但 AG 仍持续发送 RING 通知。
诊断与修复:
-
HF 侧:在发送 AT+CHUP 后启动超时定时器(如 2 秒),若未收到 AG 的 OK 响应,重新发送命令;
-
AG 侧:维护未确认命令队列,对重复的 AT+CHUP 命令做去重处理,避免误操作。
5.2 跨协议版本兼容性:旧设备对 + CIEV 的支持差异
挑战:部分 legacy 设备可能不支持扩展的 + CIEV 参数(如cause
字段)。
解决方案:
-
协议版本协商:在服务层连接建立阶段,通过 +BRSF 消息交换支持的信令特性;
-
向后兼容封装:对不支持
cause
的设备,省略该参数,仅发送基础信令:
+CIEV: callsetup,0\r\n // 省略cause字段
5.3 语音流残留:终止后仍有声音输出
原因:音频连接的关闭顺序错误,导致缓冲区残留数据未被清除。
修复方案:
-
同步关闭机制:AG 在发送 + CIEV 信令后,立即通过AVRCP 协议发送暂停指令,停止音频流传输;
-
缓冲区冲刷:HF 在接收到终止信令后,主动清空音频缓冲区,并关闭 DAC(数模转换器)。
六、测试体系构建:从单元测试到场景验证
6.1 单元测试:信令解析与状态机
测试用例:
-
验证 AG 对 AT+CHUP 命令的解析是否符合协议格式;
-
测试 HF 在接收到 + CIEV: callsetup=0 时,是否正确停止铃声播放;
-
模拟信令重复发送,验证 AG 的去重逻辑。
工具链:
-
HCI Logger:捕获蓝牙控制器与主机间的原始信令,验证 AT 命令传输的正确性;
-
状态机测试框架:如 Python 的
pytest-state-machine
,驱动 AG/HF 状态机迁移,验证异常路径覆盖。
6.2 集成测试:设备互操作性
测试场景:
-
HF 拒接→AG 终止:HF 拒接后,AG 是否正确释放资源;
-
AG 异常断电→HF 重连:AG 突发断电后,HF 是否能通过 + CIEV 信令感知终止,并触发重连;
-
一拖二拒接:主设备拒接后,从设备是否同步停止提醒。
参考设备:
-
主测设备:CSR8675 蓝牙芯片(AG 端);
-
对端设备:高通 QCC5171 耳机(HF 端)、iOS/macOS 标准蓝牙栈(兼容性测试)。
6.3 压力测试:功耗与稳定性
指标要求:
-
拒接延迟:从用户操作到 AG 停止铃声的时间≤300ms;
-
功耗峰值:拒接过程中,HF 的平均电流≤5mA(待机状态≤0.1mA);
-
连续操作可靠性:1000 次连续拒接 / 终止操作,信令成功率≥99.9%。
七、典型应用场景与优化实践
7.1 车载蓝牙:方向盘按键的拒接优化
场景需求:驾驶员通过方向盘按键拒接来电时,需确保操作响应迅速,且不干扰导航语音输出。
优化方案:
-
独立信令通道:为拒接命令分配专用的 RFCOMM 端口,避免与音频流竞争带宽;
-
触觉反馈同步:在 HF(车载耳机)拒接时,同步触发方向盘按键的震动反馈,增强操作确认感。
7.2 真无线耳机(TWS):双耳协同拒接逻辑
挑战:左右耳耳机需同步处理拒接操作,避免单耳操作导致状态不一致。
解决方案:
-
主从设备协调:指定左耳为控制主设备,右耳为从设备,所有拒接命令由主设备统一发送;
-
广播信令机制:AG 发送的 + CIEV 信令通过蓝牙广播模式传输,确保双耳同时接收状态更新。
八、未来技术演进:与 5G 和 AI 的融合
8.1 5G VoNR 场景下的蓝牙协同
随着 5G 网络的普及,蓝牙语音通话可能与 VoNR(Voice over New Radio)结合,形成异构网络下的无缝通信。在拒接 / 终止场景中,可引入以下优化:
-
网络状态感知:AG 根据 5G 信号强度动态选择拒接方式(如弱网时优先本地拒接,强网时触发云端断话);
-
边缘计算联动:通过 MEC(多接入边缘计算)服务器缓存拒接日志,实现跨设备操作历史同步。
8.2 AI 驱动的智能拒接策略
结合机器学习算法,AG 可实现:
-
来电意图识别:通过语音识别判断来电类型(如骚扰电话、紧急呼叫),自动执行拒接或转接;
-
上下文感知拒接:根据用户日程(如会议时段)、地理位置(如办公室)等信息,智能过滤来电。
九、总结
来电拒接与通话终止是蓝牙语音通信中不可或缺的控制环节,其协议实现涉及信令交互、状态机管理、资源释放等多个技术维度。对于蓝牙工程师而言,需深入理解 AT 命令与 + CIEV 机制的底层逻辑,结合具体硬件特性设计健壮的状态同步与异常处理流程。在实际开发中,应通过分层测试体系验证协议的可靠性,并针对低功耗、多设备兼容等挑战实施针对性优化。
十、参考文献
-
Bluetooth Core Specification Version 6.0
-
AT Command Set for Bluetooth SPP (RFCOMM)
-
Bluetooth SIG. Hands-Free Profile Specification.
-
LE Audio and 5G Integration Whitepaper (Bluetooth SIG, 2024)
相关文章:
【HFP】蓝牙语音通话控制深度解析:来电拒接与通话终止协议
目录 一、来电拒接的核心流程与信令交互 1.1 拒接场景的分类与触发条件 1.2 HF 端拒接流程 1.3 AG 端拒接流程 二、通话终止流程:主动断开与异常中断 2.1 终止场景的界定 2.2 HF 端终止流程 2.3 AG 端终止流程 三、信令协议的核心要素:AT 命令与…...
linux 中断子系统 层级中断编程
虚拟中断控制器代码: #include<linux/kernel.h> #include<linux/module.h> #include<linux/clk.h> #include<linux/err.h> #include<linux/init.h> #include<linux/interrupt.h> #include<linux/io.h> #include<linu…...
continue插件实现IDEA接入本地离线部署的deepseek等大模型
文章目录 前言一、IDEA安装continue二、continue部署本地大模型三、continue聊天窗口使用deepseek R1四、continue批量接入硅基流动的模型API 前言 亲爱的家人们,创作很不容易,若对您有帮助的话,请点赞收藏加关注哦,您的关注是我…...
Redis-缓存应用 本地缓存与分布式缓存的深度解析
Redis缓存场景与策略:本地缓存与分布式缓存的深度解析 在当今高并发、低延迟的互联网架构中,缓存技术是优化系统性能的核心手段之一。Redis作为分布式缓存的标杆,与本地缓存共同构成了缓存体系的两大支柱。然而,两者的适用场景与…...
关于按键映射软件的探索(其一)
那么先说结论——重构了一次,我还是失败了,失败于拓展调整个性化的设计,不过我还是实现了按键监测然后显示的功能。只不过是说我对于WPF软件等的封装和软窗口的功能还是不怎么熟悉。 引言 在许多游戏玩家中,高难度操作(…...
测试基础笔记第十一天
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、查询连接1.内连接2.左连接3.右连接4.左右连接的必要性5.自关联6.普通查询7.子查询8.子查询充当数据源 二、数据库高级扩展内容1.外键2.索引3.验证索引效果案例实…...
优选算法第十讲:字符串
优选算法第十讲:字符串 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 2.最长回文子串 3.二进制求和 4.字符串相乘...
RK3588芯片NPU的使用:官方rknn_yolov5_android_apk_demo运行与解读
一、本文的目标 本文将完成两项任务: 官方的调用摄像头动态目标识别例子运行在rk3588的开发板上。解读源码以增加对rknn开发的认识。二、开发环境说明 主机系统:Windows 11目标设备:搭载RK3588芯片的安卓开发板核心工具:Android Studio Koala | 2024.1.1 Patch 2,NDK 27.…...
面试篇:Spring Boot
基础概念 Spring Boot的核心优势是什么? Spring Boot 的核心优势如下: 自动配置:根据项目中的依赖自动进行配置,减少了大量的手动配置工作。 内嵌服务器:内置 Tomcat、Jetty 等容器,应用可以直接运行为一…...
开源漏洞扫描器:OpenVAS
一、OpenVAS介绍 OpenVAS (Open Vulnerability Assessment System) 是一款功能强大的开源漏洞扫描器。它由 Greenbone Networks 开发和维护,是 Greenbone 安全管理器 (GSM) 产品的基础,同时也有免费的社区版本(Greenbone Community Edition&…...
PCB封装主要组成元素
PCB(Printed Circuit Board,印刷电路板)封装是指将电子元件固定在 PCB 上,并实现电气连接的方式。主要包括以下几类。 1. 焊盘(Pad) 作用:焊盘是 PCB 封装中最重要的元素之一,它是…...
STC8H DMA 串口1全双工中断方式收发通讯C语言
/************* 功能说明 ************** 本例程基于STC8H8K64U为主控芯片的实验箱9进行编写测试,STC8H系列带DMA模块的芯片可通用参考. 串口1全双工中断方式收发通讯程序。 通过PC向MCU发送数据, MCU将收到的数据自动存入DMA空间. 当DMA空间存满设置大小的…...
考研英一学习笔记
2024 年全国硕士研究生招生考试 英语(一)试题 (科目代码:201) Section Ⅰ Use of English Directions: Read the following text. Choose the best word(s) for each numbered blank and mark A, B, C or D on the ANS…...
深度理解spring——BeanFactory的实现
BeanFactory Spring之BeanFactory什么是BeanFactoryApplicationContext相对BeanFactory实现的功能性扩展1. MessageSource2. ResourcePatternResolver3. ApplicationEventPublisher4. EnvironmentCapable通用ApplicationContext实践实现BeanFactoryBeanFactory后处理器排序让谁…...
半导体---检测和量测
目录 1.简介2.AOI(检测) 1.简介 半导体晶圆制造前道量测和检测设备。 公司产品涵盖光学薄膜量测、光学关键尺寸量测、光学衍射套刻量测、光学集成量测、X射线薄膜量测、X射线材料性能量测、X射线成分及表面污染量测等系列产品及解决方案。 半导体领域的量测和AOI如同半导体制造…...
CentOS 7 磁盘分区详细教程
CentOS 7 磁盘分区详细教程 在服务器管理和运维过程中,磁盘分区是一项基础且重要的操作。合理的磁盘分区可以提高数据存储的安全性、高效性,方便系统管理与维护。本文将详细介绍在 CentOS 7 系统中进行磁盘分区的具体步骤和方法。 一、准备工作 1.1 确…...
EasyRTC音视频实时通话在线教育解决方案:打造沉浸式互动教学新体验
一、方案概述 EasyRTC是一款基于WebRTC技术的实时音视频通信平台,为在线教育行业提供了高效、稳定、低延迟的互动教学解决方案。本方案将EasyRTC技术深度整合到在线教育场景中,实现师生间的实时音视频互动等核心功能,打造沉浸式的远程学习体…...
栈(Stack)和队列(Queue)
栈 栈(stack)是一种特殊的线性表,只允许在固定的一端进行插入和删除操作。 我们可以将栈近似看作一个桶,要取出桶底的元素,就要将桶顶的元素先取出,再将底部元素取出,也可以叫做后进先出。 这…...
1、AI及LLM基础:Python语法入门教程
Python语法入门教程 这是一份全面的Python语法入门教程,涵盖了注释、变量类型与操作符、逻辑运算、list和字符串、变量与集合、控制流和迭代、模块、类、继承、进阶等内容,通过详细的代码示例和解释,帮助大家快速熟悉Python语法。 文章目录 Python语法入门教程一、注释二…...
跨境电商关键词分类打标
你是一名顶级的亚马逊关键词分析专家,你将用你的亚马逊运营专业的经验帮助我做精准的关键词打标。 首先你会学习以下的知识内容,以便于你后续的关键词分析。 人群词是什么? 是指直接描述或定位特定用户群体的关键词或标签,用于精准识别目标受众的身份、需求或行为特征。 …...
C# 结构(Struct)
原文:C# 结构(Struct)_w3cschool 在 C# 中,结构是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构。 结构是用来代表一个记录。假设您想跟踪图书馆中书的动态。您可能想跟踪每本…...
Java Collections工具类指南
一、Collections工具类概述 java.util.Collections是Java集合框架中提供的工具类,包含大量静态方法用于操作和返回集合。这些方法主要分为以下几类: 排序操作查找和替换同步控制不可变集合特殊集合视图其他实用方法 二、排序操作 1. 自然排序 List&…...
BBRv2,v3 吞吐为什么不如 BBRv1
为什么 BBRv2/3 测试下来吞吐远不如 2016 年底的 BBRv1,这个事曾经提到过很多次,今天分析一下原理。注意三个事实: BBR 是一种拥塞控制算法;BBR 已经迭代到了 v3 版本;BBRv3 的 “性能” 远不如 BBRv1. 第二点有点不…...
Java集成【邮箱验证找回密码】功能
目录 1.添加依赖 2.选择一个自己的邮箱,作为发件人角色。 3.编写邮箱配置【配置发件人邮箱】 4.编写邮箱配置类 5.编写controller业务代码 6.演示效果 7.总结流程 8.注意 结语 1.添加依赖 <!--导入邮箱依赖--> <dependency><groupId>or…...
Java微服务架构设计与实践 - 面试实战
Java微服务架构设计与实践 - 面试实战 在互联网大厂的Java求职者面试中,微服务架构设计是一个常见的考察点。本文通过严肃的面试官和资深Java架构师马架构之间的对话,详细展示了如何回答SpringCloud相关的核心技术问题。 第一轮提问 面试官࿱…...
Java后端开发面试题(含答案)
在广州一个小公司(BOSS标注是20-99人,薪资2-3k左右),直接面试没有笔试,按流程自我介绍,然后直接拿着简历问项目场景,问题是结合场景题和八股文。废话不多说,直接分享面试题目个大家做参考。 1、…...
Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理
Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理 本系列专题旨在帮助开发者全面掌握 Sharding-JDBC,一个轻量级的分布式数据库中间件。本篇作为系列的第九篇文章,将重点探讨 高可用性(High Availability, HA) 和 集群管理,包括数据库高可用方案、Sharding-JDBC 的故…...
Node.js 学习入门指南
Node.js 学习入门指南 Node.js 是一种流行的开源、跨平台的 JavaScript 运行时环境,它使开发者能够在服务器端运行JavaScript代码。本篇文章旨在帮助初学者快速入门并掌握Node.js的基础知识和常用技巧。 一、什么是Node.js? 定义 Node.js 是一个基于…...
数智视融合驱动未来,Al+数字孪生重塑价值|2025袋鼠云春季数智发布会回顾
4月16日,袋鼠云成功举办了“做DataAI的长期主义者——2025年袋鼠云春季数智发布会”,从智能分析决策平台到AI大模型应用,从数字孪生中枢到AI增强型数字世界,勾勒出企业数智化转型的进化图谱,真正实现AI赋能企业业务&am…...
nfs服务原理、搭建手册、安全配置建议及异常定位手段
一、NFS服务原理 NFS(Network File System)是一种基于TCP/IP协议的网络文件共享系统,允许客户端像访问本地文件一样访问远程服务器上的共享目录。其核心原理依赖于RPC(Remote Procedure Call)机制,具体流程…...
第十三届蓝桥杯 2022 C/C++组 修剪灌木
目录 题目: 题目描述: 题目链接: 思路: 核心思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: P8781 [蓝桥杯 2022 省 B] 修…...
MySQL:数据库设计
目录 一、范式 二、第一范式 二、第二范式 三、第三范式 四、设计 (1)一对一关系 (2)一对多关系 (3)多对多关系 一、范式 数据库的范式是一种规则(规范),如果我们…...
OpenManus与OWL部署及体验报告
OpenManus与OWL对任务的执行结果均不及Manus;二者比较,Owl达成率更高;二者使用过程中均会消耗大量tokens,单个问题成本高。 一、部署 OpenManus:https://github.com/mannaandpoem/OpenManus.git OWL:https…...
【Pandas】pandas DataFrame pow
Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...
Red:1靶场环境部署及其渗透测试笔记(Vulnhub )
环境介绍: 靶机下载: https://download.vulnhub.com/red/Red.ova 本次实验的环境需要用到VirtualBox(桥接网卡),VMware(桥接网卡)两台虚拟机(网段都在192.168.152.0/24࿰…...
【多源01BFS】Codeforce:Three States
题干 翻译 给定一个 nm 的网格地图,包含以下元素: .:表示荒地(可以修建道路)。 #:表示岩石(不可通行)。 数字 1、2、3:分别表示三个国家的位置。 目标:将…...
在深度学习中FLOPs和GFLOPs的含义及区别
在深度学习中,FLOPs和GFLOPs是衡量计算性能的关键指标,但两者的定义和应用场景不同: 1. 定义与区别 • FLOPs(Floating-point Operations) 表示模型或算法执行时所需的浮点运算总次数,用于衡量模型的计算复…...
SpringBoot入门实战(项目搭建、配置、功能接口实现等一篇通关)
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 SpringBoot入门实战(项目搭建、配…...
昆仑万维开源SkyReels-V2,解锁无限时长电影级创作,总分83.9%登顶V-Bench榜单
昆仑万维开源了全球首个基于扩散强迫框架(Diffusion-forcing)的无限时长视频生成模型——SkyReels-V2。这一模型以总分83.9%的优异成绩登顶权威评测V-Bench1.0榜单,并在质量维度获得84.7%的评分,刷新了开源视频生成技术的天花板。…...
精选面试题
1、js中set和map的作用和区别? 在 JavaScript 中,Set 和 Map 是两种非常重要的集合类型 1、Set 是一种集合数据结构,用于存储唯一值。它类似于数组,但成员的值都是唯一的,没有重复的值。Set 中的值只能是唯一的,任何…...
【技术派后端篇】技术派中 Session/Cookie 与 JWT 身份验证技术的应用及实现解析
在现代Web应用开发中,身份验证是保障系统安全的重要环节。技术派在身份验证领域采用了多种技术方案,其中Session/Cookie和JWT(JSON Web Token)是两种常用的实现方式。本文将详细介绍这两种身份验证技术在技术派中的应用及具体实现…...
【CAPL实战:以太网】对IPv4报文的Payload部分进行分片并创建分片包
As we know,TCP/IP协议栈网络层接收到来自上层的数据时,并不是简单地添加报头发送出去,而是会受到来自网卡配置参数MTU的约束。也就是从网卡上发送出去的以太网帧报文的数据部分的长度不能大于MTU值。即网络层头部 + 有效载荷不能大于MTU。 所以网络层在发送上层的数据时,…...
Spring Security认证流程
认证是Spring Security的核心功能之一,Spring Security所提供的认证可以更好地保护系统的隐私数据与资源,只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置,开发者也可以根据自己实际的环境进行自定义身…...
Spring Security基础入门
本入门案例主要演示Spring Security在Spring Boot中的安全管理效果。为了更好地使用Spring Boot整合实现Spring Security安全管理功能,体现案例中Authentication(认证)和Authorization(授权)功能的实现,本案…...
Axure疑难杂症:母版菜单设置打开链接后菜单选中效果
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:菜单打开链接后子菜单选中效果 主要内容:母版设计、选中效果 应用场景:页面赋值 案例展示: 案例视频:...
4月份最新---Meta发明了一种很新的Transformer
在自然语言处理领域,当模型处理长上下文时,如何在纷繁的 Token 中精准捕捉关键信息、过滤无关干扰,始终是注意力机制优化的核心方向。标准多头注意力(Multi-Head Attention, MHA)通过查询 - 键 - 值(Q-K-V)的点积相似性计算注意力权重,虽能定位单个 Token 级别的语义关…...
Spring Boot知识点详解
打包部署 <!‐‐ 这个插件,可以将应用打包成一个可执行的jar包;‐‐> <build><plugins> <plugin> <groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐maven‐plugin</artifactId&g…...
基于 EFISH-SBC-RK3588 的无人机多光谱/红外热成像边缘计算方案
一、硬件架构设计 核心算力平台(EFISH-SBC-RK3588) 处理器性能:搭载 8 核 ARM 架构(4Cortex-A762.4GHz 4Cortex-A551.8GHz),集成 6 TOPS NPU 与 Mali-G610 GPU,支持多光谱图像实时融…...
字典与集合——测试界的黑话宝典与BUG追捕术
主题:“字典是测试工程师的暗号手册,集合是BUG的照妖镜” 一、今日目标 ✅ 掌握字典的「键值对暗号体系」与集合的「去重妖法」✅ 开发《测试工程师黑话词典》,让新人秒变老司机✅ 统计自动化测试结果中的高频BUG类型(附赠甩锅指…...
QT构建即时通讯应用--WebSocket全面解析与实战指南
概述 WebSocket协议因其低延迟和双向通信的能力而成为了现代Web和桌面应用程序的首选,Qt框架提供了强大的WebSocket支持,使得开发者可以轻松地集成这一技术到自己的项目中 WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许服务器主动向客户端推…...