AUTOSAR:SOME/IP 概念

news2024/12/12 11:16:19

文章目录

  • 1. 用例与需求
    • 1.1 典型用例
    • 1.2 对中间件的要求
  • 2. 协议栈示例
  • 3. SOME/IP 概念
    • 3.1 中间件整体功能与架构
    • 3.2 服务组成元素详细解释
  • 4. 服务发现机制深入剖析
  • 5. 总结

1. 用例与需求

1.1 典型用例

在这里插入图片描述
信息娱乐系统:

  • 后座娱乐系统连接:允许后排乘客连接外部设备(如平板电脑),通过以太网实现高速数据传输,播放视频或音乐,提升乘车体验。
  • AV 运输:用于车内音频视频信号传输,如将车载 DVD 播放器的视频信号传输到多个显示屏,确保多媒体内容高质量呈现。

驾驶员辅助:

  • 环视系统:利用以太网高带宽、低延迟特性传输摄像头图像数据,为驾驶员提供实时车辆周围环境视图,辅助驾驶操作,如停车、倒车、通过狭窄路段等。

诊断与闪存更新:

  • 以太网可快速传输诊断数据,方便维修人员准确、迅速检测车辆故障。
  • 在车辆软件更新(如发动机控制单元软件升级)时,高效传输大量闪存更新数据,减少更新时间,增强车辆可维护性和性能。

1.2 对中间件的要求

  1. 支持类似 CAN 的通信,以兼容汽车中广泛应用的 CAN 总线,用于实时性高、数据量小的控制信号传输(如发动机、刹车控制)。
  2. 具备类似 MOST 的控制通信能力,满足车内多媒体信息传输和控制需求(如音频视频系统控制信号)。
  3. 高效利用以太网交换介质,适应车载系统增长的数据传输需求(如高清地图、大量传感器数据)。
  4. 支持单播通信,保障特定设备间一对一通信(如控制单元与传感器数据交互),避免数据扩散。
  5. 限制组播 / 广播范围,减少网络拥塞,确保关键控制信号和实时数据传输,维持车辆系统稳定可靠。

2. 协议栈示例

在这里插入图片描述
1. Layer 5 - 7(应用层及相关协议层)

  • IEEE 1722 AVB:负责音频 / 视频传输,保障车内多媒体服务质量,提供低延迟、高质量视听体验。

  • IEEE 802.1AS AVB:用于时间同步,确保多设备和传感器协同工作准确有效,在自动驾驶等场景至关重要。

  • UDP - NM:基于 UDP 实现车载网络管理,涵盖节点状态监测、唤醒休眠等功能,维护网络正常运行。

  • DoIP:通过 IP 实现车辆诊断,支持远程诊断操作,提升诊断效率和准确性。

  • SOME/IP:作为核心中间件,实现服务通信,使不同 ECU 能以服务导向交互,促进系统协同。

  • SOME/IP - SD:提供服务发现机制,助力 ECU 查找和交互服务,实现动态服务管理。

  • DHCP:动态分配 IP 地址,简化车载网络配置,适应设备动态变化。

  • ICMP:用于网络诊断和错误报告,及时反馈网络问题,便于故障排查。

  • ARP:将 IP 地址解析为 MAC 地址,确保以太网数据准确传输。

2. Layer 4(传输层)

  • UDP:为 SOME/IP 提供无连接、不可靠数据报服务,适用于实时性优先、少量数据丢失可接受场景(如车辆状态监测数据传输)。

  • TCP:在特定场景与 SOME/IP 协同,提供可靠数据传输,用于传输大量配置或更新数据(如软件更新、地图数据更新)。

3. Layer 3(网络层)

  • IP 协议:负责数据包路由和转发,实现不同网络节点通信和子网数据交换。

4. Layer 2(数据链路层)

  • IEEE 以太网 MAC + VLAN(802.1Q):控制数据在以太网上访问和传输,通过 MAC 识别设备,VLAN 划分虚拟局域网,增强网络安全性和管理效率(如区分车辆控制和信息娱乐系统网络)。

