【消息序列】详解(7):剖析回环模式--设备测试的核心利器

目录

一、概述

1.1. 本地回环模式

1.2. 远程环回模式

二、本地回环模式(Local Loopback mode)

2.1. 步骤 1:主机进入本地环回模式

2.2. 本地回环测试

2.2.1. 步骤 2a:主机发送HCI数据包并接收环回数据

2.2.2. 步骤 2b:主机发送HCI命令包并接收环回命令事件

2.3. 步骤 3:主机退出本地环回模式

三、远程环回模式

3.1. 步骤1:本地设备启用远程环回,远程主机建立连接

3.2. 步骤2:接收远程主机的数据并环回

3.3. 步骤3:本地主机退出远程环回模式并断开连接

四、应用场景

4.1. 本地回环模式应用场景

4.2. 远程环回模式应用场景

五、注意事项

5.1. 本地环回模式

5.2. 远程环回模式

六、总结


Loopback Mode(回环模式)主要用于设备的测试目的。在回环模式下,设备会将发送出去的数据流重新接收回来,形成一个闭环测试环境。本文介绍蓝牙技术中的两种测试模式:远程环回模式和本地回环模式。远程环回模式允许通过空中接口将接收到的数据直接环回给远程设备,主要用于验证蓝牙设备间通信链路的畅通性和数据传输的完整性。本地回环模式则是一种将主机发送给控制器的特定类型数据进行回环处理的测试模式,用于测试主机与控制器之间数据传输的准确性、完整性以及相关处理逻辑的正确性。

一、概述

回环模式主要是专门应用于设备测试场景的一种工作模式。它的核心用途在于帮助开发人员、测试人员或者技术维护人员等去检验设备的各项功能是否正常、性能是否达到预期等,而并非用于设备正常的对外通信或日常使用场景中。蓝牙技术中的远程环回模式和本地回环模式是两种重要的测试模式,它们各自具有独特的特点和应用场景。以下是对这两种模式的概述。

1.1. 本地回环模式

  • 定义:本地回环模式是一种特定的测试模式,主要用于将主机发送给控制器的特定类型数据进行回环处理。
  • 工作原理:在本地回环模式下,主机发送的数据(如HCI命令、HCI ACL数据、HCI同步数据等)会被控制器接收并重新发送回主机。这种回环机制可以检查数据在主机与控制器之间传输的准确性、完整性以及相关处理逻辑是否正确。
  • 应用场景:本地回环模式主要用于蓝牙设备的硬件测试、软件开发、调试等阶段。通过这种模式,开发者可以方便地验证蓝牙设备的主机与控制器之间的通信是否正常,以及数据处理逻辑是否正确。

1.2. 远程环回模式

  • 定义:远程环回模式是蓝牙技术中的一种测试功能,允许设备通过空中接口将接收到的数据直接环回给远程设备。
  • 工作原理:在远程环回模式下,当设备A向设备B发送数据时,设备B会将这些数据重新发送回设备A,形成一个闭环测试环境。这种模式主要用于验证蓝牙设备之间的通信链路是否畅通无阻,以及数据在传输过程中的完整性。
  • 应用场景:远程环回模式常用于蓝牙设备的出厂测试、性能验证、兼容性测试等场景。通过这种模式,可以确保蓝牙设备在不同距离、不同环境下都能稳定地传输数据。

远程环回模式和本地回环模式是蓝牙技术中两种重要的测试模式,它们各自具有独特的特点和应用场景。远程环回模式主要用于验证蓝牙设备之间的通信链路和数据传输质量,而本地回环模式则更关注于主机与控制器之间的数据传输和处理逻辑的正确性。通过这两种模式,可以全面测试蓝牙设备的性能和稳定性,确保设备在实际应用中能够稳定、可靠地工作。

二、本地回环模式(Local Loopback mode)

