当前位置: 首页 > news >正文

AUTOSAR LIN: LDF(LIN Description File)文件解析

LDF文件示例

LIN_description_file "lin_example.ldf"
{ LIN_protocol_version = "2.0";LIN_language_version = "2.0";nodes {master: MasterNode;slaves: SlaveNode1, SlaveNode2;};signals {Signal1:  MasterNode, SlaveNode1;Signal2:  MasterNode, SlaveNode2;};frames {frame Frame1: 64  MasterNode{Signal1, 8, Signal2, 8;};};schedule_table NormalTable{delay 5 ms;frame Frame1;};
}

详细解释:

LIN_description_file “lin_example.ldf”:定义了LDF文件的名称。
LIN_protocol_version = “2.0” 和 LIN_language_version = “2.0”:定义了LIN协议和语言的版本。
nodes:定义了网络中的主节点和从节点。在这个例子中,有一个主节点(MasterNode)和两个从节点(SlaveNode1和SlaveNode2)。
signals:定义了网络中的信号。在这个例子中,有两个信号(Signal1和Signal2),并指定了每个信号的发送者和接收者。
frames:定义了网络中的报文帧。在这个例子中,有一个报文帧(Frame1),由主节点发送,包含了两个信号(Signal1和Signal2),每个信号的长度都是8位。
schedule_table:定义了一个调度表,规定了报文帧的发送时间。在这个例子中,每5毫秒发送一次Frame1。

文件头(Header)

文件头(Header)部分包含了一些关键字和信息,用于描述LIN网络的基本属性和配置。
示例

VERSION "1.0"
DATE "2022-01-01"
MANUFACTURER "ABC Corp"
LIN_speed 9600
LIN_protocol_version "2.1"
LANGUAGE "English"
BAUD_RATE 19200
CHANNEL 1

常用的关键字

  1. VERSION:指定LDF文件的版本号。 格式为VERSION “<版本号>”。 版本号可以是任意字符串,用于标识LDF文件的版本信息。 例如:VERSION “1.0”。
  2. DATE:指定LDF文件的创建或修改日期。 格式为DATE “<日期>”。 日期的格式可以是任意字符串,一般按照特定的日期格式(如"YYYY-MM-DD")进行指定。 例如:DATE “2022-01-01”。
  3. MANUFACTURER:指定LDF文件的制造商或创建者。 格式为MANUFACTURER “<制造商名称>”。 制造商名称可以是任意字符串,用于标识LDF文件的制造商或创建者。 例如:MANUFACTURER “ABC Corp”。
  4. LIN_speed:指定LIN网络的通信速率。 格式为LIN_speed <速率>。 速率可以是整数或浮点数,表示数据传输的速率,单位为kbps(千比特每秒)。 例如:LIN_speed 9600。
  5. LIN_protocol_version:指定LIN协议的版本号。 格式为LIN_protocol_version “<版本号>”。 版本号可以是任意字符串,用于标识LIN协议的版本信息。 例如:LIN_protocol_version
    “2.1”。
  6. LANGUAGE:指定LDF文件中使用的语言。 格式为LANGUAGE “<语言名称>”。 语言名称可以是任意字符串,用于标识LDF文件中使用的语言。 例如:LANGUAGE “English”。
  7. BAUD_RATE:指定LIN网络的波特率。 格式为BAUD_RATE <波特率>。 波特率可以是整数或浮点数,表示数据传输的速率,单位为bps(比特每秒)。 例如:BAUD_RATE 19200。
  8. CHANNEL:指定LIN网络的通道号。 格式为CHANNEL <通道号>。 通道号可以是整数,表示LIN网络所连接的物理通道。 例如:CHANNEL 1。

节点(node)

节点是指LIN网络中的一个参与通信的实体,可以是主节点(Master)或从节点(Slave)。

Node
{NAD = 1;Name = "Master";Protocol_Version = "2.2";Language = "C";LIN_Product_ID = "12345";Supplier = "ABC Company";
}

