[AutoSar]BSW_Com010 CAN IF 模块介绍
目录关键词平台说明一、CAN IF 所在架构位置二、CAN interface 简介三、CAN interface 主要功能描述3.1 CANIF 被调用方式3.1.1 中断模式3.1.2 轮询模式3.1.3 混合模式3.2 Hardware object handlesHO3.4 Dynamic L-PDUs3.4.1 Dynamic Transmit L-PDUs3.4.2 Dynamic receive L-PDUs3.5 Physical channel view3.6 CAN Hardware Unit3.7 BasicCAN and FullCAN reception3.8 Initialization3.9 Transmit request3.10 Transmit data flow3.11 Transmit buffering3.11.1 General behavior3.11.2 Storage of L-PDUs in the transmit L-PDU buffer3.11.3 Initialization of transmit L-PDU buffers3.12 Transmit confirmation3.13 Receive data flow3.14 Receive indication3.15 Read received data3.16 Read Tx/Rx notification status3.17 Data integrity3.18 CAN Controller Mode3.18.1 CAN Controller Operation Modes3.18.2 Controller Mode Transitions3.18.4 Wake-up3.18.4.1 Wake-up detection3.18.4.2 Wake-up Validation3.19 PDU channel mode control3.19.1 PDU channel modes3.20 Software receive filter3.20.1 Software filtering concept3.21 Data Length Check关键词嵌入式、C语言、autosar、OS、BSW平台说明项目ValueOSautosar OSautosar厂商vector EB芯片厂商TI 英飞凌编程语言CC编译器HighTec (GCC)autosar版本4.3.1回到总目录一、CAN IF 所在架构位置二、CAN interface 简介如上图所示CAN interface 简称canif位于下层的 CAN 物理层CAN Driver CAN transceiver 与上层的 CAN 服务层 CAN sm CAN NMCAN 协议层CAN TP PDUR之间。CANif 独立于硬件提供了统一的接口来管理CAN 物理层的设备同时可以结合CAN SM 模块来管理所有的内外部CAN driver 和CAN transceiver实现对他们的状态改变。在PDU 的接收和传输中向上层可以通知发送确认transmit confirm接收指示Rxindication()将下层的PCI 和SDU打包传递给上层。向下可以将SUD 分发给驱动。支持功能1.CAN Interface 初始化2.Transmit confirmation3.Transmit buffer4.Receive indication5.DLC check6.CAN FD support7.Communication Modes8.BusOff detection9.External wakeup10.Wakeup validation11.Multiple CAN Driver support三、CAN interface 主要功能描述3.1 CANIF 被调用方式3.1.1 中断模式CanIf services 在CAN driver 产生的中断中被调用。3.1.2 轮询模式CanIf services 在Can_MainFunction_XX (XX Write/read/busoff/wakeup/transceiver)中被调用。3.1.3 混合模式例如full can 用 中断basic can 用轮询。3.2 Hardware object handlesHO用于发送(HTH)和接收(HRH)的硬件对象句柄(HOH)表示对CAN邮箱结构的抽象引用该结构包含CAN相关参数如CanId, DLC和数据。基于CAN硬件缓冲区抽象每个硬件对象在CAN if中被引用而不依赖于CAN硬件缓冲区的布局。HOH在CanDrv的接口服务调用中用作参数由CanDrv的配置提供并由CanDrv用作CAN邮箱通信缓冲区的标识符。CanIf仅作为硬件对象句柄的用户但不根据硬件特定信息对其进行解释。因此CanIf仍然独立于硬件。3.3 Static L-PDUsCanIf为上层提供了对CAN L-SDU相关数据的通用访问.CanIf应将每个L-PDU只分配给一个CAN控制器。因此禁止将单个l - pdu分配给多个CAN控制器。CanIf支持激活和反激活属于一个CAN Controller 所有的 l - pdu CAN控制器用于发送和接收。3.4 Dynamic L-PDUsCANIF 支持 通过CanIfRxPduCanIdMask 来过滤ID。3.4.1 Dynamic Transmit L-PDUsDynamic Transmit L-PDUs的定义:允许在运行时重新配置CanId (CanIfTxPduType)或将ID或其部分作为L-SDU的元数据。3.4.2 Dynamic receive L-PDUsDynamic receive L-PDUs的定义:与一组Can Id对应的l -PDU其中实际接收到的Can Id作为PDU数据的一部分提供给上层。3.5 Physical channel view一个Physical channel 是由一个 CAN Controller 和一个 CAN Transceiver连接组成的。一个或多个Physical channel 连接到一个网络。CanIf提供服务来控制所有CAN设备例如CAN Controllers and CAN和Transceivers。CanSm使用这些api 服务向ComM提供网络观察结果用于执行连接到单个网络的所有物理通道的唤醒和睡眠请求。canIf传递由CanDrv和CanTrcv分别为每个物理通道提供的状态信息作为向上传递到CanSm的状态信息。CanIf模块提供的Controller_IdID是对CanDrv instances的抽象ID从0开始。CanIf模块提供的Transceiver_IdID是对CanTrcv instances的抽象ID从0开始。CanSm 通过上述抽象出来的ID 来讲通知与下面的 CanDrv CanTrcv 关联。由于CANIF 独立于硬件层所以canif 不会关心 下面连接的是哪类硬件高速can或者低速CAN 有几个硬件。3.6 CAN Hardware UnitCAN Hardware Unit 由一个或多个相同类型的CAN控制器模块组成这些模块可以位于芯片上也可以作为外部独立设备。每一个 CAN Hardware Unit 由相应的CanDrv提供服务.如果不同的CAN Controllers被使用那么不同类型的CanDrvs就会被使用但是CanIf模块提供了统一的API。CanIf模块在配置中收集了CAN Controller以及Hardware Objects的抽象信息object ID类型等3.7 BasicCAN and FullCAN reception[AutoSar]BSW_Com09 CAN driver 模块FULLBASICCAN、FIFO选择3.8 Initialization通过CanIf_Init() 初始化。3.9 Transmit requestCanIf模块提供CanIf_Transmit()公共接口给上层模块CAN TP 、PDUR 等用来传递L-PDU。上层模块只能通过CanIf_Transmit()接口来启动数据传输服务而不能直接访问CAN driver。调用CanIf_Transmit()接口的时候CanIf模块执行下述的Action:检查初始化CanIf模块状态识别CanDrv有多个CanDrvs被使用确定访问CAN硬件传输对象的HTH调用CanDrv的Can_Write()函数传输成功返回E_OK3.10 Transmit data flow[AutoSar]BSW_Com06 CAN报文应用层到Can总线的函数调用传输服务CanIf_Transmit()是基于L-PDUs的。通过L-PDU数据结构中L-SDU ID和指向L-SDU数据的指针可以访问/获取L-SDU数据。CanIf存储关于为发送任务配置的可用硬件对象的信息。函数CanIf_Transmit()将CanTxPduId映射到相应的HTH并调用函数Can_Write()。3.11 Transmit buffering3.11.1 General behavior在CanIf的作用域中传输进程以调用CanIf_Transmit()开始并以调用上层模块的回调服务结束 User_TxConfirmation ()。在发送过程中CanIf、CanDrv和CAN Mailbox应将只发送一次的L-PDU存储在一个位置。根据传输方法的不同它们是: Can硬件发送邮箱或者是CanIf模块中L-PDU发送buffer如果发送缓存使能了。对于触发传输CanIf只需要存储给定L-PDU的传输请求而不需要存储其数据。当HTH空闲(再次空闲)时通过触发传输函数及时获取数据。传输的单个Tx L-PDU的请求不应存储两次。这种行为与CAN网络上通常的周期性通信方式相对应。如果发送缓冲被启用CanIf将在CanIf发送L-PDU缓冲区(CanIfBufferCfg)中存储一个Tx L-PDU如果它在发送请求时被canrv拒绝。3.11.2 Storage of L-PDUs in the transmit L-PDU buffer如果CanDrv在调用Can_Write()时返回CAN_BUSY, CanIf尝试只在发送L-PDU缓冲区中存储一个新的发送L-PDU或它的发送请求。3.11.3 Initialization of transmit L-PDU buffersCanIf_Init()函数被调用后CanIf完成发送L-PDU Buffer的初始化。3.12 Transmit confirmation如果之前的传输请求成功完成CanDrv通过调用CanIf_TxConfirmation()将其通知给CanIf。3.13 Receive data flow根据AUTOSAR基本软件架构接收到的数据将在上层通信栈(即AUTOSAR COM、CanNm、CanTp、DCM)中进行评估和处理。这意味着上层模块既不能与CanDrv (Rx)的缓冲区一起工作(即改变)也不能访问CanIf (Tx)的缓冲区.只有当CanIf_PUBLIC_READRXPDU_DATA_API设置为TRUE时CanIf才能在接收路径中提供内部缓冲。如果新接收到一个L-PDU, CanDrv调用CanIf的CanIf_RxIndication()。L-PDU特定数据的访问由以下参数实现: 硬件接收句柄HRH接收CAN ID接收CAN数据长度接收到的L-PDU数据的引用指针。CAN硬件接收对象被锁定直到数据复制到临时或上层模块缓冲区的过程结束。在CanIf的CanIf_RxIndication()返回后硬件对象将立即被释放以避免数据丢失。[AutoSar]BSW_Com07 CAN报文接收流程的函数调用3.14 Receive indication对CanIf_RxIndication()的调用在其参数中引用了一个新接收到的CAN L-PDU。如果调用了CanIf_RxIndication()函数CanIf将评估CAN L-PDU是否接受并为上层通信层随后的访问准备L-SDU。如果配置了该CAN L-PDU并且该CAN L-PDU被成功检测并接受进行进一步处理则CanIf使用User_RxIndication()通知上层模块关于此异步事件。如果CanTrv中调用CanIf_RxIndication函数CanIf执行一下操作软件过滤可配置DLC检查可配置缓冲区接收L-SDU可配置调用上层提供的接收通知回调函数可配置3.15 Read received data读接收数据接口CanIf_ReadRxPduData()是上层模块读取最近从CAN网络接收到的CAN l - sdu的通用接口。上层模块仅通过CanIf服务发起接收请求而不直接访问CanDrv。如果CanIf将收到的L-SDU写入上层模块I-PDU缓冲区则表示接收请求成功完成。3.16 Read Tx/Rx notification status除了通知回调函数CanIf提供API服务CanIf_ReadTxNotifStatus()来读取任何发送L-SDU的发送确认状态并提供API服务CanIf_ReadRxNotifStatus()来读取任何接收L-SDU的接收指示状态。3.17 Data integrity基本原理:尝试更新上层模块缓冲区以及CanIf内部缓冲区中的数据必须考虑到在中断服务程序或其他抢占事件的上下文中可能发生的更改。抢占事件可能发生在抢占任务多个CAN中断如果使用多个物理通道例如网关或者在其他外设或网络系统中断的情况下需要在网络上发送和接收l - pdu。如果在CanIf模块中调用CanIf_Transmit()、CanIf_TxConfirmation()和CanIf_ReadRxPduData()函数从CanIf controlled内存区域读取数据CanIf应保证提供的值是最近获得的值。如果CanIf被配置为使用传输缓冲区或接收缓冲区,CanIf_Transmit()、CanIf_TxConfirmation()和CanIf_ReadRxPduData()函数只访问CanIf控制的内存区域的数据。3.18 CAN Controller ModeCanIf模块提供服务控制CAN Controllers的模式。提供CanIf_GetControllerMode()获取 CAN Controllers的模式提供CanIf_SetControllerMode()设置CAN Controller模式。CanSM模块负责一个CAN网络上所有CAN Controllers一致性管理。CanSM负责设置一个网络上的所有CAN Controllers按顺序的进入休眠或者唤醒3.18.1 CAN Controller Operation ModesControllerID标识的当前CAN网络如果处于CAN_CS_STOPPED状态那么通过该网路调用CanIf_Transmit()函数将返回E_NOT_OK不会调用Can_Write()函数。同时还会清除掉CanIf中的发送缓存。同时还会调用User_TxConfirmation(id, E_NOT_OK)同时上层发送数据失败。3.18.2 Controller Mode TransitionsCAN控制器的状态更改请求API以异步的方式通过回调服务发出异步通知。根据CAN控制器硬件中转换请求的设置真实的转换到请求模式是异步发生的例如请求睡眠转换CAN_CS_SLEEP。成功更改为例如CAN_CS_SLEEP模式后CanDrv调用函数CanIf_ControllerModeIndication() CanIf依次调用函数User_ControllerModeIndication()。如果CAN传输非常快CanIf_ControllerModeIndication()可以CanIf_SetControllerMode()期间调用。CanIf的上层模块可以通过CanIf_GetControllerMode()轮询当前的控制器模式.3.18.4 Wake-upECU支持通过CAN网络唤醒无论使用哪种唤醒方法(直接关于CAN控制器或CAN收发器)只有当CAN控制器和CAN收发器设置为某种“侦听唤醒”模式时。这通常是一个睡眠模式通常的通信被禁用。只有这种模式才能确保CAN控制器处于停止状态。因此可以启用唤醒中断。3.18.4.1 Wake-up detection如果启用了唤醒支持CanIf通过集成代码检测到CanIf_CheckWakeup()服务的CAN唤醒。在CAN总线“wake-up”事件中在执行EcuM_CheckWakeup(WakeupSource)时可能会调用CanIf_CheckWakeup(WakeupSource)函数。CanIf反过来通过配置输入引用来检查CanDrvs中的EcuMWakeupSource这是必须检查的CanDrvs。CanIf通过引用CanIfCtrlCanCtrlRef获取此信息。被调用的通信服务属于配置期间定义的服务。通过这种方式EcuM和CanSM能够改变CAN控制器状态并控制与BusOff恢复或唤醒过程相关的系统行为。3.18.4.2 Wake-up Validation当CAN控制器/ CAN收发器检测到总线唤醒事件时将直接通知ECU状态管理器。如果需要验证这样的唤醒事件EcuM(或CDD)打开对应的 CAN Controller (CanIf_SetControllerMode())和CAN Transceiver (CanIf_SetTrcvMode())。当“PDU Channel Mode”设置为“CanIf_ONLINE”或“CanIf_TX_OFFLINE”时CanIf将接收到的消息通知上层模块。因此如果需要唤醒验证则不需要将PDU通道模式设置为CanIf_ONLINE或CanIf_TX_OFFLINE。3.19 PDU channel mode control每个L-PDU被分配到一个专用的物理CAN通道这个物理CAN通道连接到一个CAN Controller和一个CAN网络。通过这种方式以处理单个逻辑L-PDU通道组的方式来控制一个组里面的所有L-PDU。这些逻辑组代表了连接到一个下层网络的所有的L-PDU。3.19.1 PDU channel modesCanIf模块提供CanIf_SetPduMode()和CanIf_GetPduMode()服务来设置和获取CAN通道模式。只能在某个CAN通道处于CAN_CS_STARTED模式下才能改变通道模式。CanIf_ONLINE 和CanIf_OFFLINE会影响PDU通道的整个通信过程收/发),CanIf_TX_OFFLINE 和 CanIf_TX_OFFLINE_ACTIVE模式分别关闭/打开PDU的发生。每路PDU通道可以在CAN_OFFLINE模式没有通信CanIf_TX_OFFLINEpassive mode 能收不能发模式CanIf_TX_OFFLINE_ACTIVE模拟发送但不收CanIf_ONLINE完全通信模式。3.20 Software receive filter并不是所有的L-PDU都被定义为Receive L-PDUReceive L-PDU需要从相应的ECU接收这些L-PDU可以通过硬件接收滤波器因此在BasicCAN硬件对象中被成功接收。CanIf可选地过滤掉这些L-PDU并禁止进一步的软件处理。软件过滤机制的方法是从正在处理的HRH和CanId中找出相应的L-PDU。找到L-PDU后CanIf接受接收到的L-PDU上层可以直接访问L-SDU信息。3.20.1 Software filtering concept配置工具处理有关硬件接受过滤器设置的信息。最重要的设置是L-PDU硬件对象的数量和范围。输出范围定义了接收哪些l - pdu属于每个硬件接收对象。3.21 Data Length Check将收到的数据长度值与配置的数据长度值进行比较。配置的Data Length值应从该L-PDU中使用的字节大小中得出。所配置的数据长度值不一定是CAN通信矩阵中定义并由该CAN L-PDU的发送方使用的数据长度值。回到总目录