本地回环模式是一种特定的测试模式,主要用于将主机(Host)发送给控制器(Controller)的一些特定类型的数据进行回环处理,也就是让发送出去的数据再返回到主机端,以此来测试相关的功能和数据传输情况。涉及的数据包类型包括接收到的 HCI 命令、HCI ACL(Asynchronous Connectionless)数据以及 HCI 同步数据数据包等,通过这种回环机制可以检查数据在主机与控制器之间传输的准确性、完整性以及相关处理逻辑是否正确。

2.1. 步骤 1:主机进入本地环回模式

当主机进入本地环回模式时,会触发一系列的事件来确认该模式的成功激活。以下是进入本地环回模式的详细步骤和事件生成的说明。

  •  主机发送HCI_Write_Loopback_Mode命令:主机通过发送HCI_Write_Loopback_Mode命令来请求进入本地环回模式。这个命令是专门用于设置蓝牙主机控制器接口(HCI)进入环回模式的。

  • 生成HCI_Connection_Complete事件:在接收到HCI_Write_Loopback_Mode命令后,控制器会开始模拟连接,并生成四个HCI_Connection_Complete事件。这些事件分别对应于不同类型的连接:

    • 第一个HCI_Connection_Complete事件表示ACL(Asynchronous Connection-Less)连接的建立。

    • 接下来的三个HCI_Connection_Complete事件表示SCO(Synchronous Connection-Oriented)或eSCO(Extended Synchronous Connection-Oriented)连接的建立。这些连接通常用于语音或音频数据的同步传输。 

    • 注意:在实际应用中,可能不会有四个SCO或eSCO连接同时建立,这里的描述是为了展示可能的连接类型。实际生成的连接类型和数量可能取决于具体的蓝牙设备和配置。

  • 生成HCI_Command_Complete事件:在所有必要的连接建立完成后,控制器会生成一个HCI_Command_Complete事件来确认HCI_Write_Loopback_Mode命令的成功执行。这个事件标志着主机已成功进入本地环回模式。

2.2. 本地回环测试

本地环回模式是蓝牙技术中一种重要的测试功能,它允许蓝牙设备在无需外部设备连接的情况下,通过其内部的蓝牙控制器和主机之间的接口,实现数据的自我环回。这一功能不仅限于数据(如ACL数据包)的环回,还包括主机控制器接口(HCI)命令的环回。

2.2.1. 步骤 2a:主机发送HCI数据包并接收环回数据

在本地环回模式下,当主机发送一个HCI数据包给控制器时,它会从控制器那里接收到完全相同的数据包作为回应。这一步骤验证了从主机到控制器再到主机的数据传输路径是否畅通无阻。

  • 主机A发送数据:当主机A处于本地环回模式时,它会通过ACL数据包的形式,向蓝牙控制器发送数据。ACL数据包是蓝牙通信中用于传输用户数据的主要数据包类型。

  • 数据在控制器内部环回:蓝牙控制器接收到来自主机A的数据包后,不会尝试将这些数据包发送给外部设备,而是直接在内部将这些数据包环回给主机A。意味着数据在控制器内部被复制,并沿着与发送方向相反的路径返回给主机。

  • 主机A接收环回的数据:主机A通过HCI(主机控制器接口)接收到来自控制器的环回数据包。这些数据包与主机A最初发送的数据包在内容上完全相同,只是经过了控制器的内部处理。

  • 验证数据完整性:主机A可以比较发送的数据包和接收到的环回数据包,以验证数据在传输过程中的完整性。如果两者完全匹配,那么可以认为蓝牙硬件和软件在这一方面的表现是正确的。

2.2.2. 步骤 2b:主机发送HCI命令包并接收环回命令事件

