UDS 诊断 - ReadDataByPeriodicIdentifier(按周期性标识符读取数据)(0x2A)服务

news2024/11/18 9:49:49

UDS 诊断服务系列文章目录

诊断和通信管理功能单元
UDS 诊断 - DiagnosticSessionControl(诊断会话控制)(0x10)服务
UDS 诊断 - ECUReset(ECU重置)(0x11)服务
UDS 诊断 - SecurityAccess(安全访问)(0x27)服务
UDS 诊断 - CommunicationControl(通信控制)(0x28)服务
UDS 诊断 - TesterPresent(测试仪保活)(0x3E)服务
UDS 诊断 - AccessTimingParameter(访问计时参数)(0x83)服务
UDS 诊断 - SecuredDataTransmission(受保护的数据传输)(0x84)服务
UDS 诊断 - ControlDTCSetting(控制DTC设置)(0x85)服务
UDS 诊断 - ResponseOnEvent(基于事件响应)(0x86)服务
UDS 诊断 - LinkControl(链路控制)(0x87)服务
数据传输功能单元
UDS 诊断 - ReadDataByIdentifier(按标识符读取数据)(0x22)服务
UDS 诊断 - ReadMemoryByAddress(按地址读取内存)(0x23)服务
UDS 诊断 - ReadScalingDataByIdentifier(按标识符读取换算数据)(0x24)服务
UDS 诊断 - ReadDataByPeriodicIdentifier(按周期性标识符读取数据)(0x2A)服务

文章目录

  • UDS 诊断服务系列文章目录
  • 一、服务说明
  • 二、请求消息
    • 1.请求消息定义
    • 2. 请求消息数据参数定义
      • 1. 下表为 transmissionMode 参数的定义
  • 三、肯定响应消息
    • 1. 肯定响应消息定义
  • 四、支持的NRC
  • 五、示例
    • 1. 假设
    • 2. 示例 1:以中等速率读取多个 periodicDataIdentifier(周期性数据标识符)0xE3 和 0x24
    • 3. 示例 2:0x2A 服务的周期性调度速率的图例和表例
      • 1. 0x2A 服务示例概述
      • 2. 示例:以中等速率读取多个 periodicDataldentifier(周期性数据标识符)0xE3 和 0x24
    • 4. 示例 3:0x2A 服务的周期性调度速率的图例和表例
      • 1. 0x2A 服务示例概述
      • 2. 以不同周期性速率读取多个 periodicDataldentifier(周期性数据标识符)
    • 5. 示例 4:0x2A 服务的周期性调度速率表例
      • 1. 0x2A 服务示例概述
    • 6. 示例 5:0x2A 服务的周期性调度速率表例
      • 1. 0x2A 服务示例概述


一、服务说明

0x2A 服务允许客户端请求对服务器中通过一个或多个 periodicDataIdentifiers(周期性数据标识符)所识别的数据记录值进行周期性传输。

客户端请求消息包含一个或多个识别服务器所维护的数据记录的单字节 periodicDataIdentifier(周期性数据标识符)值。periodicDataIdentifier(周期性数据标识符)表示为此服务所保留的 DID 范围之外的数据标识符的低字节(0xF2XX)。

例如,此服务中所使用的 periodicDataIdentifier(周期性数据标识符)0xE3 为 DID 0xF2E3。

dataRecord(数据记录)的格式和定义应由车辆制造商规定,并且可包含模拟输入和输出信号、数字输入和输出信号、内部数据,以及系统状态信息(若服务器支持)。

接收到 0x2A 的请求而非 stopSending(停止发送)后,服务器应检查是否满足执行服务的适当条件。

给定时间内应仅支持单一 transmissionMode(传输模式)的 periodicDataIdentifier(周期性数据标识符)。应在接收到请求消息之后更改 periodicDataIdentifier(周期性数据标识符)的调度,并按照相同 periodicDataIdentifier(周期性数据标识符)的新调度安排设置 transmissionMode 参数。若车辆制造商要求,则应支持不同 periodicDataIdentifier(周期性数据标识符)的多个调度安排。

若满足适当的条件,则服务器应传输仅包括服务器标识符的肯定响应消息。一旦通过肯定响应接受了初始请求消息,服务器就不得传输否定响应消息。