5. Layer 1(物理层)

  • 汽车以太网物理层(如 OABR):提供数据传输物理介质和电气特性,转换数据信号,保障设备间可靠传输。

在协议栈中,除了 Layer 1 和 Layer 7 需要特定的协议来适配车载环境外,其他层大多重用了现有的网络协议技术。例如,Layer 3 的 IP 协议、Layer 4 的 UDP 和 TCP 协议等都是在互联网和其他网络环境中广泛应用的成熟技术,通过在车载以太网中的应用,减少了开发成本和时间,提高了技术的可靠性和兼容性。

3. SOME/IP 概念

3.1 中间件整体功能与架构

在这里插入图片描述
1. SOME/IP 允许应用程序进行通信

  • 在图中,客户端(Client)和服务器(Server)都有各自的应用程序(App.)。SOME/IP 中间件(SOME/IP Middleware)作为桥梁,允许客户端应用程序和服务器应用程序进行通信。这意味着不同电子控制单元(ECU)中的应用程序可以通过 SOME/IP 实现数据交换和交互。

  • SOME/IP 为车载网络中的应用程序提供了一种标准化的通信机制,使得它们能够在车辆的复杂网络环境中有效地交互。

2. 数据包格式由服务规范自动确定

  • 图中显示了 SOME/IP 中间件,它负责处理客户端和服务器之间的通信。当应用程序通过 SOME/IP 进行通信时,数据包的格式由服务的规范决定。这意味着不同的服务会有特定的数据包格式要求,SOME/IP 会根据这些要求自动生成和解析数据包。
  • SOME/IP 通过服务规范来确保数据包格式的一致性和正确性,减少了应用程序之间通信的复杂性和错误率。

3. 服务器提供实现服务接口的服务实例

  • 在图中,服务器应用程序通过 SOME/IP 中间件向客户端提供服务。服务器实现了服务接口,并提供了具体的服务实例。例如,服务器可能提供车辆状态监测服务,其服务接口定义了如何获取车辆速度、温度等数据,而服务实例则是具体实现这些数据获取功能的代码。
  • 服务器在 SOME/IP 架构中扮演着服务提供者的角色,通过实现服务接口和提供服务实例,使得客户端能够访问和使用这些服务。

4. 客户端使用 SOME/IP 使用服务实例

  • 图中显示客户端应用程序通过 SOME/IP 中间件与服务器进行通信。客户端首先发现可用的服务实例(通过 SOME/IP - SD 服务发现机制),然后使用 SOME/IP 发送请求来调用服务器提供的服务实例。例如,客户端可能请求获取车辆当前速度,通过 SOME/IP 将请求发送到服务器,服务器处理请求后返回速度数据。
  • 客户端在 SOME/IP 架构中是服务的使用者,通过 SOME/IP 中间件来调用服务器提供的服务实例,实现所需的功能。

客户端和服务器的应用程序通过接口(Visible: Interface)与 SOME/IP 中间件交互,而 TCP/IP 协议栈负责处理数据包的传输(Visible: Packets)。

这种架构使得车载网络中的应用程序能够高效、可靠地进行通信,同时支持服务发现和多种服务类型,适应了现代车辆电子系统日益复杂的需求。

3.2 服务组成元素详细解释

  1. 方法(Methods)
  • 请求 / 响应方法(Request/Response): 客户端请求调用服务器方法,服务器返回结果,如车辆控制系统获取发动机工作参数。
    在这里插入图片描述

允许客户端获取服务器端的信息或触发服务器执行特定操作,实现分布式系统中不同组件间的功能交互。

例如在车载系统中,车辆仪表盘(客户端)需要获取发动机的实时状态数据(如转速、温度等),通过向发动机控制单元(服务器)发送请求并接收响应,实现数据的获取和显示,让驾驶员了解车辆运行状态。