除了数据包的环回外,主机发送的大多数HCI命令包也会在控制器处理后,以HCI_Loopback_Command事件的形式环回给主机。这些事件包含了原始HCI命令包的内容,并作为事件的有效载荷返回。这一步骤验证了主机命令的正确执行和传输。

  • 主机A发送HCI命令:当主机A处于本地环回模式时,它会向蓝牙控制器发送HCI命令数据包。这些命令可能包括配置设备、查询状态或执行其他管理任务。
  • 控制器处理并环回HCI命令:蓝牙控制器接收到HCI命令后,不会执行该命令(或至少不会执行其通常的操作,如与外部设备通信),而是会生成一个特殊的HCI事件——HCI_Loopback_Command事件。这个事件包含了原始HCI命令的内容,作为其有效载荷(payload)的一部分。
  • 主机A接收环回的HCI命令事件:主机A通过HCI接口接收到来自控制器的HCI_Loopback_Command事件。通过检查这个事件的有效载荷,主机A可以验证它发送的HCI命令是否被正确接收和环回。
  • 验证HCI命令的完整性:主机A可以比较发送的HCI命令和接收到的HCI_Loopback_Command事件中的命令内容,以确保它们在传输过程中没有发生变化。这种验证对于确保HCI接口的稳定性和可靠性至关重要。

2.3. 步骤 3:主机退出本地环回模式

当主机完成所有必要的测试后,它会退出本地环回模式。这一步骤通常涉及发送特定的HCI命令给蓝牙控制器,并接收一系列事件作为响应,最终确认已成功退出环回模式。

  • 发送HCI_Write_Loopback_Mode命令:主机A通过发送HCI_Write_Loopback_Mode命令给蓝牙控制器,指示其退出本地环回模式。这个命令通常包含一个参数,用于指定是否启用环回模式(在这种情况下,参数将设置为不启用环回)。
  • 接收HCI_Disconnection_Complete事件
    • 在控制器处理完HCI_Write_Loopback_Mode命令并准备退出环回模式之前,可能会生成多个HCI_Disconnection_Complete事件。这些事件通常用于通知主机,之前由于环回模式而建立的任何ACL(异步连接)连接、SCO(同步连接)连接或eSCO(扩展SCO)连接现在已被断开。
    • 需要注意的是,如果在环回模式下没有建立任何SCO或eSCO连接,那么相应的HCI_Disconnection_Complete事件可能不会出现。但是,由于ACL连接在环回模式下通常是必需的,因此至少会收到一个关于ACL连接的断开完成事件。
  • 接收HCI_Command_Complete事件:最后,主机A会接收到一个HCI_Command_Complete事件,作为对HCI_Write_Loopback_Mode命令的响应。这个事件表明命令已被成功执行,且蓝牙控制器现在已退出本地环回模式。

通过本地环回模式,开发者可以轻松地测试和验证主机与控制器之间的通信是否正常,从而确保蓝牙设备的稳定性和可靠性。此外,这一模式还可以用于诊断通信故障,帮助开发者快速定位并解决问题。

远程环回(Remote Loopback)模式是蓝牙技术中的一种测试功能,它允许通过空中接口将接收到的数据直接环回给远程设备。这种模式主要用于验证蓝牙设备之间的通信链路是否畅通无阻,以及数据在传输过程中的完整性。以下是远程环回模式的详细步骤:

三、远程环回模式(Remote Loopback mode )

远程环回(Remote Loopback)模式是蓝牙技术中的一种测试功能,它允许通过空中接口将接收到的数据直接环回给远程设备。这种模式主要用于验证蓝牙设备之间的通信链路是否畅通无阻,以及数据在传输过程中的完整性。

3.1. 步骤1:本地设备启用远程环回,远程主机建立连接

