【0x006D】HCI_Write_LE_Host_Support命令详解
目录
一、命令概述
二、命令格式及参数说明
2.1. HCI_Write_LE_Host_Support命令格式
2.2. LE_Supported_Host
三、生成事件及参数
3.1. HCI_Command_Complete 事件
3.2. Status
四、命令执行流程
4.1. 命令发起阶段(主机端)
4.2. 命令处理阶段(蓝牙控制器端)
4.3. 命令反馈阶段
4.4. 示例代码
五、使用场景
5.1. 设备初始化阶段
5.2. 功能切换场景
5.3. 兼容性和测试场景
六、注意事项
6.1. 参数设置要点
6.2. 设备状态与兼容性考量
6.3. 命令执行及反馈处理
6.4. 综合保障措施
HCI_Write_LE_Host_Support
命令用于设置低功耗蓝牙(Low Energy, LE)主机支持的链路管理协议(Link Manager Protocol, LMP)功能位。以指示设备是否支持低功耗蓝牙主机功能。
一、命令概述
HCI_Write_LE_Host_Support
命令用于设置LMP特征掩码中的低功耗蓝牙主机支持位。根据蓝牙核心规范的描述,这个特征位的默认值是禁用的。当LE_Supported_Host
被设置为启用时,LMP特征掩码中相应的位将被设置,表明设备支持低功耗蓝牙主机功能。
这个命令通常在蓝牙设备的初始化过程中使用,或者当设备需要动态地启用或禁用低功耗蓝牙主机支持时使用。通过修改这个设置,设备可以调整其行为,以更好地适应不同的应用场景或兼容性需求。
二、命令格式及参数说明
2.1. HCI_Write_LE_Host_Support命令格式
HCI_Write_LE_Host_Support命令的格式遵循蓝牙核心规范中定义的HCI(Host Controller Interface)命令格式。
其基本格式如下:
- HCI_type:1个字节,标识命令的类型。对于HCI命令包,该字段的值通常为0x01。
- OpCode:2个字节,用于唯一标识命令的操作码(Opcode)。这个操作码由操作码组字段(OGF)和操作码命令字段(OCF)组成。
- OGF:占用高6位字节,表示命令所属的组。
- OCF:占用低10位字节,表示在特定组内的命令。
- ParamLength:1个字节,表示后续参数的长度。对于HCI_Write_LE_Host_Support命令,参数长度通常为2个字节(包括LE_Supported_Host和Unused两个参数)。
- Parameters:命令的核心部分,用于传递具体的设置信息。对于HCI_Write_LE_Host_Support命令,参数包括:
- LE_Supported_Host:1个字节,一个布尔值,用于指示是否启用低功耗蓝牙主机支持。值为0x00时表示禁用,值为0x01时表示启用。
- Unused:1个字节,一个未使用的参数,通常设置为0x00。
2.2. LE_Supported_Host
LE_Supported_Host 参数主要用于主机(Host)对链路管理协议中的低功耗蓝牙(LE)支持功能位进行读取和设置。
0x00
:LE Supported(Host)被禁用(默认值)。意味着设备不支持作为低功耗蓝牙(LE)的主机功能。0x01
:LE Supported(Host)被启用。表示设备支持作为低功耗蓝牙的主机功能,可以发起LE连接、管理LE连接等。
这一功能位的具体定义和操作细节参考蓝牙协议文档 [Vol 2] Part C, Section 3.2。
三、生成事件及参数
3.1. HCI_Command_Complete 事件
当HCI_Write_LE_Host_Support
命令成功执行完毕后,蓝牙主机会生成一个HCI_Command_Complete
事件。
HCI_Command_Complete
是一个标准的事件类型,用于通知主机之前发送的HCI命令已经成功执行并完成了其预期的操作。
-
事件内容:
- 事件码:具有一个特定的事件码,用于标识这是一个命令完成事件。
- 参数总长度:指示整个事件携带的参数部分的总长度。
- 命令操作码:之前发送的
HCI_Write_LE_Host_Support
命令的操作码,用于确认是哪个命令完成了。 - 状态:表示命令执行的结果状态。如果命令成功执行,则状态码通常为0x00。如果命令执行失败,则状态码将指示失败的原因。
- 返回参数(如果有):对于
HCI_Write_LE_Host_Support
命令,通常没有额外的返回参数。
3.2. Status
Status状态码是HCI_Command_Complete
事件中的一个关键部分,用于指示HCI_Write_LE_Host_Support
命令的执行结果。
0x00
:HCI_Write_LE_Host_Support
命令成功执行。意味着蓝牙控制器已经成功接收到命令,并且已经根据命令中的参数更新了其配置。0x01
至0xFF
:HCI_Write_LE_Host_Support
命令执行失败。这些值表示不同的错误代码,每个代码都对应一个特定的错误情况。蓝牙Controller错误代码全面概览_蓝牙错误代码-CSDN博客
四、命令执行流程
4.1. 命令发起阶段(主机端)
- 准备参数
- 主机确定
LE_Supported_Host
参数的值(0x00禁用,0x01启用)。 - 填充
Unused
参数(通常为0x00,因为目前未使用)。
- 主机确定
- 构建命令数据包
- 使用命令操作码(OCF)0x006D。
- 按规定格式添加
LE_Supported_Host
和Unused
参数。 - 假设小端序传输,命令数据包可能为
6D 00 01 00
。
- 发送命令
- 通过HCI接口发送构建好的命令数据包给蓝牙控制器。
- 涉及物理层和链路层传输,确保命令准确到达。
4.2. 命令处理阶段(蓝牙控制器端)
- 接收并解析命令
- 控制器接收命令数据包,检查完整性和正确性。
- 解析命令,提取操作码和参数(
LE_Supported_Host
和Unused
)。
- 执行命令操作
- 根据
LE_Supported_Host
值设置LE支持(主机)功能位。 - 可能涉及更新内部寄存器、配置链路管理模块等。
- 根据
- 检查执行情况并生成状态码:检查操作是否成功,生成状态码(0x00表示成功,0x01-0xFF表示失败)。
4.3. 命令反馈阶段
- 生成事件和状态反馈
- 控制器生成
HCI_Command_Complete
事件,包含状态码。 - 通过HCI接口传输给主机。
- 控制器生成
- 主机接收并处理反馈
- 主机接收
HCI_Command_Complete
事件和状态码。 - 根据状态码判断命令是否成功执行。
- 成功则进行后续LE相关操作,失败则根据错误代码采取措施。
- 主机接收
4.4. 示例代码
以下是一个简化的C语言代码示例,用于展示如何在一个蓝牙HCI实现中发送HCI_Write_LE_Host_Support
命令。请注意,这个示例并不包含完整的蓝牙HCI协议栈实现,而是专注于展示如何构建和发送该特定命令。
#include <stdint.h>
#include <stdio.h>
#include <string.h>// 假设有一个发送HCI命令的函数
// 这个函数在实际应用中应该由蓝牙HCI库或驱动程序提供
extern int hci_send_command(const uint8_t *data, uint16_t length);// HCI_Write_LE_Host_Support命令的操作码
#define HCI_WRITE_LE_HOST_SUPPORT_OCF 0x006D
#define HCI_WRITE_LE_HOST_SUPPORT_OGF 0x03 // OGF for LE Controller Commands// 构建并发送HCI_Write_LE_Host_Support命令
int send_hci_write_le_host_support(uint8_t le_supported_host) {// 命令数据包:OGF(1字节)+ OCF(1字节)+ 参数(2字节)uint8_t command[4];// 设置OGF和OCFcommand[0] = (HCI_WRITE_LE_HOST_SUPPORT_OGF << 2) | 0x01; // OGF在高位,Bit 3-0为命令类型(0x01表示命令)command[1] = HCI_WRITE_LE_HOST_SUPPORT_OCF;// 设置参数:LE_Supported_Host(1字节)+ Unused(1字节)command[2] = le_supported_host;command[3] = 0x00; // Unused参数,目前未使用// 发送命令int result = hci_send_command(command, sizeof(command));if (result < 0) {// 发送失败fprintf(stderr, "Failed to send HCI_Write_LE_Host_Support command\n");return -1;}// 注意:这里并没有等待或处理HCI_Command_Complete事件的代码// 在实际应用中,需要实现一个机制来接收并处理该事件return 0;
}int main() {// 启用低功耗蓝牙(LE)主机支持int status = send_hci_write_le_host_support(0x01);if (status == 0) {printf("HCI_Write_LE_Host_Support command sent successfully\n");} else {printf("Failed to send HCI_Write_LE_Host_Support command\n");}// 注意:在实际应用中,需要继续等待并处理HCI_Command_Complete事件// 以确定命令是否真正成功执行return status;
}
这个示例代码是为了教学目的而编写的,并且可能需要根据你的具体需求进行调整。
五、使用场景
5.1. 设备初始化阶段
- 多功能设备配置
- 在支持经典蓝牙和低功耗蓝牙(LE)的多功能设备中,
HCI_Write_LE_Host_Support
命令用于根据用户设置或默认策略决定是否开启低功耗蓝牙主机支持功能。 - 例如,智能手机在系统初始化蓝牙模块时,会使用此命令来设置低功耗蓝牙功能是否启用。
- 在支持经典蓝牙和低功耗蓝牙(LE)的多功能设备中,
- 单一功能设备启动:对于专门的低功耗蓝牙设备(如智能手环、无线耳机),在开机初始化过程中,该命令用于确保设备能够正常开启低功耗蓝牙主机支持功能,从而与其他蓝牙设备建立连接并进行数据传输。
5.2. 功能切换场景
- 节能模式调整
- 当设备需要进入节能模式时,可以通过
HCI_Write_LE_Host_Support
命令关闭低功耗蓝牙主机支持功能,以延长电池寿命。 - 例如,物联网传感器设备在电量较低时,可以关闭低功耗蓝牙功能以节省能源。
- 当设备需要进入节能模式时,可以通过
- 连接类型切换
- 在复杂的蓝牙应用场景中,设备可能需要在经典蓝牙连接和低功耗蓝牙连接之间进行切换。此时,该命令用于开启或关闭低功耗蓝牙主机支持功能,以适应不同的连接需求。
- 例如,车载蓝牙系统可以在传输大量音乐数据时使用经典蓝牙连接,而在传输简单控制指令时切换到低功耗蓝牙连接。
5.3. 兼容性和测试场景
- 设备兼容性验证:在蓝牙设备的开发和测试过程中,
HCI_Write_LE_Host_Support
命令用于验证设备的兼容性。测试人员可以通过设置低功耗蓝牙主机支持功能的开启和关闭状态,检查设备在不同设置下与其他设备的连接和通信情况。 - 协议一致性测试:为了确保蓝牙设备遵循蓝牙协议标准,测试工具可以使用此命令来测试设备对低功耗蓝牙主机支持功能设置的响应是否符合协议规定。有助于保证设备在不同的蓝牙生态系统中的互操作性。
六、注意事项
使用 HCI_Write_LE_Host_Support 命令,需从多方面留意。
6.1. 参数设置要点
- LE_Supported_Host 参数:掌控低功耗蓝牙(LE)主机功能的启用与否,仅能取
0x00
(禁用)与0x01
(启用),编程时要设边界检查,防错设,规避不可预测状况 。 - Unused 参数:虽当下闲置,但构建命令包得按协议格式填充,常填默认值(如全
0
),维持格式兼容,以防传输、解析出错。 - 整体命令格式:遵循蓝牙 HCI 协议要求,保证 OGF、OCF 等关键字段无误,保障命令规范。
6.2. 设备状态与兼容性考量
- 设备状态:发令前,确认蓝牙设备处于可配置状态,避开忙碌时段,防止命令发送失败。
- 兼容性:不同品牌、型号的蓝牙设备对该命令支持有别,使用前参考官方资料,核实设备能否支持。
6.3. 命令执行及反馈处理
- 执行:发出命令后,等待蓝牙控制器回应,成功有对应成功事件,失败则返回错误事件。
- 反馈:收到响应,依事件码、参数判断执行情况,失败就排查参数、状态,或重发命令。
6.4. 综合保障措施
- 文档查阅:用前查蓝牙 HCI 协议、设备规格书,明晰命令详情与注意点。
- 测试验证:投入使用前,充分测试,保证命令准确、可靠。
- 更新维护:随蓝牙技术迭代,留意固件、技术支持动态,维持设备兼容性与性能。
综上所述,HCI_Write_LE_Host_Support
命令是蓝牙设备配置中的一个重要部分,它允许设备动态地启用或禁用低功耗蓝牙主机支持功能。正确理解和使用这个命令,有助于更好地控制和优化蓝牙设备的行为。
相关文章:
【0x006D】HCI_Write_LE_Host_Support命令详解
目录 一、命令概述 二、命令格式及参数说明 2.1. HCI_Write_LE_Host_Support命令格式 2.2. LE_Supported_Host 三、生成事件及参数 3.1. HCI_Command_Complete 事件 3.2. Status 四、命令执行流程 4.1. 命令发起阶段(主机端) 4.2. 命令处理阶段…...
尚硅谷· vue3+ts 知识点学习整理 |14h的课程(持续更ing)
vue3 主要内容 核心:ref、reactive、computed、watch、生命周期 常用:hooks、自定义ref、路由、pinia、miit 面试:组件通信、响应式相关api ----> 笔记:ts快速梳理;vue3快速上手.pdf 笔记及大纲 如下ÿ…...
【JAVA】Java开发小游戏 - 简单的2D平台跳跃游戏 基本的2D平台跳跃游戏框架,适合初学者学习和理解Java游戏开发的基础概念
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...
C++ constexpr(八股总结)
答:这个关键字用于指示一个变量、函数或者对象可以在编译时求值(即它们是常量表达式)。这意味着当程序编译时,编译器会尝试计算出该表达式的值,而不是在程序运行时计算它,从而提高了程序的性能。 常量表达…...
继承(5)
大家好,今天我们继续来学习继承的相关知识,来看看子类构造方法(也叫做构造器)是如何做的。 1.6 子类构造方法 父子父子,先有父再有子,即:子类对象构选时,需要先调用基类构造方法,然后执行子类的构造方法 ★此时虽然执行了父类的…...
Oracle Dataguard(主库为 RAC 双节点集群)配置详解(1):安装 Oracle11g RAC 双节点集群
Oracle Dataguard(主库为 RAC 双节点集群)配置详解(1):安装 Oracle11g RAC 双节点集群 目录 Oracle Dataguard(主库为 RAC 双节点集群)配置详解(1):安装 Orac…...
基于Matlab的变压器仿真模型建模方法(13):单相升压自耦变压器的等效电路和仿真模型
1.单相升压自耦变压器的基本方程和等效电路 单相升压自耦变压器的接线原理图如图1所示。在建立自耦变压器的基本方程时,仍然把它看成是从双绕组变压器演变而来。在图1中,设节点a到节点b部分的绕组的匝数为,对应于双绕组变压器的原边绕组;节点c到节点a部分的绕组的绕组匝数为…...
ffmpeg 常用命令
更详细请参考ffmpeg手册,下载ffmpegrelease版后在doc中就有,主页面。video filter 参考ffmpeg-filters.html -version -formats -demuxers -protocols -muxers -filters -devices —pix_fmts -codecs -sample_fmts -decoders -layouts -encoders -colors…...
c#集成itext7导出pdf,包含表格
在Nuget解决方案中搜索itext7,进行安装 同时还要安装 itext7.bouncy-castle-adapter。 否则 PdfWriter writer new PdfWriter(pdfOutputPath);执行时会报错unknown PdfException,然后生成一个空白的pdf,且显示已损坏。 捕获异常发现 ex.In…...
STM32-WWDG/IWDG看门狗
WWDG/IWDG一旦开启不能关闭,可通过选项字节在上电时启动硬件看门狗,看门狗计数只能写入不能读取。看门狗启用时,T6bit必须置1,防止立即重置。 一、原理 独立看门狗-超时复位 窗口看门狗-喂狗(重置计数器,…...
后台管理系统引导功能的实现
引导是软件中经常见到的一个功能,无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言,它是如何实现的呢?通常情况下引导页是通过 聚焦 的方式,高亮一块视图,然后通过文字解释的形式来告知用户该功能的作…...
Flink如何设置合理的并行度
一个Flink程序由多个Operator组成(source、transformation和 sink)。 一个Operator由多个并行的Task(线程)来执行, 一个Operator的并行Task(线程)数目就被称为该Operator(任务)的并行度(Parallel)。即并行度就是相对于Operator来说的。 合理设置并行度可以有效提高Flink作业…...
【JMeter】单接口
1. HTTPS接口 前置准备: 下载被测网站的证书在cmd利用java工具keytool.exe重新生成store证书 先进入存放该程序的盘 使用命令: keytool -import -alias "xxxx.store" -file "D:\xxx.cer" -keystore xx.store 根据提示信任证书 在JMeter菜…...
安科瑞Acrel-1000DP分布式光伏监控系统在浙江安吉成3234.465kWp分布式光伏发电项目中的应用
摘 要:分布式光伏发电站是指将光伏发电组件安装在用户的建筑物屋顶、空地或其他适合的场地上,利用太阳能进行发电的一种可再生能源利用方式,与传统的大型集中式光伏电站相比,分布式光伏发电具有更灵活的布局、更低的建设成本和更高…...
电子应用设计方案87:智能AI收纳箱系统设计
智能 AI 收纳箱系统设计 一、引言 智能 AI 收纳箱系统旨在为用户提供更高效、便捷和智能的物品收纳与管理解决方案,通过融合人工智能技术和创新设计,提升用户的生活品质和物品整理效率。 二、系统概述 1. 系统目标 - 实现物品的自动分类和整理…...
C++泛型编程:多参数函数模版、动态数组类
在多参数函数模版中,有以下几点: 第一点是函数模版支持多个类型参数 第二点是一旦有类型不能推导,就会导致编译失败 第三点是返回值类型无法作为推导依据 其中第二点和第三点,在下面代码中有体现,首先是第三点&…...
点亮一个esp32 的led
最近入了一个ESP32 兄弟们,这玩意还可以,买来肯定是给它点亮啊对吧 我就是点灯侠🎇 😭千万不要不接天线啊,不然你会一直找不到你的wifi 1.点灯第一步你得有IDE Arduino 就是这个绿东西 可是怎么下载安装呢ÿ…...
【计算机视觉】单目深度估计模型-Depth Anything-V2
概述 本篇将简单介绍Depth Anything V2单目深度估计模型,该模型旨在解决现有的深度估计模型在处理复杂场景、透明或反射物体时的性能限制。与前一代模型相比,V2版本通过采用合成图像训练、增加教师模型容量,并利用大规模伪标签现实数据进行学…...
新年感悟:2025年1月7日高铁随想
2025年1月7日,乘坐在从珠海去广州南的C7676高铁上,突然悟明白两个事情。 首先,不管学习任何东西,总结是一个非常关键的经验。以前,总是幻想着能找到一本书,或者一个特别优秀的老师,仅仅通过看看…...
C++ 入门第25天:线程池(Thread Pool)基础
往期回顾: C 学习第22天:智能指针与异常处理-CSDN博客 C 入门第23天:Lambda 表达式与标准库算法入门-CSDN博客 C 入门第24天:C11 多线程基础-CSDN博客 C 入门第25天:线程池(Thread Pool)基础 前…...
嵌入式驱动开发详解10(MISC杂项实现)
文章目录 前言MISC设备驱动简介重要结构体API函数MISC实现框架后续参考文献 前言 MISC 驱动也叫做杂项驱动,也就是当我们板子上的某 些外设无法进行分类的时候就可以使用 MISC 驱动。MISC 驱动其实就是最简单的字符设备驱 动,通常嵌套在 platform 总线驱…...
CSS语言的编程范式
CSS语言的编程范式 前言 随着互联网的快速发展,前端开发逐渐演变为一个复杂而多元化的领域。作为前端开发的重要组成部分,CSS(层叠样式表)在网页设计和用户体验中扮演着至关重要的角色。CSS不仅仅是一种样式表语言,更…...
游戏引擎学习第77天
仓库: https://gitee.com/mrxiao_com/2d_game 回顾昨天的 bug 今天我们继续开发进度,进行调试昨天代码的问题,主要是关于如何跟踪玩家和敌人在世界中的高度位置。虽然我们做的是一款 2D 游戏,但我们希望能够处理多层的房间,玩家…...
Python编程实例-机器学习中的Hinge Loss编程实现
机器学习中的Hinge Loss编程实现 文章目录 机器学习中的Hinge Loss编程实现1、机器学习中的损失函数是什么?2、什么是 Hinge Loss?3、Hinge Loss如何工作?4、Hinge Loss的优缺点5、Python语言实现6、总结Hinge Loss(铰链损失)在分类任务中至关重要,广泛应用于支持向量机 …...
算法练习----2025/1/7
题目 计算素数函数f(N)代表素数的个数小于等于N例如 f(17)7 , 因为前7个素数为 2,3,5,7,11,13,17思路 1、首先创建一个布尔类型的数组(Python 中用列表模拟)来标记每个数是否为素…...
【C++】穿越编程岁月,细品C++进化轨迹,深化入门基石(续章)——揭秘函数缺省参数的魅力、函数重载的艺术、引用的奥秘与内联函数的效率
文章目录 一、函数缺省参数二、函数重载三、引用1.引用的概念和定义2.引用的特性3.引用的使用4.const引用5.指针和引用的关系 四、inline内联函数和nullptr1.inline2.nullptr 一、函数缺省参数 缺省参数其实就是默认参数,它是声明或定义函数时为函数的参数指定⼀个缺…...
1/7 Spring三级缓存
首先我们来spring创建bean首先通过反射创建bean原始对象,然后通过 填充里面的属性,然后如果有AOP的话,那么就会创建这个代理对象,最后将代理对象传入这个单例池中 如何解决循环依赖问题的 比如A依赖B,B依赖A 如果在单例池没有找…...
【RK3568笔记】Android修改开机动画
概述 Android 的开机动画是由一系列连续的 PNG 图片作为帧组成的动画形式,不是一张 GIF 图片。将各帧 PNG 图片以压缩方式进行保存(压缩方式要求是存储压缩),并将保存的文件名命名为 bootanimation.zip,这个 bootanim…...
牛客网刷题 ——C语言初阶(5操作符)——JZ15 二进制中1的个数
1.题目描述 题目OJ链接 描述 输入一个整数 n ,输出该数32位二进制表示中1的个数。其中负数用补码表示。 2.思路 求2进制中1的个数,可以转换为求每一位,1的个数,1&1还是1 所以判断如果该数值&1为真,我们就co…...
Lua语言中常用的字符串操作函数
string.sub(s, i, j) 功能: 截取字符串 s 中从位置 i 到位置 j 的子字符串。 local s "Hello, Lua!" print(string.sub(s, 1, 5)) -- 输出 "Hello" print(string.sub(s, 8, 11)) -- 输出 "Lua!" string.len(s) 功能:将字符串长度…...
SpringBoot 2.6 集成es 7.17
引言 在现代应用开发中,Elasticsearch作为一个强大的搜索引擎和分析引擎,已经成为许多项目不可或缺的一部分。Spring Boot作为Java生态中最受欢迎的微服务框架之一,其对Elasticsearch的支持自然也是开发者关注的焦点。本文将详细介绍如何在S…...
Elasticsearch:搜索相关性
这里写目录标题 一、相关性的概述二、自定义评分策略1、TF-IDF算法2、BM25算法 三、自定义评分策略1、Index Boost:在索引层面修改相关性2、boosting:修改文档相关性3、negative_boost:降低相关性4、function_score:自定义评分5、…...
nlp培训重点-2
1. 贝叶斯公式 import math import jieba import re import os import json from collections import defaultdictjieba.initialize()""" 贝叶斯分类实践P(A|B) (P(A) * P(B|A)) / P(B) 事件A:文本属于类别x1。文本属于类别x的概率,记做…...
Python判断、循环练习
01 02 03...
基于ROS先验地图的机器人自主定位与导航SLAM
2021年学习,当时参加科大讯飞的智能车大赛, 【语音交互启动-teb算法路径规划A*算法自动避障路径最短优化yolo5目标检测视觉结果判断分类终点指定点位自动泊车语音播报。】 【讯飞学院】http://www.iflyros.com/home/ 一、全局路径规划中的地图 栅格地图&…...
计算机网络与服务器
目录 架构体系及相关知识 三层架构: 四层架构: 常见的应用的模式: OSI模型 分层 数据链路层 TCP/IP模型 TCP和UDP都是传输层的协议 TCP三次握手、四次次分手 URL&HTTP协议详解 网址URL 结构化 报文行 报文头 空行 报文体…...
IP查询于访问控制保护你我安全
IP地址查询 查询方法: 命令行工具: ①在Windows系统中,我们可以使用命令提示符(WINR)查询IP地址,在弹窗中输入“ipconfig”命令查看本地网络适配器的IP地址等配置信息; ②在Linux系统中&…...
在 ASP.NET CORE 中上传、下载文件
创建 Web API 来提供跨客户端和服务器的文件上传和下载是常有的事。本文将介绍如何通过 ASP.NET CORE 来实现。 首先在 Visual Studio 中创建空的 Web API 项目,然后选择目标框架 .Net Core 3.1。 创建名为 FileController 的控制器,提供操作文件的接口…...
ETCD未授权测试
一、测试环境搭建 首先拉取etcd镜像 docker pull quay.io/coreos/etcd:v3.3.1 # 查看镜像 docker images创建自定义网络 docker network create --driver bridge --subnet172.16.1.0/16 --gateway172.16.1.1 mynet # 查看网络 docker network ls创建etcd节点 节点1: docke…...
ffmpeg将mp4等文件转mp3
安装ffmpeg 目录 安装ffmpeg macOS Windows 实现方法 Base Golang macOS 在macOS上,你可以使用Homebrew来安装FFmpeg,这是最简单和推荐的方法。以下是具体步骤: 安装Homebrew(如果尚未安装): 打开终端,执行以下命令来安装Homebrew: /bin/bash -c "$(c…...
python学习笔记—15—数据容器之列表
1. 数据容器 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict) 2. 列表 (1) 定义 tmp_list ["super", "carry", "doinb"] print(f"tmp_list {tmp_list}, tmp_list type is {type(tmp_list)}") tmp_list1 ["doi…...
基于MATLAB的汽车热管理模型构建
一、引言 汽车热管理系统对汽车性能、部件寿命及驾乘体验至关重要。它能确保发动机、电池等关键部件在适宜温度工作。MATLAB 功能强大,为构建高精度热管理模型提供有效途径,助力优化系统设计与控制策略。 二、汽车热管理系统构成 2.1 发动机冷却系统&…...
MySQL的主从复制
MySQL 主从复制详解 MySQL 的主从复制是一种用来实现数据同步的机制,可以将一个 MySQL 实例的数据同步到一个或多个从库(Slave)实例中。它广泛应用于数据备份、高可用架构、读写分离、负载均衡等场景。 1. 主从复制的基本概念 主库ÿ…...
playwright 录制
一、新建项目TestProject3 二、准备swagger 三、开始录制 打开PowerShell 7 (x64) cd D:\xxx\xxx\VS2022Projects\TestProject3\TestProject3\bin\Debug\net8.0 pwsh playwright.ps1 codegen --targetcsharp -b chromium localhost:5252/swagger/index.html #支持的语言 java…...
Azure主机windows2008就地升级十步
Azure上云主机的windows2008系统需要进行就地升级。 按着微软的升级路径:win2008-->win2012-->win2016-->win2022 第一步:创建快照备份,防止升级失败第二步:升级托管磁盘,在VM管理的地方将磁盘升级成托管磁盘…...
MySQL 主从复制 的原理、配置和如何实现 主从灾备
1. MySQL 主从复制原理与工作流程 MySQL 的主从复制本质上是一个 基于事件的日志传输系统。在这个系统中,所有对数据的修改(如 INSERT、UPDATE 和 DELETE)会在 主数据库 上记录到 二进制日志(binlog),然后…...
本地多卡(3090)部署通义千问Qwen-72B大模型提速实践:从龟速到够用
最近在做文本风格转化,涉及千万token级别的文本。想用大模型转写,在线的模型一来涉及数据隐私,二来又不想先垫钱再找报销。本地的7-9B小模型又感觉效果有限,正好实验室给俺配了4卡3090的机子,反正也就是做个推理&#…...
高级数据库系统 复习提纲
第一章 数据库技术的回顾与发展 简述三代数据库的发展历史及其对应特点: 新型数据库在“数据模型”上的创新: 简述数据库和什么相关技术结合,产生了什么新型数据库? 1. 数据库和并行处理技术结合,产生“并行数据库”…...
Python编程实例-特征向量与特征值编程实现
特征向量与特征值编程实现 文章目录 特征向量与特征值编程实现1、什么是特征向量2、特征向量背后的直觉3、为什么特征向量很重要?4、如何计算特征向量?4、特征向量Python实现5、可视化特征向量6、总结线性代数是许多高级数学概念的基石,广泛应用于数据科学、机器学习、计算机…...
十年后LabVIEW编程知识是否会过时?
在考虑LabVIEW编程知识在未来十年内的有效性时,我们可以从几个角度进行分析: 1. 技术发展与软件更新 随着技术的快速发展,许多编程工具和平台不断更新和改进,LabVIEW也不例外。十年后,可能会有新的编程语言或平台…...