【DBC专题】-12-不同类型报文(应用/诊断/网关/测量标定)在DBC中配置,以及在Autosar各模块间的信号数据流向

点击返回「Autosar从入门到精通-实战篇」总目录

案例背景(共18页精讲):该篇博文将告诉您:
1)Autosar中,不同类型报文(App应用UDS/OBD诊断NM网络管理报文XCP测量标定)的信号数据流向
2)CAN DBC中,不同的Attribute属性决定不同类型报文(App应用UDS/OBD诊断NM网络管理报文XCP测量标定)。
3)TechnicalReference-DbcRules-Vector文件下载,见下方链接:

TechnicalReference-DbcRules-Vectorhttps://download.csdn.net/download/qfmzhu/87580682

目录

1 Autosar中不同类型报文(应用/诊断/网络管理/测量标定)的信号数据流向

1.1 普通APP应用报文信号数据流向

1.1.1 多路复用Multiplexer报文信号数据流向

1.2 UDS/OBD诊断报文信号数据流向

1.3 NM网络管理报文信号数据流向

1.4 XCP测量标定报文信号数据流向

2 CAN DBC中如何定义不同类型报文(应用/诊断/网络管理/测量标定)

3 如何制作一个Autosar工具能够识别的CAN DBC

3.1 节点的定义

3.2 普通App帧配置

3.2.1 普通App Tx发送帧配置

3.2.2 普通App Rx接收帧配置

3.3 UDS/OBD诊断帧配置

3.3.1 UDS/OBD诊断功能请求帧配置

3.3.2 UDS/OBD诊断物理请求帧配置

3.3.3 UDS/OBD诊断诊断响应帧配置

3.4 NM网络管理帧配置

3.4.1 NM网络管理发送帧配置

3.4.2 NM网络管理接收帧配置

3.5 XCP测量标定帧配置

3.5.1 XCP测量标定发送帧配置

3.5.2 XCP测量标定接收帧配置

3.6 附件:Autosar工具能够使用的Demo.dbc

4 摘录:Autosar工具中使用的CAN DBC常用属性

结尾


优质博文推荐阅读(单击下方链接,即可跳转):

Vector工具链

CAN Matrix DBC

CAN Matrix Arxml

<--返回「实战篇」博文-总目录-->

<--返回「Autosar从入门到精通-实战篇」专栏主页-->

1 Autosar中不同类型报文(应用/诊断/网络管理/测量标定)的信号数据流向

经典CAN/CANFD通信为例,不同类型报文(应用/诊断/网络管理/测量标定)在Autosar BSW层中的信号数据流向,见图1-1。

图1-1

COM:Communication

DCM: Diagnostic Communication Manager

Ipdum: IPDU Multiplexer

PduR:PDU Router

Nm: Network Management

CanTp: CAN Transport Layer

CanIf: CAN Interface

1.1 普通APP应用报文信号数据流向

如图1-1所述:

Rx 接收一帧普通的APP应用报文信号数据流向:CAN Driver – > CanIf -- > PduR -- > Com

Tx 发送一帧普通的APP应用报文信号数据流向:Com – > PduR – > CanIf – > CAN Driver

1.1.1 多路复用Multiplexer报文信号数据流向

如图1-2所述:

Rx 接收一帧多路复用Multiplexer报文信号数据流向:CAN Driver – > CanIf -- > PduR -- > Ipdum – > PduR -- > Com

Tx 发送一帧多路复用Multiplexer报文信号数据流向:Com – > PduR – > Ipdum – > PduR -- > CanIf – > CAN Driver

图1-2

1.2 UDS/OBD诊断报文信号数据流向

如图1-1所述:

Rx 接收一帧UDS/OBD诊断报文信号数据流向:CAN Driver – > CanIf -- > CanTp -- > PduR -- > Dcm

Tx 发送一帧UDS/OBD诊断报文信号数据流向:Dcm – > PduR – > CanTp -- > CanIf – > CAN Driver

1.3 NM网络管理报文信号数据流向

如图1-3所述:

Rx 接收一帧NM网络管理信号数据流向:CAN Driver – > CanIf -- > CanNm -- > PduR -- > Com