本地蓝牙设备通过发送特定的HCI命令给其蓝牙控制器,来启用远程环回模式。

  • 本地设备启用远程环回:本地设备(我们称之为Host A)通过发送HCI_Write_Loopback_Mode命令给其蓝牙控制器,来启用远程环回模式。此命令中应包含一个参数,明确指出启用的是远程环回,而非本地环回。
  • 命令执行确认:一旦蓝牙控制器接收到并处理了HCI_Write_Loopback_Mode命令,它会向Host A返回一个HCI_Command_Complete事件,以此确认命令已成功执行,且远程环回模式已激活。
  • 远程主机建立ACL连接:与此同时,远程设备(我们称之为Host B)会尝试与Host A建立ACL连接。ACL连接是蓝牙设备间进行数据传输的基础。
  • 连接建立完成:若Host A接受Host B的连接请求,则两者间的ACL连接将成功建立。此时,Host A已准备好接收来自Host B的数据,并将其按照远程环回模式的要求进行环回。

3.2. 步骤2:接收远程主机的数据并环回

在远程环回模式已经开启且连接建立好的基础上,数据从远程主机(Host B)发送到本地设备后,在本地设备的控制器(Controller)中进行回环处理,以此来实现对链路数据传输及回环功能的测试与验证。

整个流程基于前面步骤中 Host A 已成功进入远程环回模式,并且 Host B 也与 Host A 建立了相应连接的基础之上展开。此时,Host B 开始发送数据分组,这些数据分组承载着各种测试信息或者模拟的实际应用数据等内容,目的是利用远程环回模式的特性,观察数据经过空中传输到达 Host A 后再回环返回的情况,进而检测链路各环节在数据处理、传输准确性以及回环功能等方面的表现。 

  • 数据发送:远程主机(Host B)通过已建立的ACL连接,向本地设备(Host A)发送数据包。这些数据包可以是任意的蓝牙数据,用于测试数据传输的完整性和准确性。
  • 数据接收:本地设备的蓝牙控制器(LM-A)接收到来自Host B的数据包后,会根据远程环回模式的设置,直接将数据包在控制器内部进行环回,而不是将其传递给上层的主机(Host A)进行处理。
  • 环回确认:在数据包被环回后,本地设备的蓝牙控制器可能会通过内部机制确认环回操作的成功。然而,在远程环回测试中,通常更关注的是远程主机(Host B)能否成功接收到环回的数据包,以此来验证数据传输的完整性和链路的正确性。
  • HCI_Number_Of_Completed_Packets(主机控制器接口已完成分组数量):主要用于反馈已经成功完成传输的数据分组的数量信息。对于 Host B 或者整个链路系统来说,可以通过这个信令了解到目前有多少数据分组按照预期完成了从发送到回环的全过程,进而判断链路的数据传输效率、是否存在数据丢失等情况。例如,如果发送了一定数量的数据分组,但 HCI_Number_Of_Completed_Packets 反馈回来的数量少于发送数量,那就可能意味着在链路传输或者回环过程中出现了数据丢失等问题,需要进一步排查链路各环节的情况。

  • 数据包确认:远程主机(Host B)在发送数据包后,会期待接收来自本地设备(Device A)的确认或响应。在远程环回模式下,这种确认通常是通过接收环回的数据包来实现的。
  • 数据传输和环回的循环:上述过程可能会重复多次,以确保在不同的数据包大小和传输条件下,远程环回模式都能正确地工作。

3.3. 步骤3:本地主机退出远程环回模式并断开连接