相关新闻

IMA 零代码搭建财务制度 RAG 问答助手(“AI+财务“最经典应用)

IMA 零代码搭建财务制度 RAG 问答助手(“AI+财务“最经典应用)

IMA 零代码搭财务制度 RAG 问答助手 从文档导入到检索调优,一套照着做的极简落地法。 很多人一听到 “RAG” 就头大:向量库、Embedding、重排序、余弦相似度……感觉非得会 Python、会部署才能玩。其实对大多数职场人来说,个人知识库 垂直问…

2026/8/26 20:27:53 阅读更多 →
数字化转型:转什么、怎么转?

数字化转型:转什么、怎么转?

一、引言:为什么今天必须认真讨论数字化转型过去十年,“数字化转型”从一个概念热词,逐渐变成了企业无法回避的战略命题。无论是制造业、零售业、金融业,还是公共服务、农业和医疗领域,几乎所有行业都在谈论数字化。然…

2026/8/26 20:27:53 阅读更多 →
天猫店群自动化管理系统:20核并发不抢焦,单机跑通百店零报错

天猫店群自动化管理系统:20核并发不抢焦,单机跑通百店零报错

天猫店群自动化管理系统:20核并发不抢焦,单机跑通百店零报错 做店群的老板都知道,天猫的同行数据截流,是店群运营中最耗人力也最容易出错的环节。 同行截流是店群最核心的引流手段。别人花大价钱投流的爆款,你把他的…