Tx 发送一帧NM网络管理信号数据流向:Com – > PduR – > CanNm -- > CanIf – > CAN Driver

图1-3

1.4 XCP测量标定报文信号数据流向

如图1-1所述:

Rx 接收一帧XCP测量标定报文信号数据流向:CAN Driver – > CanIf -- > XCP

Tx 发送一帧XCP测量标定报文信号数据流向:XCP -- > CanIf – > CAN Driver

2 CAN DBC中如何定义不同类型报文(应用/诊断/网络管理/测量标定)

CAN DBC中,不同的Attribute属性定义,决定了不同类型的报文:APP应用报文UDS/OBD诊断报文NM网络管理报文XCP测量标定报文

Vector Davinci提供的《TechnicalReference_DbcRules_Vector.pdf》文档中,说明了CAN DBC文件中,不同类型报文AttributesGenMsgILSupport,DiagState,DiagRequest,DiagResponse,NmAsrMessage)定义,见下表。

Attribute属性

GenMsgILSupport

DiagState

DiagRequest

DiagResponse

NmAsrMessage

APP应用报文

Yes

No

No

No

No

UDS/OBD诊断报文

No

Yes/No

Yes/No

Yes/No

No

NM网络管理报文

No

No

No

No

Yes

XCP测量标定报文

No

No

No

No

No

3 如何制作一个Autosar工具能够识别的CAN DBC

制作一个完整的CAN DBC,过程可参考博文“【DBC专题】-1-如何使用CANdb++ Editor创建并制作一个DBChttps://blog.csdn.net/qfmzhu/article/details/111403266”,第3.2~3.5章节摘录了message配置,需要重点关注的地方:发送节点,接收节点,属性设置差异。

Autosar工具链导入CAN DBC可参考博文:

【DaVinci Configurator专题】-2-将CAN 2.0或CANFD Matrix的Arxml/DBC文件导入到CFGhttps://blog.csdn.net/qfmzhu/article/details/115032771

3.1 节点的定义

在Network nodes中,至少定义4个节点,见图3-1:

  • 当前所在ECU的节点名称:默认为DCDC;
  • 定义若干个该ECU的接收节点:以VCU为例,这些节点中存在NM帧发送节点
  • 定义一个UDS/OBD诊断/测试仪节点:以Test为例。
  • 定义一个XCP测量标定节点:以MCD为例。

图3-1

3.2 普通App帧配置

3.2.1 普通App Tx发送帧配置

3.2.2 普通App Rx接收帧配置

3.3 UDS/OBD诊断帧配置

3.3.1 UDS/OBD诊断功能请求帧配置

3.3.2 UDS/OBD诊断物理请求帧配置

3.3.3 UDS/OBD诊断诊断响应帧配置

3.4 NM网络管理帧配置

3.4.1 NM网络管理发送帧配置

3.4.2 NM网络管理接收帧配置

3.5 XCP测量标定帧配置

3.5.1 XCP测量标定发送帧配置

3.5.2 XCP测量标定接收帧配置

3.6 附件:Autosar工具能够使用的Demo.dbc

将以下内容复制到一个txt文件中,并保存,接着将文件后缀txt用dbc替换,这样可以快速得到这个demo.dbc文件。

VERSION ""


NS_ : 
	NS_DESC_
	CM_
	BA_DEF_
	BA_
	VAL_
	CAT_DEF_
	CAT_
	FILTER
	BA_DEF_DEF_
	EV_DATA_
	ENVVAR_DATA_
	SGTYPE_
	SGTYPE_VAL_
	BA_DEF_SGTYPE_
	BA_SGTYPE_
	SIG_TYPE_REF_
	VAL_TABLE_
	SIG_GROUP_
	SIG_VALTYPE_
	SIGTYPE_VALTYPE_
	BO_TX_BU_
	BA_DEF_REL_
	BA_REL_
	BA_DEF_DEF_REL_
	BU_SG_REL_
	BU_EV_REL_
	BU_BO_REL_
	SG_MUL_VAL_

BS_:

BU_: MCD Tester VCU DCDC