在完成远程环回模式下的数据测试等相关操作后,Host A 发起退出远程环回模式的操作,随后 Host B 进行相应处理,断开之前建立的连接,使整个通信链路恢复到常规状态的过程。在实际应用中,退出远程环回模式和断开连接通常是蓝牙设备测试或通信过程中的一个重要环节,它们确保了设备能够正确地释放资源并准备进入下一个通信状

  • 退出远程环回模式:本地主机(Host A)通过发送HCI_Write_Loopback_Mode命令给其蓝牙控制器,并指定参数为“无环回”(no loopback),来请求退出远程环回模式。蓝牙控制器(LM-A)接收到该命令后,会执行相应的操作来关闭远程环回功能,并准备接收和处理来自上层主机(Host A)或其他蓝牙设备的数据包。
  • 命令执行确认:一旦蓝牙控制器(LM-A)成功执行了退出远程环回模式的操作,它会向本地主机(Host A)返回一个HCI_Command_Complete事件,以此确认命令已成功执行,且远程环回模式已关闭。
  • 断开ACL连接:在确认远程环回模式已关闭后,远程设备(Host B)可以选择断开与本地设备(Host A)之间的ACL连接。通常是通过发送一个断开连接的请求给本地设备的蓝牙控制器(LM-A)来实现的。本地设备的蓝牙控制器(LM-A)接收到断开连接的请求后,会执行相应的操作来释放与远程设备(Host B)之间的连接资源,并准备接受新的连接请求。

远程环回模式是一种非常有用的测试功能,它可以帮助开发者验证蓝牙设备之间的通信链路和数据传输的完整性。通过这种模式,开发者可以确保蓝牙设备在实际使用中能够正确、可靠地传输数据。

四、应用场景

蓝牙技术中的本地回环模式和远程环回模式各自具有独特的应用场景和注意事项。以下是对这两种模式的应用场景的梳理。

4.1. 本地回环模式应用场景

本地回环模式主要用于验证设备内部的功能和通信性能。以下是本地回环模式的主要应用场景:

  • 蓝牙硬件测试:在蓝牙设备的硬件设计阶段,制造商会利用本地回环模式来全面测试蓝牙芯片的接收、发送功能以及数据在硬件层面的处理准确性。这有助于确保蓝牙硬件的基本功能正常,为后续的开发和测试奠定坚实基础。
  • 软件开发和调试:本地回环模式对于蓝牙设备的软件开发和调试至关重要。开发者可以利用这一模式来验证软件协议栈的正确性,以及软件在处理蓝牙数据时的稳定性和可靠性。通过模拟主机和控制器之间的数据传输,开发者可以更容易地发现和修复软件中的潜在问题。
  • 系统集成测试:在蓝牙设备与其他系统(如嵌入式系统、操作系统等)集成时,本地回环模式可用于验证设备在集成环境中的通信性能。这有助于确保蓝牙设备在与其他系统交互时能够正常工作,从而满足实际应用场景的需求。
  • 设备内部功能测试:在蓝牙设备开发阶段,本地环回模式还可以用于测试主机和控制器之间的数据传输和处理功能。例如,通过发送HCI命令并观察返回的数据,可以验证控制器是否正确理解并处理了这些命令。这有助于确保设备内部的功能正常,提高设备的整体性能和稳定性。
  • 软件更新后的验证:当蓝牙设备的固件或软件进行更新后,本地回环模式可用于验证更新后的主机-控制器通信是否受到影响。通过发送各种类型的HCI数据并检查回环数据的准确性,可以确保更新没有引入新的通信问题,从而保障设备的正常运行。
  • 故障排查:当怀疑主机与控制器之间的数据传输出现问题时,本地回环模式是一种有效的故障排查工具。通过发送和接收相同类型的数据,并对比原始数据和回环后的数据,可以确定问题是出在主机发送端、控制器接收和返回端,还是其他中间环节。这有助于快速定位并解决问题,提高设备的可靠性和稳定性。

本地回环模式在蓝牙设备的开发和测试过程中具有广泛的应用场景和重要性。通过充分利用这一模式,可以确保蓝牙设备的硬件、软件以及系统集成等方面的性能和稳定性得到全面验证和提升。

4.2. 远程环回模式应用场景