在上述例子中,节点的地址为1,名称为"Master",使用的LIN协议版本为2.2,使用的语言为C,产品ID为"12345",供应商为"ABC Company"。
常用的关键字

  • NAD(Node Address):
    描述:节点地址,用于唯一标识节点。
    格式:NAD = <address>;
    示例:NAD = 1;
  • Name:
    描述:节点名称,用于标识节点的可读名称。
    格式: Name = "<name>";
    示例:Name = “Master”;
  • Protocol_Version:
    描述:LIN协议版本,指示节点所使用的LIN协议版本。
    格式:Protocol_Version = "<version>";
    示例:Protocol_Version = “2.2”;
  • Language:
    描述:节点所使用的语言,如C语言、C++等。
    格式: Language = "<language>";
    示例:Language = “C”;
  • LIN_Product_ID:
    描述:节点的产品ID,用于标识节点的具体型号。
    格式:LIN_Product_ID = "<product_id>";
    示例:LIN_Product_ID = “12345”;
  • Supplier:
    描述:节点的供应商信息。
    格式:Supplier = "<supplier>";
    示例:Supplier = “ABC Company”;

帧(frame)

帧(Frame)用于描述在LIN网络中进行通信的消息,包括消息的ID、长度、发送节点和接收节点等信息,它是LIN网络进行通信的消息单元。

Frame
{Frame_ID = 1;Name = "Data_Frame";Length = 8;Publisher = 1;Subscribers = (2, 3);
}

在上述示例中,帧的ID为1,名称为"Data_Frame",长度为8字节,由节点1发送,被节点2和节点3接收。
常用的关键字

  • Frame_ID:
    描述:帧的ID,用于唯一标识帧。
    格式:Frame_ID = <id>;
    示例:Frame_ID = 1;
  • Name:
    描述:帧的名称,用于标识帧的可读名称。
    格式:Name = "<name>";
    示例:Name = “Data_Frame”;
  • Length:
    描述:帧的长度,指示帧中包含的数据字节数。
    格式:Length = <length>;
    示例:Length = 8;
  • Publisher:
    描述:帧的发送节点,指示发送该帧的节点。
    格式:Publisher = <node_address>;
    示例:Publisher = 1;
  • Subscribers:
    描述:帧的接收节点,指示接收该帧的节点列表。
    格式:Subscribers = (<node_address1>, <node_address2>, ...);
    示例:Subscribers = (2, 3);

信号(signal)

信号用于描述在帧中传输的数据信息,包括信号的名称、起始位、长度、数据类型、发送节点和接收节点等信息。
每个信号都有一个唯一的名称,一个大小(以位为单位),以及一个或多个发送者或接收者。

Signal
{Name = "Temperature";Start_Bit = 16;Length = 8;Byte_Order = "Motorola";Value_Type = "Integer";Factor = 0.1;Offset = -40;Publisher = 1;Subscribers = (2, 3);
}