实现了系统功能的解耦,客户端无需了解服务器内部实现细节,只需按照约定的请求 / 响应格式进行通信,便于系统的扩展和维护。当发动机控制单元升级或修改内部算法时,只要请求 / 响应接口不变,仪表盘的功能不受影响。

  • Fire&Forget 方法(Fire&Forget)(发送后即忘): 客户端发送请求后不等待响应,适用于实时性高且无需反馈场景。
    在这里插入图片描述

这明确表示了 Fire&Forget 类型请求的特性,即不支持返回答案和处理错误。 对于这种类型的请求,服务器在接收到请求后,会尽力处理请求,但不会向客户端发送任何关于处理结果的反馈。如果在处理过程中服务器遇到错误(如数据存储已满无法记录传感器数据),它也不会将错误信息返回给客户端。这种机制简化了通信流程,减少了客户端等待响应的时间和资源消耗,但同时也意味着客户端无法直接得知请求是否被成功处理,所以通常适用于对实时性要求较高且对处理结果反馈不敏感的场景。

比如实时数据采集和传输,只要数据发送出去即可,后续处理结果对当前数据采集任务影响不大。

在某些场景下,减少不必要的通信开销和等待时间

例如在车载系统中,大量的传感器数据(如车辆速度、发动机温度、轮胎压力等)需要实时传输,若每个数据传输都等待服务器响应,会导致通信延迟增加,影响系统的实时性。

通过 Fire&Forget 机制,传感器可以快速发送数据后继续进行下一次采集,提高了数据传输的频率和效率。 对于整个车载系统来说,能够更及时地获取各种状态数据,有助于系统对车辆状态的实时监测和控制,提升系统性能。

例如,车辆的安全控制系统可以更快地获取传感器数据,及时做出制动或稳定车辆的决策。

2. 事件(Events)
服务器向客户端发送消息,类似 CAN 消息,无初始值和明确生命周期,用于通知事件发生。

如防盗系统检测入侵后向报警系统发送事件触发警报。

在这里插入图片描述
基于特定条件触发向客户端推送信息: 事件是一种回调机制,意味着它是在服务器端特定条件(如周期性触发条件到达或状态发生变化)被满足时,自动向客户端发送消息的一种方式。这与传统的客户端主动请求获取信息不同,而是服务器主动向客户端推送相关信息。例如,车辆的安全系统(服务器)在检测到车门未关好(特定状态变化条件)时,会自动向车辆的提示系统(客户端)发送车门未关事件,就像是一种由服务器端触发的回调操作,提醒客户端做出相应处理(如发出警报或显示提示信息),这是回调机制的体现。

与 Fire&Forget 特性相结合:将这种回调机制与 Fire&Forget 特性相结合,就形成了一种独特的通信模式。服务器在满足特定条件时自动向客户端推送信息(回调),且推送后不等待客户端回应(Fire&Forget),使得信息能够及时从服务器传递到客户端,同时又不会给服务器带来额外的等待和处理负担,保证了服务器的高效运行,也确保了客户端能够及时获取到相关信息,适用于车载系统中许多对实时性要求较高的场景,如车辆状态监测、安全预警等。

3. 字段(Fields)
代表远程可访问属性,包含 Getter(读值)、Setter(设值)和 Notifier(值变通知)。
在这里插入图片描述
代表可远程访问的属性:字段是一种用于表示在车载系统中可被远程访问的属性的概念。在车辆的网络架构中,不同的电子控制单元(ECU)可能需要获取或修改其他 ECU 的某些属性值,字段就提供了这样一种机制。

例如,车辆的仪表盘显示系统(一个 ECU)可能需要获取发动机控制单元(另一个ECU)的发动机转速、水温等属性,这些属性就可以通过字段来表示,使得仪表盘能够远程访问并显示这些信息。

Getter(获取方法):Getter 是用于读取字段值的方法。
Setter(设置方法):Setter 则是用于设置字段值的方法。
Notification(通知机制):当字段的值发生变化时,会通过发送事件(Event)的方式进行通知。

4. 事件组(Eventgroups)
Eventgroups(事件组) 是一种用于发布 / 订阅处理的逻辑分组机制,它包含了事件(Events)和字段(Fields)。