BO_ 1809 XCP_Tx_Message: 8 DCDC
 SG_ DCDC_to_MCD_Resp : 7|64@0+ (1,0) [0|0] ""  MCD

BO_ 1808 XCP_Rx_Message: 8 MCD
 SG_ MCD_Req : 7|64@0+ (1,0) [0|0] ""  DCDC

BO_ 513 NM_Tx_Message: 8 DCDC
 SG_ NM_Tx_Message_Signal : 7|8@0+ (1,0) [0|0] ""  VCU

BO_ 512 NM_Rx_Message: 8 VCU
 SG_ NM_Rx_Message_Signal : 7|8@0+ (1,0) [0|0] ""  DCDC

BO_ 1794 Diag_Response: 8 DCDC
 SG_ DCDC_to_Tester_Phy_Resp : 7|64@0+ (1,0) [0|0] ""  Tester

BO_ 1793 Diag_Physical_Request: 8 Tester
 SG_ Tester_Phy_Req : 7|64@0+ (1,0) [0|0] ""  DCDC

BO_ 1792 Diag_Function_Request: 8 Tester
 SG_ Tester_Fun_Req : 7|64@0+ (1,0) [0|0] ""  DCDC

BO_ 256 APP_Rx_Message: 8 VCU
 SG_ APP_Rx_Message_Signal : 7|8@0+ (1,0) [0|0] ""  DCDC

BO_ 257 APP_Tx_Message: 8 DCDC
 SG_ APP_Tx_Message_Signal : 7|8@0+ (1,0) [0|0] ""  VCU



