【学习笔记】A2X通信的协议(四)- A2X PC5通信(二)

news2024/12/24 8:41:11

目录

6.1.2.4 A2X PC5单播链接释放程序

6.1.2.4.1 概述

6.1.2.4.2 发起UE启动A2X PC5单播链接释放程序

6.1.2.4.3 目标UE接受的A2X PC5单播链接释放程序

6.1.2.4.4 发起UE完成的A2X PC5单播链接释放程序

6.1.2.4.5 异常情况

6.1.2.4.5.1 发起UE的异常情况

6.1.2.5 A2X PC5单播链接标识符更新程序

6.1.2.5.1 概述

6.1.2.5.2 发起UE启动A2X PC5单播链接标识符更新程序

6.1.2.5.3 目标UE接受的A2X PC5单播链接标识符更新程序

6.1.2.5.4 发起UE确认的A2X PC5单播链接标识符更新程序

6.1.2.5.5 目标UE完成的A2X PC5单播链接标识符更新程序

6.1.2.5.6 目标UE未接受的A2X PC5单播链接标识符更新程序

6.1.2.5.7 异常情况

6.1.2.5.7.1 发起方UE的异常情况

6.1.2.5.7.2 目标UE的异常情况


3GPP TS 24.577 V18.1.0的技术规范,主要定义了5G系统中A2X通信的协议方面,特别是在PC5接口和Uu接口上的A2X服务。以下是文件的核心内容分析:

6.1.2.4 A2X PC5单播链接释放程序
6.1.2.4.1 概述

A2X PC5单播链接释放程序用于释放两个UE之间的A2X PC5单播链接。链接可以从任一端点释放。发送A2X直接链接释放请求消息的UE被称为“发起UE”,另一个UE被称为“目标UE”。
如果UE从下层接收到无线电链路故障的指示,UE应在本地释放A2X PC5单播链接,并可能在实现特定的时间后删除与此链接关联的KNRP ID。

6.1.2.4.2 发起UE启动A2X PC5单播链接释放程序

如果收到来自上层的请求,要求释放与目标UE的A2X PC5单播链接,而该目标UE使用已知的第2层ID(用于单播通信),并且这两个UE之间存在现有的A2X PC5单播链接,则发起UE应启动该程序。
如果目标UE未响应,例如,在A2X PC5单播链接修改程序、A2X PC5单播链接标识符更新程序、A2X PC5单播链接重新密钥程序或A2X PC5单播链接保持活动程序中没有响应,则发起UE可以启动该程序。
如果UE已达到已建立的A2X PC5单播链接的最大数量,并且需要建立新的A2X PC5单播链接,则发起UE可以启动程序以释放已建立的A2X PC5单播链接。在这种情况下,要释放哪个A2X PC5单播链接取决于UE的实现。
发起UE可以在计时器T5303到期时启动程序以释放已建立的A2X PC5单播链接。
为了启动A2X PC5单播链接释放程序,发起UE应创建一个A2X直接链接释放请求消息,其中包含PC5信令协议原因IE,指示以下原因之一的值:
#1 不允许与目标UE进行直接通信;
#2 不再需要与目标UE进行直接通信;
#4 直接连接不再可用;
#5 A2X PC5单播链接资源不足;或
#111 协议错误,未指定。
发起UE应在A2X直接链接释放请求消息中包含KNRP ID的新的2个最高有效位(MSBs)。
生成A2X直接链接释放请求消息后,发起UE应将该消息连同发起UE用于单播通信的第2层ID和目标UE用于单播通信的第2层ID一起传递给下层以进行传输,并且如果正在运行,应停止T5305。发起UE应启动计时器T5302。

图6.1.2.4.2.1:A2X PC5单播链接释放程序

6.1.2.4.3 目标UE接受的A2X PC5单播链接释放程序

在接收到A2X直接链接释放请求消息后,目标UE应停止此A2X PC5单播链接的所有正在运行的计时器,并中止此A2X PC5单播链接上的任何其他正在进行的PC5信令协议程序。目标UE应以A2X直接链接释放接受消息作为响应。目标UE应在A2X直接链接释放接受消息中包含KNRP ID的新的2个最低有效位(LSBs)。消息发送后,目标UE应通过执行以下行为来释放A2X PC5单播链接:

a) 通知下层以及PC5链接标识符,A2X PC5单播链接已释放;以及