2026/8/26 20:27:53 阅读更多 →

最新新闻

Windows平台安装与使用Wget命令行下载工具完整指南

Windows平台安装与使用Wget命令行下载工具完整指南

1. 项目概述:为什么Windows用户需要Wget?在Linux和macOS的世界里,wget是一个如同空气般存在的命令行工具,资深开发者和运维工程师对它再熟悉不过。它是一个非交互式的网络文件下载器,支持HTTP、HTTPS和FTP协议&#xf…

2026/8/26 21:51:56 阅读更多 →
每日算法练习:提升编程效率与面试表现的关键

每日算法练习:提升编程效率与面试表现的关键

## 1. 为什么你需要每日算法练习在技术面试中遇到白板编程就大脑空白?看到LeetCode中等难度题目需要半小时才能理清思路?代码跑起来总是比同事的解法慢两倍?这些问题的根源往往在于缺乏系统性的算法思维训练。我以过来人身份告诉你&#xff1…

2026/8/26 21:51:56 阅读更多 →
Pandas复合索引Series转DataFrame:reset_index()原理与实战指南

Pandas复合索引Series转DataFrame:reset_index()原理与实战指南

1. 项目概述:从复合索引到规整列在数据处理和分析的日常工作中,我们经常会遇到一种让人又爱又恨的数据结构:Pandas的复合索引(MultiIndex)Series。爱它,是因为它能以多维度的方式高效地组织和查询数据&…