BA_DEF_ BU_  "NmStationAddress" INT 0 127;
BA_DEF_  "NmBaseAddress" HEX 1152 1279;
BA_DEF_  "Manufacturer" STRING ;
BA_DEF_ SG_  "GenSigInactiveValue" INT 0 2147483647;
BA_DEF_ SG_  "GenSigSendType" ENUM  "Cyclic","OnWrite","OnWriteWithRepetition","OnChange","OnChangeWithRepetition","IfActive","IfActiveWithRepetition","NoSigSendType","OnChangeAndIfActive","OnChangeAndIfActiveWithRepetition","vector_leerstring";
BA_DEF_ SG_  "GenSigStartValue" INT 0 2147483647;
BA_DEF_ BO_  "DiagRequest" ENUM  "no","yes";
BA_DEF_ BO_  "DiagResponse" ENUM  "no","yes";
BA_DEF_ BO_  "DiagState" ENUM  "no","yes";
BA_DEF_ BO_  "DiagUudtResponse" ENUM  "false","true";
BA_DEF_ BO_  "NmAsrMessage" ENUM  "No","Yes";
BA_DEF_ BO_  "GenMsgCycleTime" INT 0 65535;
BA_DEF_ BO_  "GenMsgCycleTimeFast" INT 0 65535;
BA_DEF_ BO_  "GenMsgDelayTime" INT 0 65535;
BA_DEF_ BO_  "GenMsgFastOnStart" INT 0 65535;
BA_DEF_ BO_  "GenMsgILSupport" ENUM  "no","yes";
BA_DEF_ BO_  "GenMsgNrOfRepetition" INT 0 999;
BA_DEF_ BO_  "GenMsgSendType" ENUM  "Cyclic","NotUsed","NotUsed","NotUsed","NotUsed","NotUsed","NotUsed","IfActive","NoMsgSendType";
BA_DEF_ BO_  "GenMsgStartDelayTime" INT 0 65535;
BA_DEF_ BO_  "TpTxIndex" INT 0 255;
BA_DEF_  "BusType" STRING ;
BA_DEF_ SG_  "GenSigTimeoutTime" INT 0 65535;
BA_DEF_DEF_  "NmStationAddress" 0;
BA_DEF_DEF_  "NmBaseAddress" 1152;
BA_DEF_DEF_  "Manufacturer" "Vector";
BA_DEF_DEF_  "GenSigInactiveValue" 0;
BA_DEF_DEF_  "GenSigSendType" "";
BA_DEF_DEF_  "GenSigStartValue" 0;
BA_DEF_DEF_  "DiagRequest" "";
BA_DEF_DEF_  "DiagResponse" "";
BA_DEF_DEF_  "DiagState" "";
BA_DEF_DEF_  "DiagUudtResponse" "";
BA_DEF_DEF_  "NmAsrMessage" "";
BA_DEF_DEF_  "GenMsgCycleTime" 0;
BA_DEF_DEF_  "GenMsgCycleTimeFast" 0;
BA_DEF_DEF_  "GenMsgDelayTime" 0;
BA_DEF_DEF_  "GenMsgFastOnStart" 0;
BA_DEF_DEF_  "GenMsgILSupport" "";
BA_DEF_DEF_  "GenMsgNrOfRepetition" 0;
BA_DEF_DEF_  "GenMsgSendType" "Cyclic";
BA_DEF_DEF_  "GenMsgStartDelayTime" 0;
BA_DEF_DEF_  "TpTxIndex" 0;
BA_DEF_DEF_  "BusType" "CAN";
BA_DEF_DEF_  "GenSigTimeoutTime" 0;
BA_ "DiagRequest" BO_ 1809 0;
BA_ "DiagResponse" BO_ 1809 0;
BA_ "DiagState" BO_ 1809 0;
BA_ "DiagUudtResponse" BO_ 1809 0;
BA_ "NmAsrMessage" BO_ 1809 0;
BA_ "GenMsgILSupport" BO_ 1809 0;
BA_ "GenMsgSendType" BO_ 1809 8;
BA_ "DiagRequest" BO_ 1808 0;
BA_ "DiagResponse" BO_ 1808 0;
BA_ "DiagState" BO_ 1808 0;
BA_ "DiagUudtResponse" BO_ 1808 0;
BA_ "NmAsrMessage" BO_ 1808 0;
BA_ "GenMsgILSupport" BO_ 1808 0;
BA_ "GenMsgSendType" BO_ 1808 8;
BA_ "DiagRequest" BO_ 513 0;
BA_ "DiagResponse" BO_ 513 0;
BA_ "DiagState" BO_ 513 0;
BA_ "DiagUudtResponse" BO_ 513 0;
BA_ "NmAsrMessage" BO_ 513 1;
BA_ "GenMsgCycleTime" BO_ 513 200;
BA_ "GenMsgILSupport" BO_ 513 0;
BA_ "GenMsgSendType" BO_ 513 0;
BA_ "DiagRequest" BO_ 512 0;
BA_ "DiagResponse" BO_ 512 0;
BA_ "DiagState" BO_ 512 0;
BA_ "DiagUudtResponse" BO_ 512 0;
BA_ "NmAsrMessage" BO_ 512 1;
BA_ "GenMsgCycleTime" BO_ 512 200;
BA_ "GenMsgILSupport" BO_ 512 0;
BA_ "GenMsgSendType" BO_ 512 0;
BA_ "DiagRequest" BO_ 1794 0;
BA_ "DiagResponse" BO_ 1794 1;
BA_ "DiagState" BO_ 1794 0;
BA_ "DiagUudtResponse" BO_ 1794 1;
BA_ "NmAsrMessage" BO_ 1794 0;
BA_ "GenMsgILSupport" BO_ 1794 0;
BA_ "GenMsgSendType" BO_ 1794 8;
BA_ "DiagRequest" BO_ 1793 1;
BA_ "DiagResponse" BO_ 1793 0;
BA_ "DiagState" BO_ 1793 0;
BA_ "DiagUudtResponse" BO_ 1793 1;
BA_ "NmAsrMessage" BO_ 1793 0;
BA_ "GenMsgILSupport" BO_ 1793 0;
BA_ "GenMsgSendType" BO_ 1793 8;
BA_ "DiagRequest" BO_ 1792 0;
BA_ "DiagResponse" BO_ 1792 0;
BA_ "DiagState" BO_ 1792 1;
BA_ "DiagUudtResponse" BO_ 1792 1;
BA_ "NmAsrMessage" BO_ 1792 0;
BA_ "GenMsgILSupport" BO_ 1792 0;
BA_ "GenMsgSendType" BO_ 1792 8;
BA_ "DiagRequest" BO_ 256 0;
BA_ "DiagResponse" BO_ 256 0;
BA_ "DiagState" BO_ 256 0;
BA_ "DiagUudtResponse" BO_ 256 0;
BA_ "NmAsrMessage" BO_ 256 0;
BA_ "GenMsgCycleTime" BO_ 256 100;
BA_ "GenMsgILSupport" BO_ 256 1;
BA_ "GenMsgSendType" BO_ 256 0;
BA_ "GenMsgCycleTime" BO_ 257 100;
BA_ "DiagRequest" BO_ 257 0;
BA_ "DiagResponse" BO_ 257 0;
BA_ "DiagState" BO_ 257 0;
BA_ "DiagUudtResponse" BO_ 257 0;
BA_ "NmAsrMessage" BO_ 257 0;
BA_ "GenMsgCycleTimeFast" BO_ 257 20;
BA_ "GenMsgDelayTime" BO_ 257 10;
BA_ "GenMsgILSupport" BO_ 257 1;
BA_ "GenMsgNrOfRepetition" BO_ 257 3;
BA_ "GenMsgSendType" BO_ 257 7;
BA_ "GenMsgStartDelayTime" BO_ 257 10;