b) 在实现特定的时间后删除A2X PC5单播链接的上下文。

目标UE应使用在A2X直接链接释放请求消息中接收到的KNRP ID的新的2个MSBs和在A2X直接链接释放接受消息中包含的新的2个LSBs来形成新的KNRP ID。目标UE应使用新的KNRP ID替换现有的KNRP ID。目标UE可以按照6.1.2.2.2条款的规定,在A2X直接链接建立请求消息中包含新的KNRP ID,并与发起UE进行通信。

6.1.2.4.4 发起UE完成的A2X PC5单播链接释放程序

在收到A2X直接链接释放接受消息后,发起UE应停止计时器T5302,并通过执行以下操作来释放A2X PC5单播链接:

a) 通知下层以及PC5链接标识符,A2X PC5单播链接已释放;以及

b) 在实现特定的时间后删除A2X PC5单播链接的上下文。

发起UE应使用在A2X直接链接释放请求消息中包含的KNRP ID的2个MSBs和在A2X直接链接释放接受消息中接收到的KNRP ID的2个LSBs来形成新的KNRP ID。发起UE应使用新的KNRP ID替换现有的KNRP ID。发起UE可以按照6.1.2.2.2条款的规定,在A2X直接链接建立请求消息中包含新的KNRP ID,并与目标UE进行通信。

6.1.2.4.5 异常情况
6.1.2.4.5.1 发起UE的异常情况

如果重传计时器T5302到期,并且A2X直接链接释放请求消息中的PC5信令协议原因IE包含的PC5信令协议原因为#4“直接连接不再可用”,则发起UE应在本地释放A2X PC5单播链接,并删除与此链接关联的KNRP ID。从此刻起,发起UE不再通过此链接发送或接收任何消息。

如果重传计时器T5302到期,并且A2X直接链接释放请求消息中的PC5信令协议原因IE包含的PC5信令协议原因不是#4“直接连接不再可用”,则发起UE应再次启动A2X直接链接释放请求消息的传输,并重新启动计时器T5302。

如果在达到允许的最大重传次数后仍未收到目标UE的响应,则发起UE应在本地释放A2X PC5单播链接,并删除与此链接关联的KNRP ID。从此刻起,发起UE不再通过此链接发送或接收任何消息。

注:允许的最大重传次数取决于UE的实现。

6.1.2.5 A2X PC5单播链接标识符更新程序
6.1.2.5.1 概述

A2X PC5单播链接标识符更新程序用于在使用新标识符之前,在两个UE之间更新和交换A2X PC5单播链接的新标识符(例如应用层ID、第2层ID、安全信息和IP地址/前缀)。发送A2X直接链接标识符更新请求消息的UE被称为“发起UE”,另一个UE被称为“目标UE”。

6.1.2.5.2 发起UE启动A2X PC5单播链接标识符更新程序

如果满足以下条件,发起UE应启动该程序:

a) 发起UE从上层接收到更改应用层ID的请求,并且存在与此应用层ID关联的现有A2X PC5单播链接;或者

b) 发起UE的第2层ID的隐私定时器(见5.2.3条款)对现有A2X PC5单播链接过期。

如果A2X PC5单播链接标识符更新程序是由发起UE的应用层ID更改触发的,则发起UE应创建一个A2X直接链接标识符更新请求消息。在此消息中,发起UE应:

a) 包含从上层接收到的发起UE的新应用层ID;

b) 包含由自己分配的发起UE的新第2层ID;

c) 包含KNRP-sess ID的新MSB,或者如果选择的完整性保护算法是空完整性保护算法,则设置为全零;以及

d) 如果使用IP通信,则应包含新的IP地址/前缀。

如果A2X PC5单播链接标识符更新程序是由5.2.3条款中规定的发起UE的隐私定时器T5305过期触发的,则发起UE应创建一个A2X直接链接标识符更新请求消息。在此消息中,发起UE应:

a) 包含由自己分配的发起UE的新第2层ID;

b) 包含KNRP-sess ID的新MSB;

c) 如果从上层接收到,则可能包含发起UE的新应用层ID;以及

d) 如果使用IP通信并且已更改,则应包含新的IP地址/前缀。

生成A2X直接链接标识符更新请求消息后,发起UE应将该消息传递给下层进行传输,同时附上发起UE的旧第2层ID用于单播通信和目标UE的第2层ID用于单播通信,并启动定时器T5306。在定时器T5306运行期间,UE不得向同一目标UE发送新的A2X直接链接标识符更新请求消息。