远程环回模式主要用于验证蓝牙设备之间的通信链路和数据传输质量。以下是远程环回模式的主要应用场景。

  • 蓝牙设备兼容性测试
    • 在蓝牙设备的设计和开发阶段,制造商常使用远程环回模式来测试新设备与市场上现有设备的兼容性。这可以确保新设备能够与不同品牌、不同型号的蓝牙设备无缝连接和通信,满足广泛的用户需求。
    • 当蓝牙设备的固件或软件更新以支持新功能时,远程环回模式也可用于测试更新后的设备与其他设备的兼容性,确保更新不会破坏现有的通信能力。
  • 无线通信链路验证:远程环回模式可用于验证蓝牙设备之间的无线通信链路是否畅通无阻。通过发送和接收数据,可以检查链路是否存在中断、干扰或信号衰减等问题,从而确保设备在实际应用场景中能够稳定地传输数据。
  • 数据传输完整性测试:在数据传输过程中,数据包的完整性至关重要。远程环回模式允许设备在接收到数据后立即将其发送回发送方,从而验证数据在传输过程中是否保持完整。这对于确保蓝牙设备在传输敏感或关键数据时不会出错至关重要。
  • 设备间通信链路测试:在蓝牙设备配对和连接的初始阶段,远程环回模式可用于验证两个设备之间的通信链路质量。通过发送特定类型的数据(如音频数据、控制命令等),并检查返回的数据是否完整和准确,可以判断蓝牙链路是否能够稳定地支持所需的应用场景。
  • 多设备通信系统测试:在复杂的蓝牙多设备系统(如智能家居系统、无线耳机系统、车载蓝牙系统等)中,远程环回模式可以用于测试不同设备之间的通信链路。通过控制中心向各个设备发送数据,并让设备将接收到的数据回环给控制中心,可以验证整个通信链路的可靠性和数据完整性,确保系统能够正常运行并满足用户需求。
  • 故障排查和性能优化:当蓝牙设备在实际使用过程中出现通信问题时,远程环回模式可以作为一种有效的故障排查工具。通过发送和接收数据,可以定位问题所在,并采取相应的措施进行修复。此外,远程环回模式还可以用于性能优化,通过调整通信参数和数据传输策略,提高蓝牙设备的通信效率和稳定性。

远程环回模式在蓝牙设备的开发和测试过程中具有广泛的应用场景和重要性。通过充分利用这一模式,可以确保蓝牙设备之间的通信链路和数据传输质量得到全面验证和提升,从而满足实际应用场景的需求。

五、注意事项

5.1. 本地环回模式

  • 数据类型限制:本地环回模式主要适用于特定类型的数据,如HCI命令、HCI ACL数据和HCI同步数据数据包等。在测试过程中,需确保发送的数据类型符合本地环回模式能够处理的范围。
  • 测试环境干扰:尽量避免外部干扰对测试结果的影响,如设备内部的电磁干扰。保持测试环境的稳定性,以获得准确的测试结果。
  • 软件配置影响:主机和控制器的软件配置可能对本地环回模式产生影响。在测试过程中,要记录软件配置信息,并在出现异常结果时考虑软件配置是否为原因之一。
  • 数据格式和协议:确保发送和接收的数据格式和协议与设备的实际使用情况相匹配。
  • 数据完整性检查:本地环回测试应包括对数据完整性的检查,以确保数据在硬件和软件层面的处理过程中不会丢失或损坏。
  • 系统资源占用:注意系统资源的占用情况,避免过多的资源占用导致设备性能下降或测试失败。

5.2. 远程环回模式

  • 连接稳定性:确保设备之间的连接稳定性,考虑设备距离、周围环境(如干扰源)等因素。
  • 设备兼容性和协议支持:确认参与测试的设备都支持远程环回模式,并遵循相同的蓝牙协议版本和相关规范。
  • 数据安全和隐私:注意数据的安全性和隐私保护,确保在测试过程中不会泄露用户的隐私信息。采取适当的数据加密或匿名化措施。
  • 设备距离和障碍物:确保设备之间的距离和障碍物不会影响通信质量。
  • 干扰源:避免在测试环境中存在其他蓝牙设备或无线设备,以减少干扰对测试结果的影响。
  • 数据速率和带宽:根据测试需求选择合适的数据速率和带宽进行测试。避免过高的数据速率导致通信链路不稳定,或过低的数据速率无法充分验证设备性能。