4 摘录:Autosar工具中使用的CAN DBC常用属性

Attribute Name

Object Type

Value Type

Values and Ranges

(Bold = default)

Description

Manufacturer

Network

String

Vector

表示OEM。value必须是 " Vector "。

BusType

Network

String

CAN

CAN FD

定义CAN-2.0和CAN-FD网络。如果至少有一个CAN-FD报文,则必须设置为 "CAN FD"。

VFrameFormat

Message

Enum

CAN Standard

CAN Extended

CAN FD Standard

CAN FD Extended

表示CAN报文的种类。这个属性对每个报文都是可用的,在属性定义中没有声明。它的显示文本是 "ID-Format "或 "Type"。

GenMsgILSupport

Message

Enum

No: 0

Yes: 1

表示一个消息将由COM处理。如果选择 "yes",该信息将由COM处理,否则不处理。

GenMsgSendType

Message

Enum

Cyclic: 0,

NotUsed,

NotUsed,

NotUsed,

NotUsed,

NotUsed,

NotUsed,

NotUsed,

NoMsgSendType: 8

指定I-PDU的Tx行为。可以与任何类型的GenSigSendType相结合。

GenSigSendType

Signal

Enum

Cyclic: 0,

OnWrite: 1,

OnWriteWithRepetition: 2,

OnChange: 3,

OnChangeWithRepetition: 4, NotUsed,

NotUsed,

NoSigSendType: 7

指定一个信号的Tx行为。OnChange仅支持<=4 Byte的信号。

请注意:带重复的发送类型和不带重复的发送类型的组合将导致信息在任何时候都是带重复的发送。

GenMsgCycleTime

Message

Integer

0..65535

每次循环发送信息之间的时间,单位是毫秒。

GenMsgCycleTimeFast

Message

Integer

0..65535

如果至少有一个IfActiveSignal的默认值不同,则每次循环发送消息之间的时间(ms)。

也适用于有重复的消息(即GenMsgNrOfRepetition > 0)。每次重复的时间间隔。

GenSigStartValue

Signal

Integer

Float

0..2147483647

这个值是信号的默认值。

字符串值类型可以表示十六进制和整数值。

GenSigInactiveValue

Signal

Integer

0..2147483647

表示信号的无效值。

GenMsgDelayTime

Message

Integer

0..65535

这是具有相同标识符的不同信息发送之间的最小时间,单位是ms。

GenMsgStartDelayTime

Message

Integer

0..65535

这定义了Com_IpduGroupStart和这个I-PDU的循环部分的第一次发送之间的时间,单位是ms。

GenMsgNrOfRepetition

Message

Integer

0..255

在一个初始发送请求之后的发送重复次数。重复之间的时间必须使用dbc属性GenMsgCycleTimeFast来定义。

GenSigTimeoutTime_<Ecu>

Signal

Integer

0..65535

用于特定节点收到的该信号的超时时间(ms)。