图6.1.2.5.2.1:A2X PC5单播链接标识符更新程序

6.1.2.5.3 目标UE接受的A2X PC5单播链接标识符更新程序

在接收到A2X直接链接标识符更新请求消息后,如果目标UE确定:
a) 与此请求消息关联的A2X PC5单播链接仍然有效;并且
b) 由此请求消息标识的A2X PC5单播链接的定时器T5307没有运行,
那么目标UE接受此请求,并以A2X直接链接标识符更新接受消息作为响应。

目标UE应创建A2X直接链接标识符更新接受消息。在此消息中,目标UE:
a) 应包含由自己分配的目标UE的新第2层ID;
b) 应包含KNRP-sess ID的新LSB;
c) 应包含发起UE的KNRP-sess ID的新MSB;
d) 应包含发起UE的新第2层ID;
e) 如果从上层接收到,则应包含目标UE的新应用层ID;
f) 如果从发起UE接收到且使用IP通信,则应包含发起UE的新IP地址/前缀;
g) 如果从发起UE接收到,则应包含发起UE的新应用层ID;以及
h) 如果使用IP通信并且已更改,则应包含目标UE的新IP地址/前缀。

生成A2X直接链接标识符更新接受消息后,目标UE应将该消息传递给下层进行传输,同时附上发起UE的旧第2层ID用于单播通信和目标UE的旧第2层ID用于单播通信,并启动定时器T5307。在定时器T5307运行期间,UE不得向同一发起UE发送新的A2X直接链接标识符更新接受消息。

在目标UE使用新的第2层ID接收流量之前,目标UE应继续使用旧的第2层ID(即发起UE的旧第2层ID和目标UE的旧第2层ID)从发起UE接收流量。

在目标UE从发起UE接收到A2X直接链接标识符更新确认消息之前,目标UE应继续使用旧的第2层ID(即用于单播通信的发起UE的旧第2层ID和用于单播通信的目标UE的旧第2层ID)向发起UE发送流量。

6.1.2.5.4 发起UE确认的A2X PC5单播链接标识符更新程序

在接收到A2X直接链接标识符更新接受消息后,发起UE应停止定时器T5306,并回复A2X直接链接标识符更新确认消息。在此消息中,发起UE:
a) 应包含目标UE的新第2层ID;
b) 应包含目标UE的KNRP-sess ID的新LSB;
c) 如果收到,则应包含目标UE的新应用层ID;以及
d) 如果收到,则应包含目标UE的新IP地址/前缀。

生成A2X直接链接标识符更新确认消息后,发起UE应将该消息传递给下层进行传输,同时附上发起UE的旧第2层ID用于单播通信和目标UE的旧第2层ID用于单播通信,并且如果定时器T5305正在运行,则应停止,如果至少有一个满足5.2.3条规定的隐私要求的A2X PC5单播链接的A2X服务标识符,则按配置启动定时器T5305。

在发送A2X直接链接标识符更新确认消息后,发起UE应使用新标识符更新相关的A2X PC5单播链接上下文,并将新的第2层ID(即,如果已更改,则用于单播通信的发起UE的新第2层ID和目标UE的新第2层ID)以及PC5链接标识符一起传递给下层。然后,发起UE应使用新的第2层ID(即,如果已更改,则用于单播通信的发起UE的新第2层ID和目标UE的新第2层ID)来传输A2X PC5信令消息和A2X PC5用户平面数据。

发起UE应继续从目标UE接收带有旧第2层ID(即用于单播通信的发起UE的旧第2层ID和目标UE的旧第2层ID)的流量,直到从目标UE接收到带有新第2层ID(即如果已更改,则为发起UE的新第2层ID和目标UE的新第2层ID)的流量。

6.1.2.5.5 目标UE完成的A2X PC5单播链接标识符更新程序

在接收到A2X直接链接标识符更新确认消息后,目标UE应使用新标识符更新相关的A2X PC5单播链接上下文,将新的第2层ID(即如果已更改,则为发起UE的新第2层ID和目标UE的新第2层ID)传递给下层,如果定时器T5307和定时器T5305正在运行,则应停止,并且如果至少有一个满足5.2.3条规定的隐私要求的A2X PC5单播链接的A2X服务标识符,则按配置启动定时器T5305。然后,目标UE应使用新的第2层ID(即如果已更改,则用于单播通信的发起UE的新第2层ID和目标UE的新第2层ID)来传输A2X PC5信令消息和A2X PC5用户平面数据。