通过综合考虑以上注意事项,可以确保在进行本地环回模式和远程环回模式测试时获得准确、可靠的测试结果,从而有效验证蓝牙设备的性能和兼容性。

六、总结

蓝牙技术中的本地回环模式和远程环回模式均在测试方面有着重要作用。本地回环模式着重于检测主机与控制器之间的数据交互情况,针对如 HCI 命令、HCI ACL 数据、HCI 同步数据数据包等特定类型的数据进行回环,以此来确认数据传输过程中的准确性、完整性以及相关处理逻辑是否无误,为保障蓝牙通信各环节的正常运作提供了有效的测试手段。而远程环回模式侧重于验证不同蓝牙设备之间通信链路的畅通性以及数据传输时的完整性,是在设备间通过空中接口实现数据回环的机制,其操作涉及开启模式、数据传输回环以及退出模式并断开连接等流程。总之,这两种回环模式从不同层面助力蓝牙技术的功能测试与完善,对确保蓝牙通信质量有着积极意义。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用GCC手动编译stm32程序

如何不使用任何IDE(集成开发环境)编译stm32程序? 集成开发环境将编辑器、编译器、链接器、调试器等开发工具集成在一个统一的软件中,使得开发人员可以更加简单、高效地完成软件开发过程。如果我们不使用KEIL,IAR等集成开发环境,…

计算机网络 第4章 网络层

计算机网络 (第八版)谢希仁 第 4 章 网络层4.2.2 IP地址**无分类编址CIDR**IP地址的特点 4.2.3 IP地址与MAC地址4.2.4 ARP 地址解析协议4.2.5 IP数据报的格式题目2:IP数据报分片与重组题目:计算IP数据报的首部校验和(不正确未改) …

【Git】常用命令汇总

目录 一.安装及配置 1.在 Windows 上安装 2.用户信息 3.差异分析工具 二.基础 1.创建仓库 2.提交与修改 三.分支管理 1.创建分支 2.合并分支 四.远程操作 1.管理 Git 仓库中的远程仓库 2.数据的获取与推送 五.标签 1.创建轻量标签和附注标签 2.查看标签和标签信…

jvm核心组件介绍

1. 类加载器(ClassLoader): • 想象它是一个快递员,负责把Java类(.class文件)这个“包裹”从磁盘这个“发货地”送到JVM内部这个“目的地”。类加载器确保每个类只被加载一次,并维护一个类的层级…

【Docker】常用命令汇总

Docker 是1个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相…

ChatGPT如何辅助academic writing?

今天想和大家分享一篇来自《Nature》杂志的文章《Three ways ChatGPT helps me in my academic writing》,如果您的日常涉及到学术论文的写作(writing)、编辑(editing)或者审稿( peer review)&a…

对比C++,Rust在内存安全上做的努力

简介 近年来,越来越多的组织表示,如果新项目在技术选型时需要使用系统级开发语言,那么不要选择使用C/C这种内存不安全的系统语言,推荐使用内存安全的Rust作为替代。 谷歌也声称,Android 的安全漏洞,从 20…

【网络安全设备系列】12、态势感知

0x00 定义: 态势感知(Situation Awareness,SA)能够检测出超过20大类的云上安全风险,包括DDoS攻击、暴力破解、Web攻击、后门木马、僵尸主机、异常行为、漏洞攻击、命令与控制等。利用大数据分析技术,态势感…

UE5 slate BlankProgram独立程序系列

源码版Engine\Source\Programs\中copy BlankProgram文件夹,重命名为ASlateLearning,修改所有文件命名及内部名称。 ASlateLearning.Target.cs // Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool; using System.Collections.Ge…