在上述示例中,信号的名称为"Temperature",起始位为16,长度为8位,字节顺序为Motorola,数据类型为整数,缩放因子为0.1,偏移量为-40,由节点1发送,被节点2和节点3接收。
常用的关键字

  • Name:
    描述:信号的名称,用于标识信号的可读名称。
    格式:Name = "<name>";
    示例:Name = “Temperature”;
  • Start_Bit:
    描述:信号的起始位,指示信号在帧中的起始位置。
    格式:Start_Bit = <start_bit>;
    示例:Start_Bit = 16;
  • Length:
    描述:信号的长度,指示信号占用的位数。
    格式:Length = <length>;
    示例:Length = 8;
  • Byte_Order:
    描述:信号的字节顺序,指示信号在字节中的排列顺序。
    格式:Byte_Order = <byte_order>;
    示例:Byte_Order = “Motorola”;
  • Value_Type:
    描述:信号的数据类型,指示信号的值的类型,如整数、浮点数等。
    格式:Value_Type = "<value_type>";
    示例:Value_Type = “Integer”;
  • Factor:
    描述:信号的缩放因子,用于将原始值转换为物理值。
    格式:Factor = `;
    示例:Factor = 0.1;
  • Offset:
    描述:信号的偏移量,用于将原始值转换为物理值。
    格式:Offset = <offset>;
    示例:Offset = -40;
  • Publisher:
    描述:信号的发送节点,指示发送该信号的节点。
    格式:Publisher = <node_address>;
    示例:Publisher = 1;
  • Subscribers:
    描述:信号的接收节点,指示接收该信号的节点列表。
    格式:Subscribers = (<node_address1>, <node_address2>, ...);
    示例:Subscribers = (2, 3);

从节点属性定义

从节点属性用于描述和配置LIN网络中从节点的属性和功能。
从节点属性包括了从节点的标识、名称、支持的功能以及其他相关参数。它提供了从节点的详细信息,使得主节点和其他从节点可以正确地与之通信和交互。

Node_attributes {IP {LIN_protocol = "2.1";configured_NAD = 0x68;product_id = 0x2,0x1,0x1;response_error = IPErrorSts;P2_min = 50 ms;ST_min = 0 ms;N_As_timeout = 500 ms;N_Cr_timeout = 1000 ms;}
}

常用的关键字

  • NAD:
    描述:NAD关键字用于指定从节点的当前地址(Node Address)。
    格式:NAD = <Address>;
    示例:NAD = 0x6A;
  • RESPONSE_ERROR:
    描述:RESPONSE_ERROR关键字用于指定从节点的响应错误(Response Error)信号。
    格式:RESPONSE_ERROR = <Response Error>;
    示例:RESPONSE_ERROR = IPErrorSts;
  • SUPPORT:
    描述:用于定义从节点支持的功能。supported_function是从节点支持的功能的标识,可以是一个整数或字符串。
    格式:SUPPORT = <supported_function>
    示例:
  • SLEEP:
    描述:用于定义从节点的睡眠时间(Sleep Time)。sleep_time是睡眠时间的数值,可以是整数或浮点数,单位可以是毫秒(ms)或微秒(us)。
    格式:SLEEP = <sleep_time>
    使用方法:
  • configured_NAD
    描述:用于定义从节点的地址(Node Address)。node_address是从节点的地址,通常是一个整数。
    格式:configured_NAD = <地址>;
    示例:configured_NAD = 0x68;
  • product_id:该关键字用于指定从节点的产品ID。
    描述:指定从节点的产品ID,通常由供应商ID、功能ID和可变ID组成。
    格式:product_id = <供应商ID>, <功能ID>, <可变ID>;
    示例:product_id = 0x2, 0x1, 0x1;
  • response_error:该关键字用于指定从节点的响应错误(Response Error)信号。
    描述:指定从节点的响应错误信号。
    格式:response_error = <错误信号>;
    示例:response_error = IPErrorSts;
  • P2_min:该关键字用于指定从节点的P2最小时间(P2 Min Time)。
    描述:指定从节点的P2最小时间,即从节点等待主节点发送下一个帧的最小时间。
    格式:P2_min = <时间>;
    示例:P2_min = 50 ms;
  • ST_min:该关键字用于指定从节点的ST最小时间(ST Min Time)。
    描述:指定从节点的ST最小时间,即从节点等待主节点发送开始诊断帧的最小时间。
    格式:ST_min = <时间>;
    示例:ST_min = 0 ms;
  • N_As_timeout:该关键字用于指定从节点的N_As超时时间(N_As Timeout)。
    描述:指定从节点的N_As超时时间,即从节点等待主节点发送响应帧的超时时间。
    格式:N_As_timeout = <时间>;
    示例:N_As_timeout = 500 ms;
  • N_Cr_timeout:该关键字用于指定从节点的N_Cr超时时间(N_Cr Timeout)。
    描述:指定从节点的N_Cr超时时间,即从节点等待主节点发送下一个帧的超时时间。
    格式:N_Cr_timeout = <时间>;
    示例:N_Cr_timeout = 1000 ms;

调度表 (schedule table)

调度表用于定义和配置LIN网络中的消息发送和接收的时间表。每个调度表都有一个唯一的名称,以及一个或多个帧的序列。
调度表是一个按照时间顺序排列的消息发送和接收的列表。它定义了每个节点在特定时间点发送或接收特定消息的规则和顺序。调度表中的每个条目都包含了消息的ID、周期性发送或接收的时间间隔、延迟时间以及其他相关参数。

TABLE
{ENTRY{CHANNEL = 1;TRANSMIT{ID = 0x01;CYCLE = 10ms;DELAY = 2ms;}}ENTRY{CHANNEL = 2;RECEIVE{ID = 0x02;CYCLE = 20ms;DELAY = 5ms;}}// 其他调度表条目...
}

在这个示例中,调度表中有两个条目。第一个条目定义了在通道1上以10ms的周期性发送ID为0x01的消息,延迟2ms。第二个条目定义了在通道2上以20ms的周期性接收ID为0x02的消息,延迟5ms。
常用的关键字

  • SCHEDULE_TABLE

    • 描述:用于定义LIN通信中的调度表。
    • 格式:SCHEDULE_TABLE <ScheduleTableName> { <SchedulableEventName> = <EventDelay>; }
    • 示例:SCHEDULE_TABLE MyScheduleTable { Event1 = 5ms; Event2 = 10ms; }
  • SCHEDULABLE_EVENT

    • 描述:用于定义调度表中的可调度事件。
    • 格式:SCHEDULABLE_EVENT <SchedulableEventName> { <FrameName>; }
    • 示例:SCHEDULABLE_EVENT Event1 { Frame1; }
  • EVENT_TRIGGERED_FRAME

    • 描述:用于定义一个基于事件触发的帧。
    • 格式:EVENT_TRIGGERED_FRAME <FrameName> { <PduName>; }
    • 示例:EVENT_TRIGGERED_FRAME Frame1 { Pdu1; }
  • SPORADIC_FRAME

    • 描述:用于定义一个基于时间间隔的帧。
    • 格式:SPORADIC_FRAME <FrameName> { <PduName>; <MinDelay>; <MaxDelay>; }
    • 示例:SPORADIC_FRAME Frame1 { Pdu1; 10ms; 100ms; }
  • DIAGNOSTIC_FRAME

    • 描述:用于定义一个诊断帧。
    • 格式:DIAGNOSTIC_FRAME <FrameName> { <PduName>; <ResponsePduName>; }
    • 示例:DIAGNOSTIC_FRAME Frame1 { RequestPdu1; ResponsePdu1; }
  • SCHEDULE_ENTRY

    • 描述:用于定义调度表中的一个条目。
    • 格式:SCHEDULE_ENTRY <ScheduleEntryName> { <FrameName>; <Delay>; }
    • 示例:SCHEDULE_ENTRY Entry1 { Frame1; 5ms; }
  • ENTRY:

  • 描述:定义一个调度表条目。

  • 格式:ENTRY { <ChannelName> = <ChannelNumber>; <TransmissionType> { <IDName> = <MessageID>; CYCLE = <CycleTime>; DELAY = <InitialDelay>; } }

  • 示例: ENTRY { CHANNEL = 1; TRANSMIT { ID = 0x01; CYCLE = 10ms; DELAY = 2ms; } }

  • CHANNEL:

    • 描述:定义调度表条目的通道号。
    • 格式:CHANNEL = <ChannelNumber>;
    • 示例:CHANNEL = 1;
  • TRANSMIT:

    • 描述:定义调度表条目的传输类型为发送。
    • 格式:TRANSMIT { <IDName> = <MessageID>; CYCLE = <CycleTime>; DELAY = <InitialDelay>; }
    • 示例: TRANSMIT { ID = 0x01; CYCLE = 10ms; DELAY = 2ms; }
  • RECEIVE:

    • 描述:定义调度表条目的传输类型为接收。
    • 格式:RECEIVE { <IDName> = <MessageID>; CYCLE = <CycleTime>; DELAY = <InitialDelay>; }
    • 示例: RECEIVE { ID = 0x02; CYCLE = 20ms; DELAY = 5ms; }

信号编码定义

主要描述了每个信号的名称、大小(位数)、偏移(在帧中的位置)、初始值、是否有错误检测以及物理值的转换方法等信息。
示例

Signal_encoding_types{KeyInSts_Encoding{//信号名称加上_Encodingphysical_value, 0, 254, 1.417, 	0, "VehicleSpeed";
//类型,计算机最小值,计算机最大值,精度(factor),偏差(offset),单位(Unit),没有可以不加logical_value, 0, "Close";  //表示类型是coding:logical_value,序号0,对应的是矩阵十六进制数字,coding值=Closelogical_value, 1, "Open";  //表示类型是coding:logical_value,序号1,对应的是矩阵十六进制数字,coding值=Open} HighBeamCmdSts_Encoding{physical_value, 0, 254, 0.5, -40,"AmbientTemperature";
//类型,计算机最小值,计算机最大值,精度(factor),偏差(offset),单位(Unit):AmbientTemperature,没有可以不加logical_value, 0, "No"; logical_value, 1, "Yes"; }LeftTurnLampSts_Encoding{physical_value, 0, 4, 1, 0, "DashboardBrightness";logical_value, 0, "Sensitivity 1"; logical_value, 1, "Sensitivity 2";logical_value, 2, "Sensitivity 3"; logical_value, 3, "Sensitivity 4";logical_value, 4, "Sensitivity 5"; logical_value, 5, "Not Used";  logical_value, 6, "Not Used"; logical_value, 7, "Not Used"; #logical_value, 5, "0x5~0x7,Not Used";  } 
}

常用关键字

  • physical_value:
    • 描述:定义信号的物理值范围和转换参数。
    • 格式:physical_value, <ComputerMinValue>, <ComputerMaxValue>, <Factor>, <Offset>, "<Unit>";
    • 示例: physical_value, 0, 254, 1.417, 0, “VehicleSpeed”;
  • logical_value:
    • 描述:定义信号的逻辑值和对应的编码值。
    • 格式:logical_value, <CodingValue>, "<LogicalValue>";
    • 示例: logical_value, 0, “Close”; logical_value, 1, “Open”;
  • KeyInSts_Encoding:
    • 描述:定义一个信号编码类型的信号。
    • 格式:KeyInSts_Encoding {<physical_value>; <logical_value>; }
    • 示例: KeyInSts_Encoding {physical_value, 0, 254, 1.417, 0, “VehicleSpeed”; logical_value, 0,
      “Close”; logical_value, 1, “Open”; }
  • HighBeamCmdSts_Encoding:
    • 描述:定义一个信号编码类型的信号。
    • 格式:HighBeamCmdSts_Encoding { <physical_value>; <logical_value>; }
    • 示例: HighBeamCmdSts_Encoding { physical_value, 0,254, 0.5, -40, “AmbientTemperature”; logical_value, 0, “No”;logical_value, 1, “Yes”; }
  • LeftTurnLampSts_Encoding:
    • 描述:定义一个信号编码类型的信号。
    • 格式:LeftTurnLampSts_Encoding { <physical_value>; <logical_value>; }
    • 示例: LeftTurnLampSts_Encoding { physical_value, 0,
      4, 1, 0, “DashboardBrightness”; logical_value, 0, “Sensitivity 1”;
      logical_value, 1, “Sensitivity 2”; logical_value, 2, “Sensitivity 3”;
      logical_value, 3, “Sensitivity 4”; logical_value, 4, “Sensitivity 5”;
      logical_value, 5, “Not Used”; logical_value, 6, “Not Used”;
      logical_value, 7, “Not Used”; }

信号coding和信号名称映射

LIN_NODE MyNode {...signal_encoding {coding, "Open";signal_name, "DoorStatus";}...
}

定义了一个名为"DoorStatus"的信号,并将其编码方式设置为"Open"。这意味着当这个信号被发送时,它的值将使用"Open"进行编码。
常用关键字

  • signal_encoding:

    • 描述:定义信号的编码方式和对应的信号名称。
    • 格式:signal_encoding { <coding>; <signal_name>; }
    • 示例: signal_encoding { coding, “Open”; signal_name, “DoorStatus”; }
  • coding:

    • 描述:定义信号的编码方式。
    • 格式:coding, <coding_type>;
    • 示例: coding, “Open”;
  • signal_name:

    • 描述:定义信号的名称。
    • 格式:signal_name, "<SignalName>";
    • 示例: signal_name, “DoorStatus”;
  • KeyInSts_Encoding:

    • 描述:定义一个信号编码类型的信号。
    • 格式:KeyInSts_Encoding { <coding>; <signal_name>; }
    • 示例: KeyInSts_Encoding { coding, “Open”; signal_name, “DoorStatus”; }
  • HighBeamCmdSts_Encoding:

    • 描述:定义一个信号编码类型的信号。
    • 格式:HighBeamCmdSts_Encoding { <coding>; <signal_name>; }
    • 示例: HighBeamCmdSts_Encoding { coding, “Yes”;signal_name, “HighBeamStatus”; }
  • LeftTurnLampSts_Encoding:

    • 描述:定义一个信号编码类型的信号。
    • 格式:LeftTurnLampSts_Encoding { <coding>;<signal_name>; }
    • 示例: LeftTurnLampSts_Encoding { coding, “Sensitivity 1”; signal_name, “TurnLampStatus”; }

相关文章:

AUTOSAR LIN: LDF(LIN Description File)文件解析

LDF文件示例 LIN_description_file "lin_example.ldf" { LIN_protocol_version "2.0";LIN_language_version "2.0";nodes {master: MasterNode;slaves: SlaveNode1, SlaveNode2;};signals {Signal1: MasterNode, SlaveNode1;Signal2: Maste…...

Vue.js 报错:Cannot read property ‘validate‘ of undefined“

错误解决 起因&#xff0c;是我将elemnt-ui登录&#xff0c;默认放在mounted()函数里面&#xff0c;导致vue初始化就调用这个函数。 找了网上&#xff0c;有以下错误原因&#xff1a; 1.一个是你ref写错了&#xff0c;导致获取不了这个表单dom&#xff0c;我这显然不是。 2.…...

vue使用wangEditor

vue版本2.0&#xff1b;editor5.1.23版本&#xff1b;editor-for-vue&#xff1a;1.0.2版本 api文档入口 效果图 安装步骤入口 npm install wangeditor/editor --savenpm install wangeditor/editor-for-vue --save代码 <template><div><div style"bor…...

网络编程、socket编程、多进程并发服务器

网络编程 一、TCP编程的API socket: int socket(int domain, int type, int protocol); 返回值&#xff1a;> 0 代表函数调用成功&#xff0c;这个值是一个文件描述符< 0 代表函数调用失败 int domain&#xff1a;地址簇 AF_INET&#xff1a;IPv4 AF_INET6: IPv6 ​ i…...

Elasticsearch:自动使用服务器时间设置日期字段并更新时区

在大多数情况下&#xff0c;你的数据包含一个以 create_date 命名的字段。 即使没有日期字段&#xff0c;处理各种格式和时区的日期对数据仓库来说也是一个重大挑战。 与此类似&#xff0c;如果要检测变化的数据&#xff0c;则必须准确设置日期字段。 在 Elasticsearch 中还有…...

网络技术三:局域网基本原理

局域网基本原理 使用的协议及线缆 物理层 双绞线 同轴电缆 光纤 无线电 数据链路层 以太网 唯一事实标准 令牌环 淘汰 FDDI 光纤分布式接口 网络层 IP 唯一的事实标准 IPX 淘汰 Apple talk 淘汰 局域网设备 集线器 内部为总线型拓扑 任意时间只能由一台主机占用总线&a…...

Fine-tuning Large Enterprise Language Models via Ontological Reasoning

本文是LLM系列文章&#xff0c;针对《Fine-tuning Large Enterprise Language Models via Ontological Reasoning》的翻译。 基于本体论推理的大型企业语言模型微调 摘要1 引言2 微调LLM的神经符号管道3 通过概念证明进行初步验证4 结论 摘要 大型语言模型&#xff08;LLM&am…...

2023年全国职业院校技能大赛 高等职业教育组(信息安全管理与评估)正式赛题

全国职业院校技能大赛 高等职业教育组 qq:2366046367 q群:670610200信息安全管理与评估 任务书 模块一 网络平台搭建与设备安全防护 一、 比赛时间 本阶段比赛时长为180分钟。 二、 赛项信息 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 网络平台搭建与设备安全防护 …...

基于SSM的校园驿站管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…...

分布式实时仿真系统-反射内存的应用

为了使分布式实时仿真系统(一个典型代表就行飞行模拟器)达到逼真的仿真效果&#xff0c;在系统内部&#xff0c;往往不仅需要对各种数据模型进行实时解算&#xff0c;而且需要一个延迟时间极低的确定性网络在系统之间传递数据&#xff0c;这样才能让各个子系统之间协调一致地工…...

【python技巧】替换文件中的某几行

【python技巧】替换文件中的某几行 1. 背景描述2. 单行修改-操作步骤3. 多行修改-操作步骤 1. 背景描述 最近在写一个后端项目&#xff0c;主要的操作就是根据用户的前端数据&#xff0c;在后端打开项目中的代码文件&#xff0c;修改对应位置的参数&#xff0c;因为在目前的后…...

内网建自己的pip源

内网建自己的pip源 一. 下载数据包二. 建立索引三. 安装nginx四. 配置nginx五.展示 一. 下载数据包 以清华源为示例 import requests import bs4 import re import wget a requests.get("https://pypi.tuna.tsinghua.edu.cn/simple").text b bs4.BeautifulSoup(a…...

Vue 3的Diff算法相比Vue 2有哪些具体的改进?

Vue 3的Diff算法相比Vue 2进行了一些具体的改进&#xff0c;主要包括以下几个方面&#xff1a; Patch flag&#xff1a;Vue 3引入了Patch flag的概念&#xff0c;用于标记组件在更新过程中的一些特殊情况&#xff0c;例如组件的props发生变化或只需要强制更新等。这样可以在Dif…...

网络面试题整理

TCP通讯原理&#xff1a;三次握手&#xff0c;四次挥手 TCP&#xff08;Transmission Control Protocol&#xff09;通信中的"三次握手"和"四次挥手"是建立和终止TCP连接时的标准过程&#xff0c;用于确保数据的可靠传输和连接的正确关闭。 三次握手&…...

Liquid Studio 2023.2 Crack

Liquid Studio 提供了用于XML和JSON开发 的高级工具包以及Web 服务测试、数据映射和数据转换工具。 开发环境包含一整套用于设计 XML 和 JSON 数据结构和模式的工具。这些工具提供编辑、验证和高级转换功能。对于新手或专家来说&#xff0c;直观的界面和全面的功能将帮助您节省…...

企业架构LNMP学习笔记8

1、 运维人员需要考虑安全性、稳定性。 安装&#xff1a; 解压进入到目录&#xff1a; shell > tar zxf php-7.2.12.tar.gz shell > cd php-7.2.12 安装依赖软件&#xff1a; yum -y install libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel op…...

简单使用_matlab生成数据帧

文章目录 生成数据帧参考 生成数据帧 代码如下&#xff0c;代码很简单&#xff0c;有几点要注意&#xff0c; 较高版本的MATLAB中支持0x的写法使用bitand进行位运算使用strcat函数进行字符串拼接时&#xff0c;如果需要插入空格&#xff0c;要使用双引号 cmd_ay(1) 0x33; …...

uni-app语音转文字功能demo(同声传译)

目录 首先去微信开发者官网申请一下同声传译的插件 微信公众平台 在文件中开始引用&#xff1a; 首先去微信开发者官网申请一下同声传译的插件 微信公众平台 后续使用的时候可以看详情里面的信息进行使用 在文件中开始引用&#xff1a; 注意&#xff01;&#xff01;在这个…...

vue2+element-ui批量导入方法并判断上传的文件是否为xls或xlsx

业务需求: 代码结构: <el-dialogtitle"批量导入":close-on-click-modal"true"close"close()":visible"true"width"35%":center"true"><div class"el-dialog-div"><!-- 头部区域布局 -…...

【FPGA】通俗理解从VGA显示到HDMI显示

注&#xff1a;大部分参考内容来自“征途Pro《FPGA Verilog开发实战指南——基于Altera EP4CE10》2021.7.10&#xff08;上&#xff09;” 贴个下载地址&#xff1a; 野火FPGA-Altera-EP4CE10征途开发板_核心板 — 野火产品资料下载中心 文档 hdmi显示器驱动设计与验证 — …...

【SpringMVC】参数传递与用户请求和响应

目录 一、Postman 工具使用 1.1 Postman安装 1.2 Postman的使用 1.2.1 创建WorkSpace工作空间 1.2.2 创建请求 二、参数传递 2.1 添加 Slf4j 依赖 2.2 普通传参 知识点1&#xff1a;RequestMapping 知识点2&#xff1a;RequestParam 2.3 路径传参 知识点3&#xff1…...

Android图形-Hardware Composer HAL

目录 一、引言 二、概览 三、实现HWC 3.1 为什么是HWC&#xff1f; 3.2 HWC的支持需求 3.3 HWC的实现思路 3.4 HWC的基元 3.5 HIDL接口 3.6 函数指针 3.7 图层和屏幕句柄 3.8 屏幕合成操作 3.9 多个屏幕 3.10 虚拟屏幕合成 3.10.1 模式 3.10.2 输出格式 3.11 同…...

P1093 [NOIP2007 普及组] 奖学金

题目描述 某小学最近得到了一笔赞助&#xff0c;打算拿出其中一部分为学习成绩优秀的前 5 5 5 名学生发奖学金。期末&#xff0c;每个学生都有 3 3 3 门课的成绩:语文、数学、英语。先按总分从高到低排序&#xff0c;如果两个同学总分相同&#xff0c;再按语文成绩从高到低排…...

C#模拟PLC设备运行

涉及&#xff1a;控件数据绑定&#xff0c;动画效果 using System; using System.Windows.Forms;namespace PLCUI {public partial class MainForm : Form{ public MainForm(){InitializeComponent();}private void MainForm_Load(object sender, EventArgs e){// 方式2&#x…...

LeetCode 每日一题 2023/8/28-2023/9/3

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 8/28 57. 插入区间8/29 823. 带因子的二叉树8/30 1654. 到家的最少跳跃次数8/31 1761. 一个图中连通三元组的最小度数9/1 2240. 买钢笔和铅笔的方案数9/2 2511. 最多可以摧…...

Python Tkinter Multiple Windows 教程

一、说明 在这个Python Tkinter教程中&#xff0c;我们将学习如何在Python Tkinter中创建多个窗口&#xff0c;我们还将介绍与多个窗口相关的不同示例。而且&#xff0c;我们将介绍这些主题。 Python Tkinter multiple windows使用多个窗口的 Python Tkinter 用户注册Python Tk…...

【Arduino24】8*8点阵实验

硬件准备 8*8点阵&#xff1a;1个 旋钮电位器&#xff1a;1个 面包板&#xff1a;1块 杜邦线&#xff1a;若干 硬件连线 软件程序 //定义引脚 #define xKnob_pin A0 //x轴旋钮的引脚 #define yKnob_pin A1 //y轴旋钮的引脚 const int row_pin[8] { 6, 11, 10, 3, 17, 4…...

2023年09月数据库流行度最新排名

点击查看最新数据库流行度最新排名&#xff08;每月更新&#xff09; 2023年09月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多&#xff0c;这个数据库就被认为越受欢迎。这是一个领先指标。原始数…...

jenkins快速跑通helloworld任务

jenkins新建helloworld示例 左上角“新建任务” 输入名称&#xff0c;选择第一个创建&#xff1a; 可以选择众多执行脚本&#xff0c;这里选择shell&#xff1a; 随后弹出一个窗口&#xff0c;将下面脚本填入&#xff1a; #!/bin/bashecho start... for i in {1..10}doecho $i…...

win10中安装ros

参考&#xff1a; Windows 10上安装ROS noetic平台_windows ros noetic_高精度计算机视觉的博客-CSDN博客...