如果为一个消息配置了不同的GenSigTimeoutTime值,并且没有使用更新位,那么最低的超时时间(最强的定义)被用于超时监测。

必须为每个接收此信号的ECU提供一个专门的属性定义(GenSigTimeoutTime_<Ecu>)。

NmAsrMessage

Message

Enum

No = 0,

Yes = 1

该属性定义了相应的消息是否是AUTOSAR NM消息

DiagState

Message

Enum

No = 0,

Yes = 1

设置为 "yes",用于

> Functional (UDS) request

CanTp将使用Normal addressing。

DiagRequest

Message

Enum

No = 0,

Yes = 1

设置为 "yes",用于

> Physical Request

CanTp将使用Normal addressing。

DiagResponse

Message

Enum

No = 0,

Yes = 1

设置为 "是",用于。

> Physical Response

CanTp将使用Normal addressing。

<--返回「实战篇」博文-总目录-->

<--返回「Autosar从入门到精通-实战篇」专栏主页-->

<--返回「个人博客」首页-->

结尾

获取更多“汽车电子资讯”和“工具链使用”,

请关注CSDN博客“汽车电子助手”,做您的好助手。

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

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

相关文章

【IoT】嵌入式驱动开发:IIC子系统

IIC有三种接口实现方式 三种时序对比: 图1 IIC子系统组成 图2 图3 IIC操作流程 设备端 1.i2c_get_adapter 2.i2c_new_device(相当于register设备) 3.I2c_put_adapter 驱动端 1.填充i2c_driver 2.i2c_add_driver(相当于register驱动) 3.在probe中建立访问方式 client相…

蓝桥杯刷题冲刺 | 倒计时22天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.选数异或2.特殊年份1.选数异或 题目 链接&#xff1a; 选数异或 - 蓝桥云课 (lanqiao.cn) 给定…

C++修炼之筑基期第一层——认识类与对象

文章目录&#x1f337;专栏导读&#x1f337;什么是面向对象&#xff1f;&#x1f337;类的引入&#x1f337;什么是类&#x1f337;类的定义方式&#x1f337;类的访问限定符与封装&#x1f33a;访问限定符&#x1f33a;封装&#x1f337;类的作用域&#x1f337;类的实例化&a…

基于STM32的ADC采样及各式滤波实现(HAL库,含VOFA+教程)

前言&#xff1a;本文为手把手教学ADC采样及各式滤波算法的教程&#xff0c;本教程的MCU采用STM32F103ZET6。以HAL库的ADC采样函数为基础进行教学&#xff0c;通过各式常见滤波的实验结果进行分析对比&#xff0c;搭配VOFA工具直观的展示滤波效果。ADC与滤波算法都是嵌入式较为…

今天,我终于学懂了C++中的引用

文章目录一、前言二、概念介绍三、引用的五大特性1、引用在定义时必须初始化2、一个变量可以有多个引用3、一个引用可以继续有引用4、引用一旦引用一个实体&#xff0c;再不能引用其他实体5、可以对任何类型做引用【变量、指针....】四、引用的两种使用场景1、做参数a.案例一&a…

vue大型商城系统中遇到的问题(上)

一&#xff1a;创建仓库1.领导创建git仓库&#xff08;参考————这篇文章&#xff09;&#xff0c;新手下载git2.打开cmd终端&#xff0c;将git仓库拉到本地3.进入文件目录&#xff0c;查看分支&#xff08;新手向——为什么需要创建分支&#xff0c;查看---&#xff09;4.创…

SAP 发出商品业务配置

SAP发出商品业务配置&#xff0c;即&#xff1a; 出具销售发票时结转成本 一、业务背景&#xff1a; 发出商品业务简单的理解为跨月开票&#xff0c;即出库与开票不在同一个月份。 该业务在系统内的实现方式&#xff0c;为保证成本与收入的配比&#xff0c;在出库时不计算成…

JDBC概述

1.1 数据的持久化持久化(persistence)&#xff1a;把数据保存到可掉电式存储设备中以供之后使用。大多数情况下&#xff0c;特别是企业级应用&#xff0c;数据持久化意味着将内存中的数据保存到硬盘上加以”固化”&#xff0c;而持久化的实现过程大多通过各种关系数据库来完成。…