6.1.2.5.6 目标UE未接受的A2X PC5单播链接标识符更新程序

如果无法接受A2X直接链接标识符更新请求消息,目标UE应发送A2X直接链接标识符更新拒绝消息。A2X直接链接标识符更新拒绝消息包含一个PC5信令协议原因IE,该IE设置为以下原因之一:
#3 检测到用于单播通信的第2层ID冲突;或
#111 协议错误,未指定。

对于从用于单播通信的第2层ID接收到的A2X直接链接标识符更新请求消息,如果目标UE已经使用此第2层ID建立了现有链接,或者正在处理来自同一第2层ID的A2X直接链接标识符更新请求消息,但其中的用户信息与这条新传入的消息中包含的用户信息IE不同,则目标UE应发送带有PC5信令协议原因值#3“检测到用于单播通信的第2层ID冲突”的A2X直接链接标识符更新拒绝消息。

注:在接收到A2X直接链接标识符更新拒绝消息后,发起UE是否发起A2X PC5单播链接释放程序或使用新的第2层ID发起另一个A2X PC5单播链接标识符更新程序,取决于UE的实现。

对于导致链接标识符更新失败的其他原因,目标UE应发送带有PC5信令协议原因值#111“协议错误,未指定”的A2X直接链接标识符更新拒绝消息。

在接收到A2X直接链接标识符更新拒绝消息后,发起UE应停止定时器T5306,并中止此A2X PC5单播链接标识符更新程序。

6.1.2.5.7 异常情况
6.1.2.5.7.1 发起方UE的异常情况

可以识别以下异常情况:
a) 如果定时器T5306到期,则发起方UE应重新传输A2X DIRECT LINK IDENTIFIER UPDATE REQUEST消息并重新启动定时器T5306。在达到允许的最大重传次数后,发起方UE应中止A2X PC5单播链路标识符更新程序,并可能通知上层目标UE无法访问。
注1:允许的最大重传次数取决于UE的实现。
注2:在达到允许的最大重传次数后,发起方UE是否释放此A2X PC5单播链路取决于其实现。
b) 对于同一A2X PC5单播链路,如果在A2X PC5单播链路标识符更新过程中,发起方UE接收到A2X DIRECT LINK IDENTIFIER UPDATE REQUEST消息,则发起方UE应停止定时器T5306并中止A2X PC5单播链路标识符更新程序。随后的处理取决于实现,例如,如果需要,发起方UE会等待一个实现相关的时间来启动新的A2X PC5单播链路标识符更新程序。
注3:需要设置依赖于实现的定时器值以避免进一步的冲突(例如,随机定时器值)。
c) 对于同一A2X PC5单播链路,如果发起方UE在启动A2X PC5单播链路标识符更新程序后收到A2X DIRECT LINK REKEYING REQUEST消息,则发起方UE应忽略A2X DIRECT LINK REKEYING REQUEST消息,并继续进行A2X PC5单播链路标识符更新程序。
d) 对于同一A2X PC5单播链路,如果在启动A2X PC5单播链路标识符更新程序后,发起方UE收到A2X DIRECT LINK RELEASE REQUEST消息,则发起方UE应停止定时器T5306,中止A2X PC5单播链路标识符更新程序,并继续进行A2X PC5单播链路释放程序。

6.1.2.5.7.2 目标UE的异常情况