在车载系统中,可能存在多个不同类型的事件和字段,为了更有效地管理和处理这些事件和字段之间的关系,将相关的事件和字段组合成一个事件组。

例如,在车辆的安全系统中,可能有车门状态变化事件(如车门打开、关闭事件)、车辆入侵检测事件等多个与安全相关的事件,以及一些相关的字段(如车门锁状态字段、车辆防盗系统状态字段等),这些可以被组合成一个 “车辆安全事件组”。这样的分组使得系统能够从逻辑上对这些相关的元素进行统一管理,便于理解和处理与车辆安全相关的信息。

发布(Publish)方面:当事件组中的某个事件发生或字段值发生变化时,系统可以将这个事件组作为一个整体进行发布。

例如,在上述车辆安全事件组中,如果车门被非法打开(车门状态变化事件发生),系统可以发布这个包含车门状态变化事件以及相关字段(如当前车门锁状态)的事件组,以便其他相关系统(如车辆报警系统、车主手机应用等)能够接收到这个信息。

订阅(Subscribe)方面:其他系统或组件可以根据自身的需求订阅特定的事件组。

比如,车辆报警系统可能订阅 “车辆安全事件组”,以便在该事件组中的任何相关事件发生时(如车门被非法打开或车辆入侵检测到异常),能够及时接收到通知并采取相应的报警措施(如发出警报声、向车主发送报警信息等)。

通过这种发布 / 订阅机制,基于事件组的方式提高了系统的灵活性和可扩展性,使得不同的系统组件能够根据自己的关注点选择性地接收和处理相关信息,避免了不必要的信息传输和处理,提高了车载网络的通信效率和系统的整体性能。同时,事件组的概念也有助于系统的模块化设计,不同的功能模块可以通过订阅不同的事件组来实现信息交互和协同工作,使得系统架构更加清晰,易于维护和升级。

在 SOME/IP 的概念中,方法、事件和字段都是服务接口的组成部分。一个服务通过其接口定义了它所提供的功能(方法)、可以通知客户端的情况(事件)以及可访问和管理的属性(字段)。

5. 事件 VS 字段
在这里插入图片描述

  • 本质与触发机制:

    事件(Event):事件是一种由服务器在特定条件下(如周期性或状态变化时)向客户端发送的消息,其本质是一种 “Fire&Forget(发送后即忘)” 类型的回调机制。

    字段(Field):字段代表可远程访问的属性,用于表示和管理系统中的各种属性值。它包含了 Getter/Setter 和 / 或 Notification。

  • 信息传递与功能侧重:

    事件(Event):事件的信息传递是单向的,从服务器到客户端,服务器发送事件后不期望得到客户端的响应。事件消息格式虽然与字段相同,但事件本身不携带初始值等额外信息,只是简单地通知客户端某些事情发生了。

    字段(Field):字段的操作涉及双向数据交互,客户端可以通过 Getter 获取字段值,通过 Setter 设置字段值,同时字段值变化时通过 Notification 发送事件通知客户端。字段不仅可以传递属性值本身,还可以通过相关方法对属性值进行操作。

  • 在系统中的角色与应用场景:

    事件(Event):在车载系统中,事件扮演着通知者的角色,用于触发系统的响应动作。

    字段(Field):字段则是系统中属性信息的载体和管理者。

4. 服务发现机制深入剖析

在这里插入图片描述
服务发现通过循环消息携带条目实现,包含服务操作(查找、提供、停止提供)和事件组操作(订阅、取消订阅等)信息。车辆启动时,ECU 借此互相发现识别,信息娱乐系统可查找并订阅音频播放服务相关事件组,实现交互。

1. 服务发现(Service Discovery)的作用概述:

服务发现是车载以太网通信中用于管理服务实例状态和信息交互的重要机制。它通过特定的方式明确地传输服务实例的状态信息,使得系统中的各个组件能够清楚地了解服务的可用性以及如何与之进行通信。这对于构建一个可靠、高效且动态的车载网络系统至关重要,因为车载系统中存在众多的服务和组件,它们需要实时地知道彼此的状态和连接方式,以便协同工作。

