DaVinci Developer自动连接

输入端口原型

自动连接功能可以无上下文地从 "图形" 功能区页面启动,也可以从图形视图的右键菜单启动。

启动无上下文自动连接 (截图显示:Graphic 选项卡 → 右侧 "Auto Create Port Connector Prototypes" 按钮)

启动上下文相关自动连接 (截图显示:右键点击组件端口 → 选择 "Complete Connectors" 选项)

自动连接的规则:

  1. 无上下文连接 :会考虑当前父组合(Composition)中的所有端口原型。
  2. 上下文相关连接 :会根据你当前的选择范围创建连接:
    • 未选中任何对象:考虑整个组合内的所有端口原型
    • 选中单个组件:仅考虑该组件的所有端口原型
    • 选中单个 / 多个端口原型:仅将这些选中的端口作为建议连接器的源或目标
连接方式 触发方式 作用范围 适用场景
无上下文自动连接 Graphic 工具栏按钮 整个 Composition 所有 SW-C 新建系统架构,批量创建所有匹配端口的连接
上下文相关连接 右键菜单 → Complete Connectors 选中的组件 / 端口 局部修改,只连接特定组件或特定端口

自动连接的匹配规则

DaVinci 只会自动连接同时满足以下所有条件的端口:

  • 端口名称完全相同(大小写敏感)
  • 端口方向互补(Sender 对应 Receiver,Server 对应 Client)
  • 接口类型完全一致(包括接口版本号)
  • 数据元素(Data Element)名称和类型完全匹配

算法会为选中的端口原型SWC1.Counter寻找匹配的对应端口:

  1. 第一步,分析命名模式以生成一个关键字字符串
  2. 使用不带前缀 / 后缀的简单模式搜索,即端口原型的名称是搜索算法的核心 ,关键字字符串 = Counter
  3. 对于所有可连接的端口原型,如果关键字字符串是某个可连接端口原型名称的子字符串,就会被提议为一个连接
  4. 对话框中的每一行对应一个被提议的连接

此外,算法可以通过 ** 连接选项 (Connect Options)** 进行精细化调整:

  • Match case(区分大小写):启用大小写敏感匹配
  • Match whole word(全字匹配):启用精确全字匹配
  • Allow split(允许拆分):允许一个 P-Port(发送端口)连接到多个 R-Port(接收端口)
  • Allow merge(允许合并):允许一个 R-Port(接收端口)连接到多个 P-Port(发送端口)
  • Allow incompatible(允许不兼容):忽略 AUTOSAR 兼容性规则进行匹配
  • 如果你修改了这些选项,点击 **Apply(应用)** 按钮使更改生效
  • 要获取关于建议连接的更多信息,点击鼠标右键打开上下文菜单
  • 使用Show P-Port 或Show Connected菜单按钮,可以在软件设计图形编辑器中定位到对应的端口原型

匹配算法的本质

这是理解自动连接功能的核心:默认情况下,DaVinci 使用的是 "子字符串匹配",而不是精确匹配。

在你之前的例子中:

  • 关键字 = Counter
  • 所有包含Counter的端口都会被匹配:Counter、MyCounter、MYCOUNTER_CAPITAL、MyCounterBackup、MyCounter_Other
选项 默认状态 功能说明 推荐使用场景
Match case 未勾选 区分大小写 团队有严格的命名规范时建议勾选
Match whole word 未勾选 必须完全匹配整个端口名称 强烈建议默认勾选,避免误连
Allow split 勾选 1 个 P-Port → 多个 R-Port 广播信号场景,保持默认勾选
Allow merge 勾选 多个 P-Port → 1 个 R-Port 一般不建议使用,容易导致信号覆盖
Allow incompatible 未勾选 忽略接口类型不匹配 绝对不要勾选,会导致严重的编译错误

最佳实践 :默认勾选Match whole word和Match case,关闭Allow merge,这样可以最大程度避免自动连接产生错误连接。

相关推荐
星夜离尘566 小时前
MATLAB 工程实验:不等间隔流量积分,先把缺口与覆盖率说清楚
开发语言·matlab·时间戳·数据质量·数值积分
_Evan_Yao6 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
Ai-_Man7 小时前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
梓豪csd7 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼7 小时前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
学逆向的7 小时前
C 枚举变量
c语言·开发语言·网络安全
Sakura_j_h_7 小时前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
thefool1122668 小时前
TCP 1
java·1024程序员节
金銀銅鐵10 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手10 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务