可以识别以下异常情况:
a) 如果定时器T5307到期,则目标UE应重新传输A2X DIRECT LINK IDENTIFIER UPDATE ACCEPT消息并重新启动定时器T5307。在达到允许的最大重传次数后,目标UE应中止A2X PC5单播链路标识符更新程序,并可能通知上层发起方UE无法访问。
注1:允许的最大重传次数取决于UE的实现。
注2:在达到允许的最大重传次数后,目标UE是否释放此A2X PC5单播链路取决于其实现。
b) 如果在定时器T5307运行时接收到A2X DIRECT LINK IDENTIFIER UPDATE REQUEST,则目标UE应停止定时器T5307并中止正在进行的A2X PC5单播链路标识符更新程序。目标UE应按照第6.1.2.5.3条的规定处理新的A2X DIRECT LINK IDENTIFIER UPDATE REQUEST。
c) 在向目标UE发送A2X DIRECT LINK IDENTIFIER UPDATE ACK消息后,如果在从目标UE接收到具有新层2 ID的流量之前,从目标UE接收到另一条A2X DIRECT LINK IDENTIFIER UPDATE ACCEPT消息,则发起方UE应连同发起方UE的旧层2 ID和目标UE的旧层2 ID一起重新传输A2X DIRECT LINK IDENTIFIER UPDATE ACK消息。
注3:如果在发起方UE重新传输A2X DIRECT LINK IDENTIFIER UPDATE ACK消息之前已经发送了此类流量,则处理新层2 ID的流量传输失败取决于实现。
d) 在向目标UE发送A2X DIRECT LINK IDENTIFIER UPDATE ACK消息后,如果发起方UE持续从目标UE接收带有旧层2 ID的流量,并且在大于定时器T5307值的特定于实现的时间内未接收到来自目标UE的带有新层2 ID的流量,则发起方UE应中止A2X PC5单播链路标识符更新程序,并可能释放A2X PC5单播链路。

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

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

相关文章

Linux——嵌入式学习——C++学习(1)

一、环境配置 由于之前安装过QT,所以直接连接网络之后,运行 运行之后检查安装版本 接着用qt的使用步骤 创建工程即可 三、 1、注释 单行注释:// 多行注释/* */ 2、auto 自动推导类型 2.1声明变量 使…

Linux小组件:makefile

引言: 我们在Windows下编程时使用vs这种集成开发环境,里面什么编译运行调试清理等等服务都被一连串打包好了。在Linux下怎么实现呢?使用我们伟大的makefile! makefile是Linux下的一个工具,通过文本编辑器vim对文件内…

Linux内核编程(十一)设备模型