LeetCode-复制带随机指针的链表

题目描述&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成&#xff0c;其中每个新节点的值都设为其对应的…

蓝桥杯备赛 [day01]|python|迷宫问题|乘积尾零|平方和|切面条|付账问题

目录 0 题目类型 1 迷宫问题 图解 2 乘积尾零 算法解释 用Python处理大数 用C编码 3 平方和 解题技巧 4 切面条 算法解释 5 贪心问题——付账问题 ​编辑 思路 求解步骤 0 题目类型 (1)杂题。不需要算法和数据结构&#xff0c;只需要逻辑、推理的题目&#x…

C/C++每日一练(20230319)

目录 1. 反转链表 II &#x1f31f;&#x1f31f; 2. 解码方法 &#x1f31f;&#x1f31f; 3. 擅长编码的小k &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 …

解决win10任何程序打开链接仍然为老旧IE的顽固问题[修改默认浏览器]

文章目录一、问题与修改原因1、着手修改吧2、弯路上探索3、发现祸根二、后话文章原出处&#xff1a; https://blog.csdn.net/haigear/article/details/129344503一、问题与修改原因 我们发现&#xff0c;很多程序默认的网页打开浏览器都是IE&#xff0c;这个很是郁闷&#xff…

jira提交bug规范

一、目的 1&#xff09;方便开发人员根据bug描述快速进行定位问题原因&#xff0c;减少沟通成本。 2&#xff09;规范bug编写&#xff0c;可以提现测试团队的专业性、严谨性。 3&#xff09;可以帮助产品、项目经理及其它人员快速了解bug。 二、说明 本文档主要描述了技术产…

ThreadPool线程池源码解析

ThreadPool线程池源码解析 文章目录前言一、基本使用二、执行流程三、源码分析ThreadPoolExecutor 中重要属性ThreadPoolExecutor 内部类Workerexecute&#xff08;&#xff09;方法addWorker(command, true)方法runWorker(worker )方法getTask()方法shutdown和shutdownNow四、…

进阶C语言:指针的进阶(1)

关于指针这个概念从初识C语言就开始进行了解&#xff0c;一直到了进阶C语言&#xff0c;通过前面初识C语言和初阶C语言对指针的学习还是不够深入&#xff0c;所以在进阶中再来对指针进行深入的学习指针的主题&#xff1a;1. 指针就是个变量&#xff0c;用来存放地址&#xff0c…

10从零开始学Java之开发Java必备软件Intellij idea的安装配置与使用

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言壹哥在前面的文章中&#xff0c;带大家下载、安装、配置了Eclipse这个更好用的IDE开发工具&#xff0c;并教会了大家如何在Ecli…

【数据结构】链表相关题目(中档题)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

百度文心一言对标 ChatGPT,你怎么看?

文心一言 VS ChatGPT接受不完美 期待进步里程碑意义文心一言初体验✔ 文学创作✔ 商业文案创作✔ 数理逻辑推算✔ 中文理解✔ 多模态生成写在最后何为文心&#xff1f;“文”就是我们中华语言文字中的文&#xff0c;“心”是希望该语言模型可以用心的去理解语言&#xff0c;用心…

学习 Python 之 Pygame 开发魂斗罗(十二)

学习 Python 之 Pygame 开发魂斗罗&#xff08;十二&#xff09;继续编写魂斗罗1. 修改玩家扣减生命值2. 解决玩家下蹲子弹不会击中玩家而是直接让玩家死亡的问题3. 完善地图4. 增加产生敌人函数&#xff0c;解决一直产生敌人的问题5. 给玩家类增加计算玩家中心的方法继续编写魂…

遗传算法原理及案例解析

一、遗传算法原理遗传算法—进化算法&#xff08;Genetic Algorithm GA&#xff09;源自达尔文进化论的物竞天择适者生存思想。它是通过模拟生物进化的过程&#xff0c;搜索全局最优解的一种算法。算法可应用于优化问题&#xff0c;当一个问题有N种解决方案时&#xff0c;如何选…