接受初始肯定响应消息后,服务器应访问 periodicDataIdentifier(周期性数据标识符)参数所指定的记录的数据元素,并就包含管理 dataRecord 参数的每个 periodicDataIdentifier(周期性数据标识符)在单独的周期性数据响应消息中传输这些数据元素的值。

接受初始肯定响应消息后,为了向客户端传输 periodicDataIdentifier(周期性数据标识符)数据二定义的单独周期性数据响应消息应包括 periodicDataIdentifier(周期性数据标识符)及其数据,但不包括肯定相应服务标识符。

特定 transmissionMode 的已编档周期性速率被定义为具有相同 periodicDataIdentifier(周期性数据标识符)的任意两次连续响应消息的间隔时间,再次时间内,仅调度单一 periodicDataIdentifier(周期性数据标识符)。若同事调度多个 periodicDataIdentifier(周期性数据标识符),则相同 periodicDataIdentifier(周期性数据标识符)的有效期将随一下设计参数二变化:

  • 周期性调度器的调用率;
  • 按照调度器调用所分配的可用协议特定周期性数据响应消息地址信息标识符(例如,CAN 的 CAN 标识符)的数目;
  • 可以并行定义待同事传输的 periodicDataIdentifier(周期性数据标识符)的数目。

若同事传输多个 periodicDataIdentifier(周期性数据标识符),则这些参数值将影响相同 periodicDataIdentifier(周期性数据标识符)的有效期的增加范围。因此,前文提及的所有设计参数应均由车辆制造商指定。每次调用周期性调度器时,应确定所有 periodicDataIdentifier(周期性数据标识符)是否准备好传输。

周期性速率是周期性调度器调用率的整数倍数。

例如,两个独特的 ECU 实现过程可支持周期性速率为 10ms 的快速 transmissionMode 和单个具有唯一性的周期性数据响应消息的地址信息标识符。若第一个实现过程每 10ms 调用周期性调度器,则相同 periodicDataIdentifier(周期性数据标识符)的间隔时间将可能增至 20ms(调度两个 periodicDataIdentifier(周期性数据标识符)的情况下)和 40ms (调度四个 periodicDataIdentifier(周期性数据标识符)的情况下)。若第二个实现过程每 5ms 调用周期性调度器,则相同 periodicDataIdentifier(周期性数据标识符)的间隔时间可能保持为 10ms(调用两个)和增至 20ms(调用四个)。

接收到包括 transmissionMode stopSending 的 0x2A 请求后,服务器应停止请求消息中所含的 periodicDataIdentifier(周期性数据标识符)的周期性传输,或者停止传输任何 periodicDataIdentifier(周期性数据标识符)(请求消息中未指定特定标识符的情况下)。此 transmissionMode 的响应消息仅包含服务器标识符。

如车辆制造商和系统供应商所商定的,服务器可限制同时支持的 periodicDataIdentifier(周期性数据标识符)的数目。超过可以同时支持的 periodicDataIdentifier(周期性数据标识符)的最大数目应导致单一否定响应,并且,应不调度该请求中的任何 periodicDataIdentifier(周期性数据标识符)。不允许在单一请求消息中重复相同的 periodicDataIdentifier(周期性数据标识符),并且,服务器应忽略所有这些标识符,客户端另行指定的 periodicDataIdentifier(周期性数据标识符)除外。

二、请求消息

1.请求消息定义

字节参数名称字节值Cvt
#1 ReadDataByPeriodicIdentifier(按周期性标识符读取数据)请求SID0x2AM
#2transmissionMode(传输模式)0x00 - 0xFFM
#3periodicDataIdentifier(周期性数据标识符)[] 第 1 个0x00 - 0xFFC
. .. .. .. .
#m+2periodicDataIdentifier(周期性数据标识符)[] 第 m 个0x00 - 0xFFU