2. 明确传输服务实例状态:

服务可用性状态:服务发现明确地指示服务实例是否可用。例如,在车辆的多媒体娱乐系统中,音乐播放服务可能由多个服务实例组成,如音频解码服务、音频输出服务等。服务发现机制会明确地告知其他组件(如车辆的控制面板、音频控制面板等)这些服务实例当前是否处于可用状态。如果音频解码服务出现故障,服务发现会及时将其状态更新为不可用,这样其他组件就不会尝试向不可用的服务发送请求,避免了系统资源的浪费和错误的操作。

服务可达性信息: 除了可用性状态,服务发现还提供了如何到达服务的信息。这包括服务所在的网络地址、端口号等关键信息。在车载网络中,不同的服务可能分布在不同的电子控制单元(ECU)上,服务发现就像是一个导航系统,为其他组件指引如何找到并连接到所需的服务。例如,车辆的导航系统需要获取实时交通信息服务,服务发现会告知导航系统该服务所在的具体网络位置(如某个特定 ECU 的 IP 地址和端口号),使得导航系统能够准确地建立连接并获取信息。

3. 客户端需求指定

客户端需求表达: 客户端通过服务发现机制明确指定其需要的事件(Events)和字段(Fields)。这使得系统能够根据客户端的需求,精准地向其推送相关信息,避免了不必要的信息传输,提高了网络带宽的利用率。例如,车辆的自动驾驶系统可能只需要订阅车辆周围环境感知相关的事件(如雷达检测到的障碍物信息、摄像头捕捉的路况变化事件等)和一些关键的字段(如车辆当前速度、转向角度等),而不需要接收其他不相关的信息,如音乐播放服务的相关事件和字段。

服务发现的作用: 服务发现负责记录和管理客户端的这些需求,并协调服务器端的信息发布。当客户端订阅了特定的事件或字段后,服务发现会确保服务器在这些事件发生或字段值变化时,将相关信息及时发送给订阅的客户端。例如,车辆的发动机控制系统发布发动机转速、油温等字段的更新信息,服务发现根据订阅列表,将这些信息准确地发送给订阅了这些字段的客户端(如仪表盘显示系统、车辆诊断系统等),使得这些客户端能够实时获取最新的发动机状态信息,实现系统的协同工作和高效运行。同时,服务发现也会处理客户端的订阅请求,包括验证请求的合法性、管理订阅关系等。如果客户端请求订阅不存在或无权访问的事件或字段,服务发现会进行相应的处理(如拒绝订阅请求),确保系统的安全性和稳定性。

4. 通过循环消息(cyclic messages)传输状态

循环消息的构成与作用:服务发现使用循环消息来携带状态信息,这些循环消息包含了关于服务的各种条目(entries)。例如,消息中会包含服务相关的操作指令,如 “Find(查找服务)”、“Offer(提供服务)” 和 “StopOffer(停止提供服务)” 等。当一个新的服务实例启动并准备提供服务时,它会发送包含 “Offer” 指令的循环消息,告知其他组件该服务的存在和相关信息。如果服务出现故障或需要停止服务,就会发送 “StopOffer” 消息。

事件组(Eventgroup)相关操作在循环消息中的体现:循环消息中还涉及事件组(Eventgroup)的操作指令,如 “Subscribe(订阅事件组)”、“StopSubscribe(停止订阅事件组)”、“SubscribeAck(订阅确认)” 和 “SubscribeNack(订阅拒绝)” 等。这些指令用于管理客户端对事件组的订阅关系。例如,车辆的仪表盘显示系统可能需要订阅车辆状态相关的事件组,它会通过发送 “Subscribe” 指令的循环消息来表达订阅需求。服务发现机制收到订阅请求后,如果订阅合法,会返回 “SubscribeAck” 确认消息,同时开始向仪表盘显示系统发送相关事件组的信息。如果订阅存在问题(如权限不足或事件组不存在),则会返回 “SubscribeNack” 拒绝消息。通过这种循环消息的方式,服务发现能够持续地更新和维护系统中服务实例的状态信息,确保各个组件之间的通信和协作始终处于正确的状态,实现车载系统的稳定运行和高效功能。