铲屎官进,2024年宠物空气净化器十大排行,看看哪款吸毛最佳?

不知道最近换毛季,铲屎官们还承受的住吗?我家猫咪每天都在表演“天女散花”,家里没有一块干净的地方,空气中也都是堆积的浮毛,幸好有宠物空气净化器这种清理好物。宠物空气净化器针对宠物浮毛设计,可以有效…

VOLO实战:使用VOLO实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度,DP多卡,EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

AI加持,华为全屋智能品牌升级为“鸿蒙智家”

1.传统智能家居的困境:从便利到繁琐 近年来,智能家居因其便捷性和科技感受到消费者的青睐。然而,随着用户需求的多样化,传统智能家居的弊端逐渐显现: 设备连接复杂,品牌间兼容性不足,用户不得不…

.NET9 - Swagger平替Scalar详解(四)

书接上回,上一章介绍了Swagger代替品Scalar,在使用中遇到不少问题,今天单独分享一下之前Swagger中常用的功能如何在Scalar中使用。 下面我们将围绕文档版本说明、接口分类、接口描述、参数描述、枚举类型、文件上传、JWT认证等方面详细讲解。…

Qt界面篇:QMessageBox高级用法

1、演示效果 2、用法注意 2.1 设置图标 用于显示实际图标的pixmap取决于当前的GUI样式。也可以通过设置icon pixmap属性为图标设置自定义pixmap。 QMessageBox::Icon icon(

【第二讲】Spring Boot 3.4.0 新特性详解:新的依赖管理功能

Spring Boot 3.4.0 版本引入了一些显著的改进,其中之一就是新的依赖管理功能。这些改进不仅提升了依赖管理的便利性和一致性,还增强了项目的可维护性和可扩展性。本文将详细介绍 Spring Boot 3.4.0 中新的依赖管理功能,提供具体的使用示例和场…

阿里发布 EchoMimicV2 :从数字脸扩展到数字人 可以通过图片+音频生成半身动画视频

EchoMimicV2 是由阿里蚂蚁集团推出的开源数字人项目,旨在生成高质量的数字人半身动画视频。以下是该项目的简介: 主要功能: 音频驱动的动画生成:EchoMimicV2 能够使用音频剪辑驱动人物的面部表情和身体动作,实现音频与…

STM32C011开发(3)----Flash操作

STM32C011开发----3.Flash操作 概述硬件准备视频教学样品申请源码下载参考程序生成STM32CUBEMX串口配置堆栈设置串口重定向FLASH数据初始化FLASH 读写演示 概述 STM32C011 系列微控制器内置 Flash 存储器,支持程序存储与数据保存,具备页面擦除、双字写入…

银河麒麟桌面系统——桌面鼠标变成x,窗口无关闭按钮的解决办法

银河麒麟桌面系统——桌面鼠标变成x,窗口无关闭按钮的解决办法 1、支持环境2、详细操作说明步骤1:用root账户登录电脑步骤2:导航到kylin-wm-chooser目录步骤3:编辑default.conf文件步骤4:重启电脑 3、结语 &#x1f49…

【自动化Selenium】Python 网页自动化测试脚本(上)

目录 1、Selenium介绍 2、Selenium环境安装 3、创建浏览器、设置、打开 4、打开网页、关闭网页、浏览器 5、浏览器最大化、最小化 6、浏览器的打开位置、尺寸 7、浏览器截图、网页刷新 8、元素定位 9、元素交互操作 10、元素定位 (1)ID定位 &…

【PTA】【数据库】【SQL命令】编程题2

数据库SQL命令测试题2 测试题目录 10-1 查询“李琳”老师所授课程的课程名称10-2 查询成绩比所有课程的平均成绩高的学生的学号及成绩10-3 创建带表达式的视图StuView10-4 从视图PerView中查询数据10-5 查询工资高于在“HR”部门工作的所有员工的工资的员工信息10-6 查询选修的…