本文目录 一、知识点1. 设备模型2. sysfs 文件系统3. kobject、kset设备模型框架 二、kobject实验1. 创建kobject2. 释放kobject★示例 三、kset实验1. 创建kset2. 注销kset★示例 四、引用计数器1. 概念2. 为什么要引入引用计数器?3. 常用函数(1&#x…

【Nuxt】发送请求

概述 以下方式只能在 setup / 生命周期钩子 里面使用。 useFetch 下面的 API / hooks 具体用法查看官网文档。 const BASE_URL http://codercba.com:9060/juanpi/api;// 1. $fetch server and client // $fetch(BASE_URL /homeInfo, { // method: GET // }).then(res &…

python爬虫04 | Reuqests库快速入门,干穿urllib

文章目录 Requests库简介提出请求响应内容二进制响应内容JSON 响应内容原始响应内容自定义标头更复杂的 POST 请求POST 多部分编码的文件响应状态代码响应标头Cookie重定向和历史记录超时错误和异常 Ending Requests库简介 什么是Requests库 Requests是一个简单易用的HTTP库&…

分享一个基于SpringBoot和Vue的闲置物品交易与物品租赁平台(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

人工智能计算机视觉先锋——OpenCv 的颜色检测

红色 在计算机的世界里,只有 0 或者1,如何让计算机认识颜色是计算机视觉工作者首先需要考虑的事情,我们知道整个世界的颜色虽然五彩缤纷,但是都是3种原色彩合成的(R G B),有了(R G …

C语言 | Leetcode C语言题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; #define FATHER_NODE(i) (0 (i) ? -1 : ((i) - 1 >> 1)) #define LEFT_NODE(i) (((i) << 1) 1) #define RIGHT_NODE(i) (((i) << 1) 2)/* 优先队列&#xff08;小根堆&#xff09;。 */ typedef s…

数字人解决方案——音频驱动机器人

音频集成 机器人 标志着 人工智能&#xff08;AI&#xff09;。 想象一下&#xff0c;机器人可以通过视觉和听觉导航并与周围环境互动。音频驱动的机器人使这成为可能&#xff0c;提高了它们更高效、更直观地执行任务的能力。这一发展可能会影响到各个领域&#xff0c;包括家庭…

解决PermissionError: [Errno 13] Permission denied: “xx“报错

这个报错我是使用 shutil.copy(src_file, dst_file) 语句产生的&#xff0c;因此有些问题我会围绕此句代码来进行解决&#xff0c;如果有更好的建议&#xff0c;欢迎积极留言。 目录 1.路径拼写错误&#xff0c;建议使用绝对路径 2.此文件正在使用&#xff0c;关闭当前打开的…

vba 保存word里面的图片_1分钟批量处理100张图片,有Word在

天下苦Word久矣&#xff01;Word不仅是个码字工具&#xff0c;还是个排版工具&#xff0c;而Word在排版方面经常遇到的问题&#xff0c;恐怕说个三天三夜都说不完&#xff01; 好不容易做完了100页的活动方案&#xff0c;交到处女座上司那里&#xff0c;他告诉我&#xff1a;“…

调用azure的npm实现outlook_api模拟查看邮件、发送邮件(实现web版接受outlook邮件第一步)

文章目录 ⭐前言⭐注册azure应用&#x1f496;添加权限 ⭐调用npm 实现收发邮件&#x1f496;安装依赖&#x1f496;创建appSettings.js 放置密钥&#x1f496;创建graphHelper.js封装功能&#x1f496;主文件index.js 对外暴露&#x1f496;效果 ⭐结束 ⭐前言 大家好&#x…

我的cesium for UE踩坑之旅(蓝图、UI创建)

我的小小历程 过程创建对应目录&#xff0c;并将要用到的图片、资源放入对应目录下内容浏览器 窗口中右键&#xff0c;创建一个控件蓝图&#xff0c;用来编辑界面UI绘制画布面板&#xff08;canvas&#xff09;调整整体布局加入对应的控件将UI加入到关卡中 备注搜索不到 Add To…

【原创】简易学生成绩查询系统Excel版

简易学生成绩查询系统通常是为了方便学校、教师和学生能够快速查询和管理成绩而设计的一种工具。从之前提供的信息来看&#xff0c;我们可以总结出简易学生成绩查询系统的一些常见功能&#xff1a; ### 易查分成绩查询系统功能特点&#xff1a; - **成绩导入与管理**&#xff…

Spark_获取id对应日期的所在月份的天数完整指南

开发背景 前段时间有一个开发需求的一小块用到了这&#xff0c;是一个利用率的计算。规则是某id下的近半年的值的小时利用率。 计算规则是某值除以近半年 天数以及24h,但是月份里面数据有空值&#xff0c;所以要计算一下id对应的月份的天数&#xff0c;并且过滤掉数据有空值的天…

Azure openai connection with javascript

题意&#xff1a;使用JavaScript与Azure OpenAI进行连接 问题背景&#xff1a; I have created my chatbot with javascript and used open ai. I need to change it to azure open ai but can not find the connection details for javascript. This is how i connect with p…

十九、虚拟机VMware Workstation(CentOSDebian)的安装

目录 &#x1f33b;&#x1f33b; 一、安装 VMware Workstation1.1 安装 VMware Workstation1.2 虚拟机上安装 CentOS1.3 虚拟机安装 Debian 二、配置Debian方便第三方工具远程连接2.1 配置debian2.2 安装远程SSH工具并连接 一、安装 VMware Workstation 官网下载 本地资源库…

端到端自动驾驶:终局还是误区?

近年来&#xff0c;端到端自动驾驶技术成为了汽车行业的热议话题。尤其是在2024年&#xff0c;各家新兴车企纷纷打出端到端的旗号&#xff0c;似乎谁没有搞端到端&#xff0c;就会被市场淘汰。然而&#xff0c;端到端自动驾驶真的是自动驾驶技术的终局吗&#xff1f;本文将深入…

使用QML的ListView自制树形结构图TreeView

背景 感觉QML自带的TreeView不是很好用&#xff0c;用在文件路径树形结构比较多&#xff0c;但是想用在自己数据里&#xff0c;就不太方便了&#xff0c;所以自己做一个。 用‘ListView里迭代ListView’的方法&#xff0c;制作树形结构&#xff0c;成果图&#xff1a; 代码…

尚硅谷谷粒商城项目笔记——四、使用docker安装redis【电脑CPU:AMD】

四、使用docker安装redis 注意&#xff1a; 因为电脑是AMD芯片&#xff0c;自己知识储备不够&#xff0c;无法保证和课程中用到的环境一样&#xff0c;所以环境都是自己根据适应硬件软件环境重新配置的&#xff0c;这里的虚拟机使用的是VMware。 在解决了 Docker 安装的问题之…