5. 总结

车载以太网通信基于以太网协议栈和 SOME/IP 有优势,但面临挑战。SOME/IP 支持 GENIVI 和 AUTOSAR 架构,有明确服务发现机制,协议栈重用技术并优化资源利用。要实现高效可靠通信,需解决架构支持、敏捷与标准化平衡、测试复杂性等问题,以适应汽车电子系统发展需求和技术趋势。

AOTUSAR SOMEIP 文档需要的留下邮箱

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

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

相关文章

如何将自己的PHP类库发布到composer仓库

将自己的 PHP 类库发布到 Composer 仓库,需要经过一系列的准备和操作步骤,以下是详细说明: 准备工作 创建类库项目:确保你的 PHP 类库项目具有清晰的目录结构,遵循 PSR-4 等 PHP 编码规范。通常,类文件应…

Formality:set_svf命令

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 svf文件的全称是Setup Verification for Formality,即Design Compiler提供给Formality的设置验证文件,它的作用是为Formality的指导模式(Gui…

线性dp—acwing

题目&#xff1a;数字三角形 898. 数字三角形 - AcWing题库 看某个点&#xff0c;是从那些路径过来的去分析 分析1&#xff1a; 代码1&#xff1a;&#xff08;顺序正推&#xff0c;二维dp数组&#xff09; #include<bits/stdc.h> using namespace std;const int N 5…

Selenium WebDriver:自动化网页交互的利器

Selenium WebDriver&#xff1a;自动化网页交互的利器 在当今快速发展的Web开发领域&#xff0c;自动化测试已经成为确保应用程序质量和用户体验的重要手段。Selenium WebDriver&#xff0c;作为Selenium工具包中的核心组件&#xff0c;正是这一领域的佼佼者。本文将详细介绍S…

对于相同问题大模型的生成为什么会不同?

AI因你而升温&#xff0c;记得加个星标哦&#xff01; 大模型的输出是一个token一个token的进行逐步输出&#xff0c;在输出策略上可分为两大类&#xff1a; 贪心解码&#xff1a;直接选择概率最高的单词。这种方法简单高效&#xff0c;但是可能会导致生成的文本过于单调和重复…

12.11作业

1.脑图 定义一个数组&#xff0c;用来存放从终端输入的5个学生的信息【学生的信息包含学生的姓名、年纪、性别、成绩】 1>封装函数 录入5个学生信息 2>封装函数 显示学生信息 3>封装函数 删除第几个学生信息&#xff0c;删除后调用显示学生信息函数 显示 4> 封…

C++11 常用-新特性

一、原始字面量——原文链接 原始字面量 R可以直接得到其原始意义的字符串&#xff08;用于简化&#xff1a;win路径转换、字符串换行需要加连接符&#xff09; 定义方式 //R “xxx(原始字符串)xxx”//这种情况原本在 win下是需要使用\\的 string str2 R"(D:\hello\worl…

独家首发 | 基于 2D-SwinTransformer + BiGRU-GlobalAttention的并行故障诊断模型

往期精彩内容&#xff1a; Python-凯斯西储大学&#xff08;CWRU&#xff09;轴承数据解读与分类处理 基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 P…

ESP32-C3 入门笔记07: ESP-NOW动态绑定MAC地址. (ESP-IDF + VSCode)

ESP-NOW 简介 ESP-NOW [gitbuh] ESP-NOW 是一种由乐鑫公司定义的无连接 Wi-Fi 通信协议。在 ESP-NOW 中&#xff0c;应用程序数据被封装在各个供应商的动作帧中&#xff0c;然后在无连接的情况下&#xff0c;从一个 Wi-Fi 设备传输到另一个 Wi-Fi 设备。 CTR 与 CBC-MAC 协…

《Java核心技术I》并行数组算法

并行数组算法 Arrays类提供了大量并行化操作。 Arrays.parallelSort方法可以对一个基本类型值或对象的数组排序。 package arrays;import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import …

智创 AI 新视界 -- AI 助力金融风险管理的新策略(16 - 10)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

ASP.NET |日常开发中连接Oracle数据库详解

ASP.NET &#xff5c;日常开发中连接Oracle数据库详解 前言一、安装和配置 Oracle 数据访问组件1.1 安装ODP.NET&#xff08;Oracle Data Provider for.NET&#xff09;&#xff1a;1.2 引用相关程序集&#xff1a; 二、配置连接字符串2.1 连接字符串的基本组成部分&#xff1a…

ChatGPT 4:解锁AI文案、绘画与视频创作新纪元

文章目录 AI文案&#xff1a;激发文字的魅力&#xff0c;重塑营销与传播AI绘画&#xff1a;解锁艺术的无限可能&#xff0c;激发创意灵感AI视频&#xff1a;重塑视频创作流程&#xff0c;提升制作效率GPTs&#xff1a;构建个性化AI应用&#xff0c;赋能各行各业《ChatGPT 4 应用…

使用html 和javascript 实现微信界面功能1

1.功能说明&#xff1a; 搜索模块: 提供一个搜索框&#xff0c;但目前没有实现具体的搜索功能。 好友模块: 在左侧的“好友”部分有一个“查看好友”按钮。点击左侧的“查看好友”按钮时&#xff0c;会在右侧显示所有好友的列表。列表中每个好友可以点击查看详情&#xff0c;包…

常用的注解

RequestMapping 用于映射请求路径 可以添加在类或方法上 请求类型 请求类型包括GET、POST、PUT、DELETE等 默认支持GET和POST两种方式 简写&#xff1a;GetMapping、PostMapping、PutMapping、DeleteMapping PostMapping("/buy") 等价 RequestMapping("/buy&quo…

【操作系统】实验二:观察Linux,使用proc文件系统

实验二 观察Linux&#xff0c;使用proc文件系统 实验目的&#xff1a;学习Linux内核、进程、存储和其他资源的一些重要特征。读/proc/stat文件&#xff0c;计算并显示系统CPU占用率和用户态CPU占用率。&#xff08;编写一个程序使用/proc机制获得以及修改机器的各种资源参数。…

Mysql体系架构剖析——岁月云实战笔记

1 体系架构 理论内容阅读了mysql体系架构剖析&#xff0c;其他的根据岁月云的实战进行记录。 1.1 连接层 mysql最上层为连接服务&#xff0c;引入线程池&#xff0c;允许多台客户端连接&#xff0c;主要工作&#xff1a;连接处理、授权认证、安全防护、管理连接等。 连接处理&a…

算法基础Day7(动态规划)

文章目录 1.题目2.题目解答1.第N个泰波那契数题目及题目解析动态规划算法学习1.状态表示2.状态转移方程3.初始化4.填表顺序5.空间优化 代码提交空间优化 2.三步问题题目及题目解析算法学习代码提交 1.题目 1137. 第 N 个泰波那契数 - 力扣&#xff08;LeetCode&#xff09;面试…

Python基础笔记17--面向对象(其他)

一、面向对象的三大特性 1、封装 1、 将属性和⽅法书写到类的⾥⾯的操作 2、封装可以为属性和⽅法添加私有权限 2、继承 1、⼦类默认继承⽗类的所有属性和⽅法 2、⼦类可以重写⽗类属性和⽅法 3、多态 1、 传⼊不同的对象&#xff0c;产⽣不同的结果 二、多态 多态指⼀类事…

梳理你的思路(从OOP到架构设计)_基本OOP知识03

目录 1、<基类/子类 >结构的接口(卡榫函数) 1&#xff09;卡榫(Hook) 2&#xff09;卡榫函数的Java实现 2、IoC机制与基於 Default 軟硬整合觀點 函数 1&#xff09;卡榫函数实现IoC机制 2&#xff09;默认(Default)行为 1、<基类/子类 >结构的接口(卡榫函数…