C:若 transmissionMode 等同于 sendAtSlowRate(慢速发送)、sendAtMediumRate(中速发送)或 sendAtFastRate(快速发送),则请求消息中必须存在 periodicDataIdentifier(周期性数据标识符)。若 transmissionMode 等同于 stopSending,则要不不存在 periodicDataIdentifier(周期性数据标识符)以便停止所有已调度的 periodicDataIdentifier(周期性数据标识符),要么客户端可以明确指定一个或多个待停止的 periodicDataIdentifier(周期性数据标识符)。

2. 请求消息数据参数定义

定义
transmissionMode(传输模式)
此参数确定了服务器待使用的请求 periodicDataIdentifier(周期性数据标识符)的传输速率。
dataIdentifier(数据标识符)(第 1 个至第 m 个)
此参数识别客户端当前所请求的服务器数据记录。应可在单一请求中请求多个 periodicDataIdentifier(周期性数据标识符)。

1. 下表为 transmissionMode 参数的定义

字节值说明
0x00保留
0x01sendAtSlowRate(慢速发送)
本参数规定服务器须以较慢速度传输请求 dataRecord 信息以响应请求信息(其中,待发送响应数量 = 待发送响应最大数量)。各车辆制造商采用 transmissionMode 慢速发送参数重复率不同,且服务器应提前确定。
0x02sendAtMediumRate(中速发送)
本参数规定服务器须以中等速度传输请求 dataRecord 信息以响应请求信息(其中,待发送响应数量 = 待发送响应最大数量)。各车辆制造商采用 transmissionMode 中速发送参数重复率不同,且服务器应提前确定。
0x03sendAtFastRate(快速发送)
本参数规定服务器须以较快速度传输请求 dataRecord 信息以响应请求信息(其中,待发送响应数量 = 待发送响应最大数量)。各车辆制造商采用 transmissionMode 快速发送参数重复率不同,且服务器应提前确定。
0x04stopSending(停止发送)
服务器停止定期 / 重复传输肯定响应消息。注意:如果 transmissionMode = stopSending,将参数待发送响应最大数量设为 0x01,否则,可能无法服务器操作。
0x05 - 0xFF保留

三、肯定响应消息

1. 肯定响应消息定义

必须区分表明服务器接受服务的初始肯定响应消息及包括 periodicDataIdentifier(周期性数据标识符)数据的和后续周期性数据响应消息。

下表定义了服务器接受请求是需传输的初始肯定响应消息。

字节参数名称字节值
#1ReadDataByPeriodicIdentifier(按周期性标识符读取数据)响应SID0x6A

按照请求的 transmission 参数确定的速率周期性传输 periodicDataIdentifier(周期性数据标识符)数据。

接受初始肯定响应后,针对请求中所支持的每个 periodicDataIdentifier(周期性数据标识符),服务器应发送下文所定义的单一周期性数据响应消息。

下表确定了周期性数据响应消息数据的定义。

字节参数名称字节值
#1periodicDataIdentifier(周期性数据标识符)0x00 - 0xFF

#2
.
.
#k+2
dataRecord[] = [
data#1
.
.
data#k ]

0x00 - 0xFF
.
.
0x00 - 0xFF
## 2. 肯定响应消息数据参数定义
定义
periodicDataIdentifier(周期性数据标识符)
此参数引用请求消息中的 periodicDataIdentifier(周期性数据标识符)。
dataRecord(数据记录)
此参数用在 0x2A 服务的肯定响应消息中,用以向客户端提供所请求的数据记录值。

四、支持的NRC

NRC说明
0x13消息长度不正确或格式无效
0x22条件不正确
若不满足服务器的运行条件而无法执行所需的操作,则应发送此 NRC,例如,若客户端请求不同的 transmissionMode 的 periodicDataIdentifier(周期性数据标识符),但服务器不同时支持多个 transmissionMode,则会出现上述情况。
0x31请求超过限值
以下情况下,应发送此 NRC:
装置不支持所请求的任何 periodicDataIdentifier(周期性数据标识符)值;
当前会话不支持所请求的任何 periodicDataIdentifier(周期性数据标识符);
装置不支持所指定的 transmissionMode;
尚未分配所请求的 dynamicDefinedDataIdentifier(已动态定义的数据标识符);
客户端超过了允许同时调度的 periodicDataIdentifier(周期性数据标识符)的最大数目。
0x33安全访问被拒绝
若至少有一个 periodicDataIdentifier(周期性数据标识符)已受保护,并且服务器未处于解锁状态,则应发送此 NRC。

下图为 0x2A 服务的否定响应码的处理。
0x2A 服务的否定响应码的处理

图例
1. 若 TM = stopSending(SI + TM),则最小长度为 2 个字节;若 TM <> stopSending,则最小长度为 3 个字节(SI + TM + pDID);最大长度为 1 个字节(SI)+ 1 个字节(TM)+ +n 个字节(pDID)。

五、示例

1. 假设

以下各示例展示了 0x2A 服务的运行方式。不论服务器处于何种状态,客户端可随时请求一个periodicDataIdentifier(周期性数据标识符)数据。

下文中的 periodicDataIdentifier(周期性数据标识符)示例因动力系统装置(如,发送机控制模块)而异。

2. 示例 1:以中等速率读取多个 periodicDataIdentifier(周期性数据标识符)0xE3 和 0x24

本示例展示了利用一个单一请求来请求多个 DID 的过程(其中 periodicDataIdentifier(周期性数据标识符)0xE3(= DID 0xF2E3))包含发送机冷却液温度、油门位置、发送机转速、车速传感器,而 periodicDataIdentifier(周期性数据标识符)0x24(= DID 0xF224)包含蓄电池正电压、进气歧管绝对压力、空气质量流量、车辆气压以及计算负载值)。