2026/8/26 21:51:56 阅读更多 →
C++模板编程:从泛型基础到高级实战技巧

C++模板编程:从泛型基础到高级实战技巧

1. 项目概述:为什么C模板是泛型编程的基石如果你写过C,尤其是写过一些需要处理多种数据类型的通用代码,比如一个通用的排序函数或者一个链表容器,那你大概率已经和模板打过交道了。我第一次被模板“震撼”到,是在尝试写…

2026/8/26 21:51:56 阅读更多 →
K3/GLM5.2抢不到?四条替代路线与API接入实操指南

K3/GLM5.2抢不到?四条替代路线与API接入实操指南

这段时间最绕不开的一组新模型,就是 Kimi 的 K3 和智谱的 GLM5.2。两个模型在社区里都被拿来和 DeepSeek V4 Flash 对比,讨论集中在代码生成、Agent 任务和长文本处理上。随之而来的是各家模型平台推出的“coding plan”——编程套餐,价格看起…

2026/8/26 21:51:56 阅读更多 →
神经外科手术导航建模:临床决策支持系统的核心逻辑

神经外科手术导航建模:临床决策支持系统的核心逻辑

1. 这不是一道“纯数学题”:神经外科手术定位导航的本质是临床决策支持系统2024年认证杯SPSSPRO杯数学建模B题(第一阶段)的标题里,“神经外科手术的定位与导航”这九个字,远比“数学建模B题”五个字沉重得多。它不是在…

2026/8/26 21:50:56 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/26 17:46:43 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/26 17:46:39 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →