【HFP】蓝牙HFP协议中音频连接转移与拨号功能的深度解析
目录
一、核心功能矩阵
二、音频连接向 HF 转移
2.1 转移概述
2.2 前提条件
2.3 适用情况
2.4 转移流程
2.5 注意事项
2.6 示例图
三、音频连接向 AG 转移
3.1 转移概述
3.2 前提条件
3.3 特殊情况处理
3.4 转移流程
3.5 注意事项
3.6 示例图
四、通过HF提供号码拨打电话
4.1 外呼概述
4.2 前提条件
4.3 外呼流程
4.4 三方通话情况
4.5 注意事项
4.6 示例图
五、信令交互详解
5.1 +CIEV 结果码
5.2 ATDdd…dd; 命令
六、工程实现中的挑战与解决方案
6.1 服务层连接建立问题
6.2 音频连接稳定性
6.3 信令交互可靠性
七、测试与验证
7.1 功能测试
7.2 兼容性测试
7.3 稳定性测试
7.4 常用测试号码
八、应用场景与优化建议
8.1 车载蓝牙场景
8.2 蓝牙耳机场景
8.3 外呼优化
九、未来发展趋势
9.1 智能化
9.2 多设备协同
9.3 低功耗优化
十、总结
十一、参考文献
在蓝牙语音通信领域,音频连接的灵活转移以及外呼功能的顺畅实现是提升用户体验的关键。随着蓝牙设备的广泛普及,如蓝牙耳机、蓝牙音箱与手机、车载设备等的连接应用,这些功能的重要性愈发凸显。本文将围绕蓝牙协议规范中 4.16 - 4.18 节的内容,详细解析音频连接向 HF 转移、音频连接向 AG 转移以及由 HF 提供号码发起外呼的相关流程、前提条件和信令交互。
一、核心功能矩阵
功能模块 | 控制指令 | 影响状态 | 耗时要求 |
音频转HF | AT+CHLD=1 | TRANSFER_HF | <500ms |
音频转AG | AT+CHLD=0 | TRANSFER_AG | <300ms |
HF发起拨号 | ATD[number] | CALL_SETUP | 网络依赖 |
二、音频连接向 HF 转移
2.1 转移概述
在进行中的通话里,音频路径能够从 AG 转移到 HF。这一过程实际上是 “音频连接建立” 流程的一种特殊情况。转移由用户在 HF 或者 AG 上的操作触发,最终会促使 HF 或者 AG 发起 “音频连接建立” 流程,将当前通话的音频路径路由到 HF。
2.2 前提条件
-
服务层连接:AG 和 HF 之间必须存在正在进行的服务层连接。若此连接不存在,发起 “音频连接向 HF 转移” 流程的一方需按正确流程自主建立服务层连接。
-
通话状态:AG 中存在正在进行的通话,且音频路径已路由到 AG 端。
2.3 适用情况
该流程仅适用于 HF 和 AG 之间当前没有建立音频连接的情况。因为若音频连接已经存在,就无需执行此流程,默认 AG 的音频路径已路由到 HF。
2.4 转移流程
当用户在 HF 或 AG 上发起操作后,相应设备会启动 “音频连接建立” 流程。具体步骤如下:
-
设备检查服务层连接是否存在,若不存在则进行建立。
-
发起音频连接建立请求,通过蓝牙协议中的相关信令进行交互。
-
将当前通话的音频路径从 AG 切换到 HF,确保音频数据能够正确传输。
2.5 注意事项
-
无现有音频连接:如果HF与AG之间已经存在音频连接,则无需进行音频连接转移,因为此时AG的音频路径已经路由到HF。
-
服务级连接的重要性:服务级连接是音频连接转移的前提条件。没有有效的服务级连接,音频连接转移将无法进行。
2.6 示例图
技术实现流程
三、音频连接向 AG 转移
3.1 转移概述
正在进行的通话的音频路径可以从 HF 转移到 AG。这一过程是 “音频连接释放” 流程的一种特殊情况。转移可由 HF 端的用户操作、AG 端的内部事件或用户操作触发,最终会促使 HF 或 AG 发起 “音频连接释放” 流程,同时保持当前通话并将音频路径路由到 AG。
3.2 前提条件
-
通话进行中:AG 中存在正在进行的通话。
-
音频连接:通过 AG 和 HF 之间建立的音频连接,HF 可以获取正在进行通话的音频路径。
3.3 特殊情况处理
若 HF 发起 “音频连接向 AG 转移” 流程后,AG 自主移除了现有的服务层连接,那么在当前通话结束后,AG 应尝试重新建立服务层连接。
3.4 转移流程
-
用户在 HF 或 AG 上发起操作,触发转移流程。
-
相应设备发起 “音频连接释放” 流程,通过信令通知对方。
-
释放 HF 端的音频连接,并将音频路径重新路由到 AG。
-
若服务层连接被移除,在通话结束后 AG 尝试重新建立。
3.5 注意事项
-
服务级连接的维护:如果由于HF发起的“音频连接转移至AG”程序导致现有服务级连接被AG自主移除,AG应在当前通话结束后尝试重新建立服务级连接。
-
音频路径的可用性:在进行音频连接转移之前,需要确保HF与AG之间已经建立了音频连接,并且HF设备上存在正在进行的通话音频路径。
3.6 示例图
四、通过HF提供号码拨打电话
4.1 外呼概述
通过HF提供号码拨打电话是指用户可以通过HF设备输入电话号码,并由HF设备将号码发送给AG设备进行拨号。这一功能使得用户无需直接操作手机即可实现拨打电话的操作,提高了通话的便捷性。
4.2 前提条件
-
服务层连接:AG 和 HF 之间必须存在正在进行的服务层连接。若不存在,HF 需按照正确流程自主建立服务层连接。
-
触发条件:用户通过在HF设备上输入电话号码并按下拨号键来触发拨号操作。HF设备将接收到的电话号码发送给AG设备进行处理。
4.3 外呼流程
①发起阶段
-
HF 检查服务层连接,若不存在则进行建立。
-
HF 向 AG 发送 ATDdd…dd; 命令,其中 “dd…dd” 为目标电话号码。
-
AG 接收到命令后,使用该电话号码启动通话建立流程,并发送 +CIEV 结果码(callsetup = 2)给 HF,通知其通话建立已成功发起。
②连接过程
-
若未建立音频连接,AG 在通话建立流程开始后立即建立合适的音频连接,并将外呼的音频路径路由到 HF。
-
当 AG 得知对方开始振铃时,发送 +CIEV 结果码(callsetup = 3)给 HF。若无线网络未向 AG 提供对方振铃的指示,AG 可不发送此指示。
③ 通话建立:当通话成功连接后,AG 发送 +CIEV 结果码(call = 1)给 HF。
④ 异常处理:若正常的外呼建立流程因任何原因中断,AG 发送 +CIEV 结果码(callsetup = 0)给 HF 通知此情况。
4.4 三方通话情况
若 AG 支持 “三方通话” 功能,且已有一个通话正在进行,执行此流程会将新的通话呼叫到第三方,同时将当前正在进行的通话保持。
三方通话时序:
状态管理矩阵:
当前状态 | 新拨号动作 | 结果状态 |
IDLE | ATD | CALL_ACTIVE |
ACTIVE | ATD+CHLD=2 | CALL_WAITING |
WAITING | ATD | CONFERENCE |
4.5 注意事项
-
服务级连接的重要性:与音频连接转移类似,服务级连接是通过HF提供号码拨打电话的前提条件。没有有效的服务级连接,拨号操作将无法进行。
-
拨号命令的格式:ATDdd…dd;命令是蓝牙HFP协议中规定的拨号命令格式。HF设备需要按照这一格式封装电话号码,并发送给AG设备进行处理。
-
拨号状态的通知:AG设备需要及时向HF设备通知拨号状态,以便用户了解拨号进度和通话状态。
4.6 示例图
五、信令交互详解
5.1 +CIEV 结果码
+CIEV 结果码在整个流程中起着关键的状态通知作用。不同的参数值代表不同的通话状态:
-
callsetup = 0:表示通话建立流程中断。
-
callsetup = 2:表示通话建立已成功发起。
-
callsetup = 3:表示对方开始振铃。
-
call = 1:表示通话已成功连接。
5.2 ATDdd…dd; 命令
这是 HF 向 AG 发送的用于发起外呼的命令,其中 “dd…dd” 为目标电话号码。AG 接收到该命令后,会使用此号码启动通话建立流程。
六、工程实现中的挑战与解决方案
6.1 服务层连接建立问题
-
挑战:在音频连接转移或外呼流程中,若服务层连接建立失败,会导致后续流程无法正常进行。
-
解决方案:增加重试机制,在建立失败后进行多次尝试;同时,对失败原因进行详细记录和分析,以便针对性地解决问题。
6.2 音频连接稳定性
-
挑战:在音频路径转移过程中,可能会出现音频卡顿、中断等问题,影响通话质量。
-
解决方案:优化音频编解码算法,提高音频数据的传输效率;增加缓冲区机制,减少数据丢失和延迟。
6.3 信令交互可靠性
-
挑战:+CIEV 结果码和 ATDdd…dd; 命令等信令在传输过程中可能会丢失或出错,导致状态同步不一致。
-
解决方案:采用确认机制,发送方在发送信令后等待接收方的确认回复;同时,对信令进行加密和校验,确保数据的完整性。
七、测试与验证
7.1 功能测试
-
验证音频连接向 HF 转移和向 AG 转移的功能是否正常。
-
测试由 HF 提供号码发起外呼的流程是否能够正确执行。
7.2 兼容性测试
-
测试不同品牌、型号的 AG 和 HF 设备之间的兼容性,确保在各种设备组合下都能正常工作。
7.3 稳定性测试
-
长时间运行音频连接转移和外呼流程,检查是否会出现异常中断或不稳定的情况。
7.4 常用测试号码
号码类型 | 测试号码 | 用途说明 |
回声测试 | 800800800 | 音频回路验证 |
多方通话 | *43# | 会议功能测试 |
紧急呼叫 | 112 | 优先级测试 |
八、应用场景与优化建议
8.1 车载蓝牙场景
在车载蓝牙系统中,用户可以方便地将手机(AG)上的通话音频转移到车载音响(HF)上,或者从车载音响转移回手机。为了提升用户体验,可以优化音频切换的速度和稳定性,减少切换过程中的卡顿。
8.2 蓝牙耳机场景
当用户使用蓝牙耳机(HF)与手机(AG)进行通话时,若需要临时切换到手机听筒,可通过音频连接转移功能实现。建议增加操作提示和反馈,让用户更清晰地了解转移状态。
8.3 外呼优化
在由 HF 发起外呼时,可以提供更便捷的拨号界面和联系人管理功能,提高外呼的效率。同时,对通话记录进行详细保存和分类,方便用户查询和管理。
九、未来发展趋势
9.1 智能化
随着人工智能技术的发展,蓝牙设备可以实现更智能的音频连接转移和外呼功能。例如,根据用户的使用习惯和场景自动进行音频路径切换,智能识别电话号码并提供相关信息。
9.2 多设备协同
未来的蓝牙设备可能会支持与更多类型的设备进行协同工作,实现更复杂的音频连接转移和外呼场景。例如,同时与多个蓝牙耳机、音箱等设备进行连接和音频切换。
9.3 低功耗优化
为了延长设备的续航时间,蓝牙协议可能会进一步优化音频连接转移和外呼流程中的功耗,采用更节能的技术和算法。
十、总结
蓝牙语音通信中的音频连接转移和外呼功能是提升用户体验的重要组成部分。通过深入理解协议规范中的相关内容,蓝牙工程师可以在实际开发中更好地实现这些功能,并解决可能遇到的问题。同时,关注未来的发展趋势,不断优化和创新,将为蓝牙设备的应用带来更广阔的前景。在实际开发过程中,严格按照协议规范进行设计和测试,确保系统的稳定性和兼容性,为用户提供高质量的蓝牙语音通信服务。
十一、参考文献
-
Bluetooth Core Specification Version 6.0
-
AT Command Set for Bluetooth SPP (RFCOMM)
-
Bluetooth SIG. Hands-Free Profile Specification.
相关文章:
【HFP】蓝牙HFP协议中音频连接转移与拨号功能的深度解析
目录 一、核心功能矩阵 二、音频连接向 HF 转移 2.1 转移概述 2.2 前提条件 2.3 适用情况 2.4 转移流程 2.5 注意事项 2.6 示例图 三、音频连接向 AG 转移 3.1 转移概述 3.2 前提条件 3.3 特殊情况处理 3.4 转移流程 3.5 注意事项 3.6 示例图 四、通过HF提供号…...
Android学习总结之Glide篇(缓存和生命周期)
一、Glide缓存 1. 内存缓存 内存缓存主要包含活动资源缓存与 LRU 内存缓存这两个级别。 活动资源缓存(Active Resources) 作用:用于存放当前正在被显示的图片资源。当某张图片正展示在 ImageView 上时,它会被纳入活动资源缓存…...
Python 快速获取Excel工作表名称
文章目录 前言准备工作Python 获取Excel中所有工作表的名称Python 获取Excel中隐藏工作表的名称 前言 在数据分析与办公自动化领域,通过Python处理Excel文件已成为必备技能。通过获取工作表名称,我们可以: 快速了解文件结构自动化处理多工作…...
基于Docker的Flask项目部署完整指南
基于Docker的Flask项目部署完整指南 项目结构与文件说明 TextWeb/ ├── .dockerignore # Docker构建忽略配置 ├── Dockerfile # Docker镜像构建文件 ├── requirements.txt # Python依赖清单 └── WebServer/└── main.py # Fl…...
分布式定时任务(xxl-job)
简介 什么是XXL-JOB 详细的文档类容可以看下面这个链接进入readme xxl-job简介以及下载地址 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展 在Java Spring Cloud微服务架构中,使用独立的定时任务调度中心&…...
PostgreSQL使用LIKE右模糊没有走索引分析验证
建表&数据初始化可参考PostgreSQL 分区表——范围分区SQL实践 背景: 给t_common_work_order_log的handle_user_name新建索引后,使用LIKE右模糊匹配查询时,发现走的全表扫描 CREATE INDEX order_log_handle_user_name_index ON t_commo…...
Jenkins流水线管理工具
文章目录 前言: DevOps时代的自动化核心 —Jenkins一、Jenkins是什么?二、Linux安装Jenkinswar包方式安装依赖环境下载 Jenkins WAR 包启动 Jenkins 服务启动日志验证配置插件镜像源 docker镜像方式安装依赖环境拉取 Jenkins 镜像运行 Jenkins 容器获取初…...
2025年保安员证考试题库及答案
一、单选题 96、手指出血,为达到止血作用,应该压住()。 A.出血手指的尖端 B.出血手指根部前后两侧 C.出血手指根部左右两侧 D.腕部的桡动脉、尺动脉 答案:C 97、下列选项中对干粉灭火器使用方法叙述错误的是&…...
观测云数据在Grafana展示的最佳实践
背景 在当今的数据驱动世界中,组织越来越依赖于实时数据来做出决策。数据可视化是理解和分析这些数据的关键工具,它帮助用户将复杂的数据集转换成直观的图表和仪表板,从而更容易识别趋势、模式和异常。Grafana,作为一个功能强大的…...
点云从入门到精通技术详解100篇-基于二次误差和高斯混合模型的点云配准算法
目录 知识储备 结合二次误差度量与高斯混合模型的点云配准 算法核心创新点: 关键参数说明: 性能优化建议: 前言 国内外研究现状 全局配准算法的国内外研究 局部配准算法的国内外研究 2 点云配准相关概念与方法 2.1 什么是点云配准 2.2 点云的获取及点云主要数据…...
shell命令一
&> /dev/null yum -y install vsftpd &> /dev/null&> /dev/null &>:将命令的**标准输出(stdout)和标准错误(stderr)**同时重定向。/dev/null:Linux中的“黑洞”设备…...
MySQL性能常用优化技巧总结
1. 索引优化 创建合适的索引 -- 为常用查询条件创建索引 ALTER TABLE users ADD INDEX idx_email (email); ALTER TABLE orders ADD INDEX idx_customer_date (customer_id, order_date);避免索引失效的情况 -- 避免在索引列上使用函数 SELECT * FROM users WHERE DATE(crea…...
在 Spring Boot 中实现 WebSockets
什么是 WebSockets? WebSockets 是一种基于 TCP 的全双工通信协议,允许客户端和服务器之间建立持久的双向连接,用于实时数据交换。相较于传统的 HTTP 请求-响应模型,WebSockets 提供了低延迟、高效率的通信方式,特别适…...
stone 3d v3.3.0版本发布,含时间线和连接器等新功能
1.新加了时间线(timeline)编辑器,可以类似blender一样给对象制作动画 2.新加了度量(metrics)系统,通过scene对象检测器中的useMetrics属性来启用或禁用,启用时所选物体将显示三维度量数据 新加了…...
Parasoft C++Test软件单元测试_对函数打桩的详细介绍
系列文章目录 Parasoft C++Test软件静态分析:操作指南(编码规范、质量度量)、常见问题及处理 Parasoft C++Test软件单元测试:操作指南、实例讲解、常见问题及处理 Parasoft C++Test软件集成测试:操作指南、实例讲解、常见问题及处理 进阶扩展:自动生成静态分析文档、自动…...
Safety Estimands与Efficacy Estimands的差异剖析
1. 研究目标差异 1.1 安全性估计目标 1.1.1 关注潜在风险 安全性估计目标着重于治疗可能引发的不良事件(AE)、严重不良事件(SAE)或实验室指标异常,如化疗药物导致中性粒细胞减少症的发生率,这些指标直接关联到患者治疗过程中的健康风险。 这些潜在风险的评估对于确保治…...
HTML 详解:从基础结构到语义标签
目录 一、HTML 是什么?二、HTML 的基本结构✅ 简要说明: 三、常见 HTML 标签讲解3.1 标题标签 <h1> ~ <h6>3.2 段落和换行3.3 超链接3.4 图像插入3.5 列表无序列表:有序列表: 3.6 表格结构 四、HTML 语义化标签详解五…...
联合索引`ABC`,使用`B=... AND C=... AND A=...`会走索引吗?
在MySQL中,联合索引ABC的查询使用B... AND C... AND A...时,是否使用索引取决于查询条件的顺序和优化器的处理。 一、索引使用原理 最左前缀原则 联合索引的底层存储和查询优化遵循最左前缀匹配原则,即查询条件必须从索引的最左侧列开始连续匹…...
HTML 模板技术与服务端渲染
HTML 模板技术与服务端渲染 引言 在现代前端开发生态中,HTML模板技术与服务端渲染(SSR)构成了连接前后端的重要桥梁。当单页应用(SPA)因其客户端渲染特性而面临首屏加载速度慢、白屏时间长和SEO不友好等问题时,服务端渲染技术提供了一种优雅的解决方案…...
MySQL的MVCC【学习笔记】
MVCC 事务的隔离级别分为四种,其中Read Committed和Repeatable Read隔离级别,部分实现就是通过MVCC(Multi-Version Concurrency Control,多版本并发控制) 版本链 版本链是通过undo日志实现的, 事务每次修改…...
linux安装单节点Elasticsearch(es),安装可视化工具kibana
真的,我安装个es和kibana,找了好多帖子,问了好几遍ai才安装成功,在这里记录一下,我相信,跟着我的步骤走,99%会成功; 为了让大家直观的看到安装过程,我把我服务器的es和ki…...
(Go Gin)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
1. 路由 gin 框架中采用的路优酷是基于httprouter做的 HttpRouter 是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。 主要特点 显式匹配:与其他路由…...
纯HTMLCSS静态网站——元神
《原神》主题网页介绍 以对该网页的详细介绍 网页整体结构 头部(header):包含网站的 logo 和导航栏。logo 部分展示了 “原神” 字样,点击可返回首页。导航栏提供了多个页面链接,包括首页、音乐、视频、壁纸、世界、…...
嵌入式开发:基础知识介绍
一、嵌入式系统 1、介绍 以提高对象体系智能性、控制力和人机交互能力为目的,通过相互作用和内在指标评价的,嵌入到对象体系中的专用计算机系统。 2、分类 按其形态的差异,一般可将嵌入式系统分为:芯片级(MCU、SoC&am…...
华为VRP系统简介配置TELNET远程登录!
1.华为 VRP 系统概述 1.1 什么是 VRP VRP(Versatile Routing Platform 华为数通设备操作系统)是华为公司数据通信产品的通用操作系统平台,从低端到核心的全系列路由器、以太网交换机、业务网关等产品的软件核心引擎。 1.2 VRP 的功能 统一…...
【高频考点精讲】CSS accent-color属性:如何快速自定义表单控件的颜色?
用CSS accent-color属性3分钟搞定表单控件换肤,原来这么简单! 前几天有个学员问我,checkbox和radio这些表单控件默认样式太丑了,有没有什么办法能快速改颜色?" 我一看这问题就乐了——这不正是CSS accent-color属性的拿手好戏吗?今天咱们就来好好聊聊这个被低估的C…...
【Git】连接github时的疑难杂症(DNS解析失败)
大家好,我是jstart千语。最近在将项目推送到github的时候,突然github就拒绝访问了,即使挂了VPN,网页也进不去,通过git也不能把代码推送上去。 即使后面看别人的一些解决方案,比如取消代理啊、更换ssh的方式…...
成熟的前端vue vite websocket,Django后端实现方案包含主动断开websocket连接的实现
可参考实现方式点击进入查看 具体实现方案如下所示: import { useWebsocketMsessageStore } from /stores/websocketMsessageStore.js import {ElMessage} from "element-plus"; import {useUserStore} from "/stores/userStore.js"; // impo…...
广州 3D 展厅开启企业展示新时代
为了突破传统展厅的局限,满足企业日益增长的展示需求,3D 展厅应运而生。3D 展厅是利用虚拟现实(VR)、增强现实(AR)和三维建模等先进技术,构建出的一个高度逼真的数字化展示空间 。它打破了传统展…...
【Django】新增字段后兼容旧接口 This field is required
背景 我在Django模型里新增了两个字段后,旧的接口由于没有同时新增这两个字段的处理,因此旧的接口就报: This field is required 解决 把序列化时的 required 的字段设置为False即可 class ServiceSerializer(DynamicFieldsModelSerializ…...
基于AIGC的3D场景生成实战:从文本描述到虚拟世界构建
一、3D AIGC技术解析 1.1 技术挑战与突破 挑战维度 传统方案局限 AIGC创新方案 建模效率 人工建模耗时数天 文本到3D秒级生成 细节丰富度 重复使用素材库 无限风格化生成 物理合理性 手动调整物理参数 自动符合物理规律 多平台适配 需手动优化模型 自适应LOD生成 1.2 主流技术路…...
手写Java线程池与定时器:彻底掌握多线程任务调度
目录 一、线程池 1.1、什么是线程池 1.2、Java标准库中的线程池 1.3、ThreadPoolExecutor的七大参数 1.4、模拟实现线程池 1.4.1、submit () 1.4.2、构造方法 1.4.3、运行结果 二、定时器 2.1、标准库中的定时器 2.2、模拟实现定时器 2.2.1、MyTimerTask类 2…...
【科研绘图系列】R语言绘制区间点图(dot plot)
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图1画图2输出图片系统信息介绍 【科研绘图系列】R语言绘制区间点图(dot plot) 加载R包 library(tidyverse) library(ggtext) library(r…...
【Agent实战】从0到1开发一个Python 解释器 MCP SSE Server
写在前面 想象一个场景:LLM Agent(如 AutoGPT、MetaGPT 或我们自己构建的 Agent)在规划任务后,决定需要运行一段 Python 代码来处理数据或调用某个 API。它不能直接在自己的环境中执行(通常不具备这个能力,也不安全),而是需要将这段代码发送给一个专门的外部服务来执行…...
C语言大写转小写2.0
一、阐述关系 上一次的题目是大写转小写,这一次代码不一样,运行的结果也不一样,这次的代码在此基础之上改动了一下,虽然看起来相似,但实际上运行结果不一样 二、题目展示 下面代码中,运行的结果是多少? 三、分析过程 首先,进入main函数,先声明了一个字符型数组是"012…...
pnpm常见报错解决办法
PS D:\code\gitlab\manus-web> pnpm add -D types/framer-motion --save-exact --config.strict-peer-depsfalse Debugger attached. WARN deprecated eslint8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other op…...
【Linux网络】:套接字之UDP
一、UDP和TCP协议 TCP (Transmission Control Protocol 传输控制协议)的特点: 传输层协议有连接(在正式通信前要先建立连接)可靠传输(在内部帮我们做可靠传输工作)面向字节流 UDP (U…...
量子威胁下的安全革命:后量子密码学技术路线与迁移挑战全解析
引言 量子计算技术的快速发展正在重塑现代密码学的安全版图。随着Shor算法对传统公钥密码体系的根本性威胁[1],全球范围内后量子密码学(Post-Quantum Cryptography, PQC)的研究与标准化进程已进入关键阶段。 本文基于权威文献分析,…...
多模态大语言模型(MLLM)- kimi-vl technical report论文阅读
前言 kimi-vl是月之暗面团队于2025年4月10日发布的多模态大模型。 代码链接:https://github.com/MoonshotAI/Kimi-VL 背景 随着人工智能技术的快速发展,人们对AI助手的需求已从单一文本交互转向多模态理解。新一代多模态模型如GPT-4o和Gemini虽展现…...
ai聊天流式响应,阻塞式和流式响应 nginx遇到的坑
问题 现在做ai的流式请求,在开发环境使用代理访问接口,显示是正常的。上到正式环境,代理通过nginx配置可以访问到流式接口。在本地测试postman请求流式接口,返回的东西是流式返回, 在正式环境里面使用postman请求流式…...
Linux安全模块:SELinux与AppArmor深度解析
引言 在Linux安全领域,SELinux和AppArmor就像两位忠诚的"系统保镖"💂,为你的服务器提供强制访问控制(MAC)保护!本文将深入解析这两大安全模块的工作原理、配置方法和实战技巧。无论你是要加固Web服务器,还是…...
FlinkJobmanager深度解析
1. JobManager 概述 Flink 是一个分布式流处理框架,其核心组件包括 JobManager、TaskManager 和客户端(如 CLI 或 Web UI)。JobManager 是 Flink 集群的“大脑”,负责协调作业的整个生命周期,包括作业调度、资源管理、…...
FlinkSql入门与实践
一、为什么需要 Flink SQL? 传统 SQL 是面向静态数据的查询语言,而现代实时业务要求对动态数据流进行即时分析。Flink SQL 应运而生,它让开发者无需编写复杂的状态管理代码,就能实现实时ETL、复杂事件处理(CEP&#x…...
【物联网】基于LORA组网的远程环境监测系统设计(ThingsCloud云平台版)
演示视频: 基于LORA组网的远程环境监测系统设计(ThingsCloud云平台版) 前言:本设计是基于ThingsCloud云平台版,还有另外一个版本是基于机智云平台版本,两个设计只是云平台和手机APP的区别,其他功能都一样。如下链接: 【物联网】基于LORA组网的远程环境监测系统设计(机…...
C++中指针Ptr(一级指针、二级指针)的基本使用详解(1)
C 中的指针是非常强大的工具,理解一级指针、二级指针以及它们与数组的关系,对于写出高效且安全的程序非常重要。下面我将从基础讲起,详细解释 一级指针、二级指针 的使用,注意事项,以及它们和数组之间的联系与区别&…...
科技赋能建筑新未来:中建海龙模块化建筑产品入选中国建筑首批产业化推广产品
在建筑工业化浪潮中,中国建筑国际集团旗下中建海龙科技有限公司(以下简称“中建海龙”)致力以科技创新赋能传统建造转型升级,大力发展新质生产力,促进科技成果在建筑产业体系化、规模化应用,面向“产品化、…...
示例:Spring JDBC 声明式事务(xml配置形式)
声明式事务是指在不修改源代码的情况下通过配置applicationContext.xml自动实现事务控制,其本质是AOP环绕通知。它的触发时机为:1、当目标方法执行成功时自动提交事务,2、当目标方法抛出运行时异常时,自动事务回滚 核心步骤示例&a…...
java多线程(7.0)
目录 编辑 定时器 定时器的使用 三.定时器的实现 MyTimer 3.1 分析思路 1. 创建执行任务的类。 2. 管理任务 3. 执行任务 3.2 线程安全问题 定时器 定时器是软件开发中的一个重要组件. 类似于一个 "闹钟". 达到一个设定的时间之后, 就执行某个指定好的…...
sgpt在kali应用
Kali Linux 下 sgpt 渗透测试相关案例 1. 扫描目标主机存活 sgpt -s "使用 nmap 扫描 192.168.1.100 是否存活"示例命令: nmap -sn 192.168.1.1002. 扫描目标主机开放端口和服务 sgpt -s "使用 nmap 扫描 192.168.1.100 常见端口和服务"示例…...
小白电路设计-设计11-恒功率充电电路设计
介绍 作为电子信息工程的我,电路学习是一定要学习的,可惜目前作为EMC测试工程师,无法兼顾太多,索性不如直接将所学的知识进行运用,并且也可以作为契机,进行我本人的个人提升。祝大家与我一起进行提升。1.本…...