客户端请求以中等速率传输并在检索周期性数据一定时间后仅停止传输 periodicDataIdentifier(周期性数据标识符)0xE3。

step1:请求周期性传输 periodicDataIdentifier(周期性数据标识符)- 初始肯定响应消息 - 后续肯定响应消息1 - 后续肯定响应消息2

req   2A 02 E3 24
resp  6A
resp E3 (periodicDataIdentifier#1)
	 A6 66 07 50 00 (dataRecord[data#--#5] = {ECT,TP,RPM,RPM,VSS})
resp 24 (periodicDataIdentifier#2)
 	 8C 20 1A 63 4A (dataRecord[data#--#5] = {B+,MAP,MAF,BARO,LOAD})

// 服务器以适用的中等速率传输上述后续响应消息。

step2:停止传输 periodicDataIdentifier(周期性数据标识符)

req   2A 04 E3
resp  6A

// 服务器仅停止传输 periodicDataIdentifier(周期性数据标识符)0xE3。服务器仍以中等速率传输 periodicDataIdentifier(周期性数据标识符)0x24。

3. 示例 2:0x2A 服务的周期性调度速率的图例和表例

1. 0x2A 服务示例概述

本分条款介绍了调度的周期性数据示例,该示例中包含了 0x2A 服务的一个图例和一个表例。

示例中图解了客户端和服务器应用程序之间传输的消息(请求 / 响应),并以表格的形式说明了服务器周期性调度器及其变量的可能的实现过程,以及每次执行用以校验周期性调度器的背景功能时这些变量是如何变化的。

下文示例中确定了如下实现过程:

— 较快周期性速率为 25ms,而中等周期性速率为 300ms。

— 每 12.5ms 校验一次周期性调度器,这意味着在此期间会调用(轮询)周期性调度器的背景功能。每次调用背景周期性调度器时,其会遍历调度器条目,直至发送了一个单一周期性标识符或调度器中的所有标识符均检验完毕且没有标识符已准备好传输。在示例实现过程中,表中的 “周期性调度器传输索引” 变量是遍历调度器以检查是否有标识符已准备好传输时所校验的第一个索引。

— 可并发调度的 periodicDataldentifier(周期性数据标识符)的最大数量为 4 个。

— 已分配一个独特的周期性数据响应消息的地址信息 ID。

由于周期性调度器轮询速率为 12.5ms,因此,每发送一个较快速率的 periodicDataldentifier(周期性数据标识符)时,较快速率循环计数器可能会设为 2(该值基于调度值(25ms)除以周期性调度器轮询速率(12.5 ms)或 25 / 12.5),而每发送一条中等速率的 periodicDataldentifier(周期性数据标识符)时,中等速率循环计数器可能会重置为 24(调度速率除以周期性调度器轮询速率或 300 / 12.5)。

2. 示例:以中等速率读取多个 periodicDataldentifier(周期性数据标识符)0xE3 和 0x24

当 t = 0.0ms 时,客户端开始发送请求以中等速率(300ms)调度 2 个 periodicDataldentifier(周期性数据标识符)(0xF2E3 和 0xF224)。在本示例中,服务器会接收该请求并在第一次 t = 25.0ms 时执行周期性调度器的背景功能。

以中等速率调度的 periodicDataldentifier(周期性数据标识符)

图例
1. 0x2A(0x2A、0x02、0xF2E3 以及 0xF224)的请求消息(sendAtMediumRate(以中等速率发送))
2. 0x2A 的肯定响应消息(0x6A,不包含数据)
3. 0x2A 的周期性数据响应消息(0xE3、0xXX、… 以及 0xXX)
4. 0x2A 的周期性数据响应消息(0x24、0xXX、… 以及 0xXX)

下表说明了服务器中周期性调度器可能的实现过程。该表中包含了周期性调度器变量,并说明了每次执行用以校验周期性调度器的背景功能时这些变量是如何变化的。

时间(ms)周期性调度器传输索引已发送的周期性标识符周期性调度器循环编号调度器[0]传输计数调度器[1]传输计数
25,000xE310 -> 240
37,510x242230 -> 24
50,0032223
62,5042122
75,0052021
87,5061920
100,0071819
112,5081718
125,0091617
137,50101516
150,00111415
162,50121314
175,00131213
187,50141112
200,00151011
212,5016910
225,001789
237,501878
250,001967
262,502056
270,002145
287,502234
300,002323
312,502412
325,000xE3250 -> 241
337,510x2426230 -> 24
350,00272223
362,50282122

4. 示例 3:0x2A 服务的周期性调度速率的图例和表例

1. 0x2A 服务示例概述

本分条款介绍了一个调度的周期性数据示例,该示例中包含了 0x2A 服务的一个图例和一个表例。

该示例基于 示例 2。示例中图解了客户端和服务器应用程序之间传输的消息(请求 / 响应),并以表格的形式说明了服务器周期性调度器及其变量的可能的实现过程,以及每次执行用以校验周期性调度器的背景功能时这些变量是如何变化的。

2. 以不同周期性速率读取多个 periodicDataldentifier(周期性数据标识符)

在本示例中,以较快周期性速率(25ms)调度了三个 periodicDataldentifier(周期性数据标识符)(简单而言为 0x01、0x02 以及 0x03),然后针对将以中等周期性速率(300ms)调度的一个单一 periodicDataldentifier(周期性数据标识符)(0x04)发送了另一个请求。在本示例中,服务器接收了第一条 0x2A 服务请求(1),发送了一条不含任何周期性数据的肯定响应(2),以及针对第一次 t = 25.0ms 执行了周期性调度器的背景功能(3)。当收到第二条 0x2A 服务请求(5)后,服务器会发送一条不含任何周期性数据的肯定响应(7)并开始以调度的中等速率(300ms)在 t = 62.5ms(8)时执行周期性调度器的背景功能。

以较快和中等速率调度的 periodicDataldentifier(周期性数据标识符)

图例
1. 0x2A(0x2A、0x03、0xF201、0xF202 以及 0xF203)的请求消息(sendAtFastRate(以较快速率发送))
2. 0x2A 的肯定响应消息(0x6A,不包含数据)
3. 0x2A 的周期性数据响应消息(0x01、0xXX、… 以及 0xXX)
4. 0x2A 的周期性数据响应消息(0x02、0xXX、… 以及 0xXX)
5. 0x2A(0x2A、0x02 以及 0xF204)的请求消息(sendAtMediumRate(以中等速率发送))
6. 0x2A 的周期性数据响应消息(0x03、0xXX、… 以及 0xXX)
7. 0x2A 的肯定响应消息(0x6A,不包含数据)
8. 0x2A 的周期性数据响应消息(0x04、0xXX、… 以及 0xXX)

下表说明了服务器中周期性调度器可能的实现过程。该表中包含了周期性调度器变量,并说明了每次执行用以校验周期性调度器的背景功能时这些变量是如何变化的。

时间(ms)周期性调度器传输索引已发送的周期性标识符周期性调度器循环编号调度器[0]传输计数调度器[1]传输计数调度器[2]传输计数调度器[3]传输计数
25,000x0110 -> 200不适用
37,510x02210 -> 20不适用
50,020x033010 -> 20
62,530x0440010 -> 24
75,000x0150 -> 20023
87,510x02610 -> 2022
100,020x037010 -> 221
112,530x0180 -> 20120
125,010x02910 -> 2019
137,520x0310010 -> 218
150,030x01110 -> 20117
162,510x021210 -> 2016
175,020x0313010 -> 215
187,530x01140 -> 20114
200,010x021510 -> 2013
212,520x0316010 -> 212
225,030x01170 -> 20111
237,510x021810 -> 2010
250,020x0319010 -> 29
262,530x01200 -> 2018
270,010x022110 -> 207
287,520x0322010 -> 26
300,030x01230 -> 2015
312,510x022410 -> 204
325,020x0325010 -> 23
337,530x01260 -> 2012
350,010x022710 -> 201
362,520x0328010 -> 20
375,030x04290010 -> 24
387,500x01300 -> 20023

5. 示例 4:0x2A 服务的周期性调度速率表例

1. 0x2A 服务示例概述

本分条款介绍了调度的周期性数据示例,该示例中包含了 0x2A 服务的一个表例。该示例包含一个表格,表中说明了服务器周期性调度器及其变量的可能的实现过程,以及每次执行用以校验周期性调度器的背景功能时这些变量是如何变化的。

下例中确定了以下信息:

— 较快周期性速率为 10ms。
— 每 10ms 校验一次周期性调度器,这意味着在此期间会调用(轮询)周期性调度器的背景功能。
— 可并发调度的 periodicDataldentifier(周期性数据标识符)的最大数量为16个。
— 已分配两个独特的周期性数据响应消息的地址信息 ID。

由于周期性调度器轮询速率为 10ms,因此每发送一个较快速率 periodicDataldentifier(周期性数据标识符)时,较快速率循环计数器可能会设为 1(该值基于调度速率(10ms)除以周期性调度器轮询速率(10ms))。

当 t = 0.0ms 时,客户端开始发送请求以较快周期性速率(10ms)调度2个 periodicDataldentifier(周期性数据标识符)(简单而言为 0x01 和 0x02)。在本示例中,服务器会接收该请求并在第一次 t = 10ms 时执行周期性调度器的背景功能。

下表为周期性调度器表。

时间(ms)响应消息 ID 数已发送的周期性标识符周期性调度器循环编号
1010x011
1020x021
2010x012
2020x022
3010x013
3020x023
4010x014
4020x024
5010x015
5020x025
6010x016
6020x026
7010x017
7020x027
8010x018
8020x028
9010x019
9020x029
10010x0110
10020x0210

6. 示例 5:0x2A 服务的周期性调度速率表例

1. 0x2A 服务示例概述

本分条款使用了与示例 4 中相同的假设。在本示例中,响应消息集中请求的 periodicDataldentifier(周期性数据标识符)比独特周期性数据响应消息地址信息 ID 多。

当 t = 0.0ms 时,客户端开始发送请求以较快周期性速率(10ms)调度3个 periodicDataldentifier(周期性数据标识符)(简单而言为 0x01、0x02 以及 0x03)。在本示例中,服务器会接收该请求并在第一次 t = 10ms 时执行周期性调度器的背景功能。

下表为周期性调度器表。

时间(ms)响应消息 ID 数已发送的周期性标识符周期性调度器循环编号
1010x011
1020x021
2010x032
2020x012
3010x023
3020x033
4010x014
4020x024
5010x035
5020x015
6010x026
6020x036
7010x017
7020x027
8010x038
8020x018
9010x029
9020x039
10010x0110
10020x0210

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5个网络监控神器,别说老网工藏私不发给你

前言 是2022年度的精选网络工具安利贴&#xff0c;你都看了没&#xff1f; 现在啊&#xff0c;很多企业公司都有不少的网络硬件&#xff0c;而这些网络硬件设备根据不同的功能&#xff0c;会分散在不同的物理位置上。 可能有些网络硬件设备是集中式管理&#xff0c;有些只能…

2024年掏耳勺买什么样的好?四款优良产品推荐,不可错过

21世纪的到来&#xff0c;全民生活品质得到了飞跃进步&#xff0c;大家逐渐开始关注耳道的健康清洁。传统挖耳勺因直径大、材质硬、无法看清耳道等因素&#xff0c;往往很难满足大部分人群的清洁需求&#xff0c;甚至带来不可逆转的伤害。可视挖耳勺的出现&#xff0c;具备可视…

C++第四十弹---从零开始:模拟实现C++中的unordered_set与unordered_map

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1 哈希概念 2 哈希冲突 3 哈希函数 4 哈希冲突解决 4.1 闭散列 4.1.1. 线性探测 4.1.2. 二次探测 4.2 开散列 4.2.1. 开散列概念 4.2.2…

安卓逆向百例十-币coin

typora-root-url: ./pic安卓逆向百例十-币coin 现在售价依旧是99&#xffe5;,计划更新100案例&#xff0c;平均一个案例1块钱&#xff0c;要什么自行车&#xff01; 案例起源&#xff1a; 有位老哥 经过炒币失败后想做一个这种查询接口的app&#xff0c;但是苦于他的资金比…

windows系统搭建WSUS更新服务问题整理

1、连接微软更新服务器时&#xff0c;总是连接失败&#xff0c;采取了指定TLS1.2连接的方法&#xff0c;还是连接失败。 解决方法&#xff1a;当时服务器的操作系统为windows server 2012 R2&#xff0c;将操作系统换成windows server 2016可以解决这个问题。 2、客户端怎么配…

Linux发送邮件:如何配置SMTP服务器发信?

linux发送邮件至多个收件人的方法&#xff1f;如何用Linux命令&#xff1f; 在Linux系统中&#xff0c;邮件发送是一个常见且重要的功能&#xff0c;无论是用于系统监控通知还是日常通信。AokSend将详细介绍如何在Linux环境下配置SMTP服务器&#xff0c;以确保您的邮件发送既高…

探索RAG与Multi-Agent的结合:解决复杂任务的新方法

最近帮企业定制了一个langgraphrag的项目&#xff0c;跟大家简单介绍一下设计架构和具体的应用。如果大家有兴趣&#xff0c;我也可以出一期视频&#xff0c;给大家详细介绍一下。我们会一步步探讨如何构建一个可以控的Agent&#xff0c;以执行RAG任务&#xff0c;并最终展示一…

C#为复杂属性提供下拉式编辑框和弹出式编辑框

一.为属性提供编辑类 弹出式和下拉式是如何实现的呢&#xff0c;这需要为属性提供一个专门的编辑类。.Net为我们提供了一个System.Drawing.Design.UITypeEditor类&#xff0c;它是所有编辑类的基类&#xff0c;从他继承出了诸如ColorEditor、FontEditor的类&#xff0c;因此我们…

信刻光盘摆渡系统安全合规实现跨网数据单向导入/导出

在当今信息化、数字化时代&#xff0c;各种数据传输和储存技术发展迅速&#xff0c;各安全领域行业对跨网数据交互需求日益迫切&#xff0c;数据传输的安全可靠性对于整个过程的重要性不可忽视。应如何解决网络安全与效率之间的矛盾&#xff0c;如何安全合规地实现跨网数据单向…

Spring Cloud Gateway 之动态路由

前言 熟悉 Spring Cloud Gateway 的人都知道 Gateway 提供了鉴权、路由等功能&#xff0c;本篇我们重点分析的是 Gateway 的动态路由功能。 Gateway Actuator API 方法源码解析 Spring Cloud Gateway 的 Actuator 端点允许监视 Spring Cloud Gateway 应用程序并与之交互&…

k8s学习(三十八) 使用OpenTelemetry+jaeger实现链路追踪

文章目录 前言一、安装jaeger二、安装cert-manager三、安装OpenTelemetry Operator四、配置 OpenTelemetry Collector五、配置 Instrumentation六、编写java示例程序并测试调用链跟踪 前言 OpenTelemetry 可以用于从应用程序收集数据。它是一组工具、API 和 SDK 集合&#xff…

《黑神话:悟空》Steam全球评价出炉:18个语言区好评率超90%

《黑神话&#xff1a;悟空》Steam在线人数已经不断打破纪录&#xff0c;连续三天刷榜&#xff0c;目前最高成绩超过241万。这个成绩也稳坐总榜第二&#xff0c;同时也是单机游戏的历史第一。 除了游玩人数之外&#xff0c;该作的评价口碑也非常出色&#xff0c;根据媒体汇总的数…

Flutter->`Flutter` 通过`ffi`调用`Rust`编译生成的产物.so文件(Android)和.a文件(iOS)接口方法

flutter_rust_ffi Flutter 通过ffi调用Rust编译生成的产物.so文件(Android)和.a文件(iOS)接口方法; 拾用本文您将获取以下技能: Rust编译.so文件的能力;Rust编译.a文件的能力;Flutter调用.so文件的能力;Flutter调用.a文件的能力; 附加Buff: Flutter环境安装指南;Rust环境安…

游戏行业如此竞争激烈,个人开发者是否仍存机会?

在当今这个数字化时代&#xff0c;游戏行业以其庞大的市场规模、高速的增长速度以及无限的创意空间&#xff0c;吸引了无数开发者投身其中。然而&#xff0c;随着技术的进步、资本的涌入以及大型游戏公司的强势扩张&#xff0c;游戏行业的竞争日益激烈&#xff0c;似乎形成了一…

选择合适系统

选择合适系统 原厂SDK系统 硬件兼容性 ⭐⭐⭐⭐⭐软件功能完善度 ⭐⭐⭐⭐⭐开发使用难度 ⭐⭐⭐⭐⭐烧写工具 全志自家烧录器。 TinaSDK-4.0 TF卡系统镜像 tina_v851se-tinyvision_uart0.img 默认TinaSDK编译出来 支持ADB 和默认SDK兼容性最好 tina-4.0_cameratest_ti…

使用知识图谱,大幅提升RAG准确性

大家好&#xff0c;图形检索—增强生成&#xff08;GraphRAG&#xff09;的发展势头日益强劲&#xff0c;已成为传统向量搜索检索方法的有力补充。这种方法利用图数据库的结构化特性&#xff0c;将数据组织为节点和关系&#xff0c;从而增强了检索信息的深度和上下文关联性。 知…

Stablediffusion有哪几种模型,小白入门必看!

前言 在Stable Diffusion中&#xff0c;模型有好几种&#xff0c;不同插件有不同的模型&#xff0c;分别作用于不同的功能。 今天卧龙君就带着大家一起来了解一下。 大模型&#xff1a;Stable Diffusion StableDiffusion大模型&#xff0c;可以理解为绘画风格集合&#xff…

16:【stm32】I2C的使用一:I2C片上外设的使用

I2C 1、片上外设1.1&#xff1a;寄存器与内部结构 2、通过I2C向外发送数据2.1&#xff1a;I2C的初始化2.1.1&#xff1a;初始化SCL和SDA2.1.2&#xff1a;使能时钟PCLK1&#xff08;APB1&#xff09;2.1.3&#xff1a;配置I2C1的参数 2.2&#xff1a;发送数据2.2.1&#xff1a;…

P2P 文件共享:现代网络中的高效文件传输

在互联网的世界中&#xff0c;不同应用程序的数据传输方法各异。P2P文件共享&#xff08;Peer-to-Peer File Sharing&#xff09; 作为一种高效的文件传输方式&#xff0c;使得用户可以在没有中央服务器的情况下直接进行文件交换。本文将详细介绍P2P文件共享的基本原理、优势及…

【通俗理解】CNN复杂度——卷积神经网络的计算成本解析

【通俗理解】CNN复杂度——卷积神经网络的计算成本解析 关键词提炼 #CNN复杂度 #卷积神经网络 #计算成本 #输入数据尺寸 #卷积核大小 #卷积核数量 #复杂度公式 第一节&#xff1a;CNN复杂度的类比与核心概念【尽可能通俗】 1.1 CNN复杂度的类比 CNN的复杂度就像是烹饪一道大…