CAPL浏览器(翻译自官方文档)

概念

概述 (Overview)

使用 CAPL Browser ,您可以编写 CAPL 程序 (Communication Access Programming Language,通信访问编程语言),用于激励、仿真、测试和诊断。

因此,在开发控制单元时,例如为了映射系统环境,可以通过 CAPL 仿真所有其他网络节点的数据流量,从而解决剩余总线节点尚不可用于测试的问题。

您还可以使用 CAPL 编写程序,对数据流量进行面向问题的分析,或编程实现一个网关,以在不同总线之间交换数据。

该工具具有界面友好的窗口,支持组合和编译复杂的程序序列,并能轻松定位程序代码中可能存在的编程错误。

CAPL 程序 以 CAPL 程序节点 (program nodes) 的形式添加到 CANalyzer 中。事件处理程序 (Event handlers) 作为 CAPL 的输入,通过它您可以响应外部事件(例如:特定报文的到达)。这些语言元素以及对数据库中定义的各种符号的符号化访问,使得 CAPL 程序节点的创建变得非常简便。

环境信息与数据 (Environment Information and Data)

CAPL Browser 会监控符号(即数据库符号、诊断参数、系统和环境变量),如果发生更改,这些信息会自动更新。当前 CANalyzer 配置的配置数据(如网络、通道、节点等)不会 自动更新。它们可以通过在运行的 CANalyzer 应用程序中执行 import CANoe/CANalyzer.environment 命令来读取。

为了使 CAPL 程序能够使用这些环境信息和数据,CAPL 程序应始终从 CANalyzer 中打开,可以通过双击 CAPL 程序节点,或者使用 Edit(编辑)上下文菜单命令或按钮来实现。

CAPL 程序 (CAPL Programs)

已打开的 CAPL 程序的显示界面分为 Navigator(导航器) 和 Text Editor(文本编辑器) 。

程序的全部源代码显示在 Text Editor 中。

使用 Navigator ,您可以轻松导航至源代码中的目标部分(例如:某个事件处理程序)。此外,还可以插入新的函数和包含文件 (Include files)。

当在 CAPL Browser 中打开的文件在另一个应用程序中被修改时,会弹出一个对话框以确认是否接管(应用)这些更改。

函数与符号 (Functions and Symbols)

已打开节点可用的所有 CAPL 函数和事件处理程序都显示在 CAPL Function Explorer(CAPL 函数浏览器) 中。该显示界面会根据 CANalyzer 中配置的环境进行自适应调整。

可以通过拖拽的方式,将事件处理程序和预定义函数从函数浏览器插入到文本编辑器中。

所有在分配给 CANalyzer 的数据库/函数目录中定义的符号和报文,都显示在 Symbol Explorer(符号浏览器) 或 MOST Symbol Explorer 中。

可以通过拖拽的方式,将符号和报文从符号浏览器或 MOST 符号浏览器插入到文本编辑器中。

过滤器 (Filters)

CAPL Browser 中的过滤器控制预定义函数、事件处理程序和符号的可见性,并影响 Function Explorer 、自动补全输入辅助 (autocomplete input assistance) 以及 Symbol Explorer/MOST Symbol Explorer 中的显示。

当打开 CAPL 程序时,过滤器会自动调整。当前加载的 CAPL 程序的函数、事件处理程序和符号会被显示出来。其他内容可以随时使用 Filter(过滤器) 功能区选项卡根据需要显示。

帮助 (Help)

CAPL Browser 的在线帮助 可以通过 File(文件) 功能区选项卡或激活窗口中的 键打开。

在 CAPL Function Explorer 底部的 Detail view(详细信息视图) 中,会显示所选类别或其函数/事件处理程序的简要说明。点击 ? 图标可打开相应函数的帮助信息。语法选项也会显示在函数下方。不支持从详细信息视图进行拖拽操作。

在 Technical Reference(技术参考) 中,您可以找到关于每个函数的语法、函数、参数、返回值以及函数和事件处理程序(事件程序)可用性的详细说明。

在 Text Editor 、CAPL Function Explorer 和 Navigator 中,对某个函数按下 键,即可打开相应函数的帮助信息。

浏览器设置------ 选项 (Options)

功能区:File 选项卡 > Options (功能区:文件选项卡 > 选项)

此对话框由以下页面组成:

常规 (General)

菜单 (Menu)

您可以在此设置要在 File(文件) 功能区选项卡中显示的最近打开文件的数量。最多可显示 24 个文件。

使用 Clear List(清除列表),您可以删除所有列出的文件。

兼容性 (Compatibility)

Automatically remove old CAPL Browser information from CAPL files (自动从 CAPL 文件中移除旧的 CAPL Browser 信息):在保存文件时,移除所有旧的 CAPL Browser 信息。

编译 (Compile)

您可以在此指定在编译前是否必须保存所有已更改的文件。

CAPL 文件加密 (CAPL File Encryption)

您可以在此指定在保存文件时,是否必须生成加密的 CAPL 文件。

编辑器 (Editors)

文本编辑器 (Text Editors)

此处的编辑器设置均适用于 CAPL 编辑器和 C# 编辑器。

您可以在此激活以下选项:

  • Enable bracket highlighting (启用括号高亮)
    以彩色高亮显示关联的函数括号,例如在输入语法时。您可以在 Fonts and Colors(字体和颜色) 下选择颜色。
  • Highlight current line (高亮当前行)
    以彩色高亮显示当前选中的行。您可以在 Fonts and Colors 下选择颜色。
  • Show line numbers (显示行号)
    在编辑器左侧显示行号。
  • Show whitespaces (显示空白字符)
    显示源代码中的空格。
  • Mark line modification (标记行修改)
    以彩色高亮显示修改过的行。
    • Yellow(黄色):行已被修改,但文件尚未保存。
    • Green(绿色):行已被修改且文件已保存。
  • Show indentation guides (显示缩进参考线)
    使用参考线在源代码中显示缩进。
  • Enable error highlighting (启用错误高亮)
    高亮显示错误代码。
  • Show autocomplete when typing (输入时显示自动补全)
    激活自动补全输入辅助功能。
    如果输入时未显示自动补全,您可以使用 + 手动打开自动补全框。
  • Enable word wrap (启用自动换行)
    自动对过长的行进行换行处理。
  • Highlight occurrences of selected text (高亮显示选中文本的匹配项)
    选中文本的其他匹配项将被额外高亮显示。

系统环境 (System Environment)

  • Show symbols of system environment in autocomplete (在自动补全中显示系统环境符号)
    如果系统环境的符号(信号、系统变量、环境变量)未在自动补全中显示,则可以节省内存。这在处理大量符号时可提升性能。

文本格式 (Text Formatting)

此处的编辑器设置均适用于 CAPL 编辑器和 C# 编辑器。

常规 (General)

您可以在此激活以下选项:

  • Enable smart indentation (启用智能缩进)
    自动在程序序列中插入空格,以提高代码概览性。
  • Automatically insert closing bracket (自动插入右括号)
    例如,如果您输入了 "(",括号会自动闭合。
  • Automatically insert closing apostrophe (自动插入右单引号)
    如果您输入了单引号,会自动插入闭合的单引号。
  • Codepage (代码页)
    您可以在此指定用于新建文件的代码页(注:通常涉及字符编码,如 UTF-8 或 ANSI)。

制表符 (Tabs)

您可以在此指定制表符宽度以及插入新制表符时的行为。

字体和颜色 (Fonts and Colors)

您可以在此选择编辑器中用于高亮显示特定显示对象所使用的字符集和颜色。

此处选定的颜色也同样用于,例如,CAPL Function Explorer(CAPL 函数浏览器) 的 Detail View(详细信息视图) 中。

带有字符集和相应颜色的文本示例显示在 Sample(示例) 下。

使用 Reset(重置),您可以将设置重置为其默认值。

消息 (Messages)

您可以在此选择要显示或隐藏的可隐藏消息 (hideable messages)。


家提示:在实车调试和自动化测试脚本编写过程中,强烈建议开启 Enable bracket highlighting 和 Show indentation guides,良好的代码格式化能极大降低排查复杂 CAPL 逻辑(如定时器嵌套、总线事件触发)时的视觉疲劳。*

作为一名资深车载网络工程师,为您提供这份 Vector CANalyzer 中 CAPL Browser 键盘操作 (Keyboard Operations) 快捷键指南的专业级翻译。

对于车载工程师而言,熟练掌握这些快捷键能极大提升编写 CAPL 脚本、处理诊断及总线路由逻辑的效率。以下是严格遵循行业术语规范的翻译:


键盘操作 (Keyboard Operations)

使用 CAPL Browser 时,可以使用以下快捷键:

调用帮助 (Call Help)

描述 (Description) 按键组合 (Key Combination)
打开帮助。 如果可用,文本编辑器中光标所在位置的单词对应的帮助将会显示。 如果 Windows 帮助已经打开,则会显示帮助系统的使用说明。 <F1>

移动光标 (Moving the Cursor)

描述 (Description) 按键组合 (Key Combination)
在编辑区域内向左、向右、向上或向下移动光标。 <Left Arrow> 或 <Right Arrow> <Up Arrow> 或 <Down Arrow>
将光标移动到行尾。 <End>
将光标交替移动到相应行文本的开头或行首。 <Home>
将光标移动到文本末尾。 <Ctrl>+<End>
将光标移动到文本开头。 <Ctrl>+<Home>
将光标移动到下一个文本块末尾。 <Ctrl>+<Right Arrow>
将光标移动到上一个文本块开头。 <Ctrl>+<Left Arrow>
横向向上或向下移动光标(翻页)。 <Page Up> 或 <Page Down>

对话框中的功能键 (Function Keys in Dialogs)

描述 (Description) 按键组合 (Key Combination)
将插入点移动到下一个字段。 <Tab>
将插入点移动到上一个字段。 <Shift>+<Tab>
执行当前命令,或接受更改(等同于 OK)。 <Enter>
关闭对话框且不执行任何操作(等同于 Escape)。 <Esc>
描述 (Description) 按键组合 (Key Combination)
选择功能区 (Ribbon) 并激活选项卡的选择。 此后,以下功能可用: <F10>
打开所选字符对应的选项卡。 <Character> (对应字符键)
在所选选项卡上打开所选字符对应的菜单/窗口。 <Character> (对应字符键)
打开当前活动选项卡左侧或右侧的选项卡。 <Arrow key right> / <Arrow key left>
在已打开的菜单中移动菜单命令的选择。 <Arrow key up> / <Arrow key down>
执行所选菜单命令的命令。 <Enter>

在文本编辑器中插入对象和符号 (Insert Objects and Symbols in Text Editor)

描述 (Description) 按键组合 (Key Combination)
插入一个信号 (Signal)。 <Ctrl>+<I>
插入一个系统变量 (System variable)。 <Ctrl>+<E>
插入一个报文或帧 (Message or frame)。 <Ctrl>+<D>
插入一个 PDU。 <Ctrl>+<Alt>+<D>
插入一个诊断对象/服务 (Diagnostic object/service)。 <Ctrl>+<G>
插入一个诊断参数 (Diagnostic parameter)。 <Ctrl>+<T>
插入一个诊断目标限定符 (Diagnostic target qualifier)。 <Ctrl>+<Alt>+<T>
插入一个诊断原语 (Diagnostic primitive)。 <Ctrl>+<Alt>+<G>
描述 (Description) 按键组合 (Key Combination)
选中当前活动文本编辑器中的全部文本。 <Ctrl>+<A>
将选区或选中行注释掉。 依次按下 <Ctrl>+<K>, <Ctrl>+<C>
取消选区或选中行的注释。 依次按下 <Ctrl>+<K>, <Ctrl>+<U>
插入带有 MOST 功能目录的报文。 <Ctrl>+<M>
自动补全输入辅助 (Autocomplete input assistance) <Ctrl>+<Space>
删除当前选中的文本或光标左侧的字符。 <Backspace>
删除选中的文本或光标右侧的字符。 <Del>
从文档中删除选中的文本并将其放入剪贴板。 <Ctrl>+<X>
将选中的文本复制到剪贴板。 <Ctrl>+<C>
将剪贴板内容粘贴到文本中的活动位置。 <Ctrl>+<V>
撤销上一次执行的操作。 <Ctrl>+<Z> <Alt>+<Backspace>
重做上一次撤销的操作。 <Ctrl>+<Y>
向左或向右扩展文本选择一个字符。 <Shift>+<Left Arrow> 或 <Right Arrow>
将文本选择扩展到上一个文本块的开头。 <Ctrl>+<Shift>+<Left Arrow>
将文本选择扩展到下一个文本块的末尾。 <Ctrl>+<Shift>+<Right Arrow>
向上或向下扩展文本选择一行。 <Shift>+<Up Arrow> 或 <Down Arrow>
将文本选择扩展到行尾。 <Shift>+<End>
将文本选择交替扩展到相应行的文本开头或行首。 <Shift>+<Home>
将文本选择扩展到文本末尾。 <Ctrl>+<Shift>+<End>
将文本选择扩展到行首。 <Ctrl>+<Shift>+<Home>
打开 查找和替换 对话框,快速查找 (Quick Find)。 <Ctrl>+<F>
打开 查找和替换 对话框,在文件中查找 (Find in Files)。 <Ctrl>+<Shift>+<F>
打开 查找和替换 对话框,快速替换 (Quick Replace)。 <Ctrl>+<H>
打开 查找和替换 对话框,在文件中替换 (Replace in Files)。 <Ctrl>+<Shift>+<H>
重复上次执行的查找或替换操作。 <F3>
设置或删除书签 (Bookmark)。 <Ctrl>+<K>, <Ctrl>+<K>
转到上一个书签。 <Ctrl>+<K>, <Ctrl>+<P>
转到下一个书签。 <Ctrl>+<K>, <Ctrl>+<N>
清除所有书签。 <Ctrl>+<K>, <Ctrl>+<L>

其他按键 (Other Keys)

描述 (Description) 按键组合 (Key Combination)
显示文件选择对话框,用户可以在其中选择现有文档。 <Ctrl>+<O>
创建新的 CAPL 程序。 <Ctrl>+<N>
创建新的包含文件 (include file)。 <Ctrl>+<Shift>+<N>
保存当前活动 CAPL 程序。 <Ctrl>+<S>
将程序以新名称或硬盘上的其他位置保存。 <Ctrl>+<Shift>+<S>
打开一个对话框,在其中输入当前活动文件的行号以导航至该行。 <Alt>+<G>
打印当前活动的 CAPL 程序。 <Ctrl>+<P>
关闭活动的 CAPL Browser 窗口。 <Ctrl>+<F4>
编译活动窗口中的程序。 <F9>
编译所有已加载的 CAPL 程序。 <Shift>+<F9>
退出 CAPL Browser。 <Alt>+<F4>
向上滚动窗口内容。活动光标位置保持不变。 <Ctrl>+<Up Arrow>
向下滚动窗口内容。活动光标位置保持不变。 <Ctrl>+<Down Arrow>
打开系统菜单。 <Alt>+<Space>
在活动的 Windows 程序之间切换。 <Alt>+<Tab>
输出窗口 (Output Window) : 光标定位在代码中的上一个错误位置。 <F4>
输出窗口 (Output Window) : 光标定位在代码中的下一个错误位置。 <Shift>+<F4>

建议:在编写涉及复杂诊断服务(如 UDS/OBD)或大量报文信号处理逻辑的 CAPL 脚本时,<Ctrl>+<Space> (自动补全) 和 <Ctrl>+<G> / <Ctrl>+<T> (插入诊断对象/参数) 是最高频、最能提升代码准确性的组合键。同时,善用 <F4> / <Shift>+<F4> 可以在编译报错时快速在代码行之间穿梭,极大地提升 Debug 效率。

窗口

窗口管理 (Window Management)

CAPL Browser >> Windows (窗口) >> Window Management (窗口管理)

您可以通过 Layout(布局) 功能区选项卡打开各种窗口。

窗口具有多种可用类型。每种类型对应不同的窗口响应行为。

窗口有以下几种类型:

停靠窗口 (Docked Windows)

此类型的窗口可以停靠在主窗口的任意位置,并且始终位于前端。

系统会出现位置标记,您可以使用它们来指定停靠位置 图示图标。因此,选择窗口,按住鼠标左键并将窗口移动到所需位置。松开鼠标左键后,窗口将自动停靠。

自动隐藏窗口 (Auto-hide Windows)

当激活自动隐藏功能时,此类型的窗口会隐藏在主窗口的边缘,并作为选项卡显示(在以下示例中为 CAPL Function Explorer)。

自动隐藏功能通过窗口标题栏中出现的以下符号进行激活和停用:

  • 📌 Activate auto-hide function (激活自动隐藏功能)
  • 📍 Deactivate auto-hide function (停用自动隐藏功能)

版本信息 :Version 13.0 SP2

© Vector Informatik GmbH


提示:在进行复杂的整车网络仿真(如多路 CAN/LIN 并行仿真)或编写大型 CAPL 测试脚本时,强烈建议将 CAPL Function Explorer (函数浏览器)和 Symbol Explorer (符号浏览器)设置为停靠窗口 (Docked Windows) 并固定在一侧。如果屏幕空间有限,使用自动隐藏 (Auto-hide) 功能可以最大化代码编辑区的可视面积,避免频繁切换窗口带来的心流中断。

文档视图 (Document View)

CAPL Browser >> Windows (窗口) >> Document View (文档视图)

在这里,您可以查看已打开的 CAPL 程序在各个页面中的分布情况。单个 CAPL 程序的显示界面分为 Navigator(导航器) 和 Text Editor(文本编辑器) 。程序的全部源代码显示在文本编辑器中。使用导航器,您可以快速轻松地导航至源代码中的目标部分(例如:某个事件处理程序)。

CAPL Browser 会监控符号(即数据库符号、诊断参数、系统和环境变量),如果发生更改,这些信息会自动更新。当前 CANalyzer 配置的配置数据(如网络、通道、节点等)不会 自动更新。它们可以通过在运行的 CANalyzer 应用程序中执行 import CANoe/CANalyzer.environment 命令来读取。

为了使 CAPL 程序能够使用这些环境信息和数据,CAPL 程序应始终从 CANalyzer 中打开,可以通过双击 CAPL 程序节点,或者使用 Edit(编辑) 上下文菜单来实现。

此外,您可以通过 File(文件) 功能区选项卡或 Quick Access Toolbar(快速访问工具栏) 在 CAPL Browser 中打开新的或现有的程序。但是,请务必牢记,打开时 CAPL 程序中可能无法使用环境信息和数据。

如果您已经打开了一个带有环境信息和数据的 CAPL 程序,那么在新打开的 CAPL 程序中同样可以使用这些信息。

页面组 (Page Groups)

各个文档或文件显示在单独的页面中。这些页面可以垂直或水平分组排列。

(图示说明:Left: Single page; Right: Vertical group 左:单页面;右:垂直分组)

您可以使用 Layout(布局) 功能区选项卡、页面的上下文菜单,或通过使用鼠标左键移动页面来创建组,并将各个页面分配到这些组中。

上下文菜单 (Context Menu)

  • Close (关闭)
    关闭活动文件。如果您更改了显示的文件且尚未保存更改,系统会询问您是否要保存更改。
  • Close All But This (关闭除此以外的所有文件)
    关闭除当前活动文件之外的所有文件。如果您更改了文件且尚未保存更改,系统会针对每个单独的程序询问您是否要保存更改。
  • New Horizontal Group (新建水平组)
    创建一个新的水平组。单个页面和其他组将水平显示。
    如果之前已创建了垂直组,则此菜单命令不可用。
  • New Vertical Group (新建垂直组)
    创建一个新的垂直组。单个页面和其他组将垂直显示。
    如果之前已创建了水平组,则此菜单命令不可用。
  • Move to Previous/Next Group (移至上一个/下一个组)
    将单个页面移至上一个/下一个组。

导航器 (Navigator)

导航器以树形视图显示文件的结构。

可能会出现以下类别:

  • Includes (包含文件)
  • Variables (变量)
  • Event handlers (event procedures) (事件处理程序/事件过程)

已打开节点可用的所有事件处理程序都显示在导航器中。显示界面会根据 CANalyzer 中配置的环境进行自适应调整。如果 CANalyzer 配置中未使用 MOST 总线,则不会显示 MOST 事件处理程序。

您可以通过 Filter(过滤器) 功能区选项卡添加或移除这些过滤器。

如果在 CAPL Browser 运行期间更改了 CANalyzer 环境,可以通过功能区中的 🔄 图标更新 CAPL Browser 中的数据。

事件处理程序分为以下类别:

  • System (系统)
    包含系统事件的事件处理程序。
  • Value Objects (值对象)
    包含符号事件的事件处理程序。
  • Bus Types and Options (总线类型和选项)
    包含总线或选项特定事件的事件处理程序。
  • User-defined functions (用户定义函数)
  • Test functions (测试函数)
  • Test cases (测试用例)
  • Test procedures (测试过程)

使用导航器,例如,您可以通过选择一个事件处理程序,直接导航至文本编辑器中的相应位置。

反之,如果您在文本编辑器中选中了一个事件处理程序,它将在导航器中被高亮显示。

可以通过点击 Splitter function(拆分器功能) 打开和关闭导航器。

组 (Groups)

为了清晰排列和构建用例结构,您可以通过上下文菜单为以下内容添加组和子组:

  • Event handlers (事件处理程序)
  • User-defined functions (用户定义函数)
  • Test functions (测试函数)
  • Test cases (测试用例)
  • Test procedures (测试过程)

如果您删除了一个组,该组的子条目将上移一级,条目不会被删除。您可以通过上下文菜单重命名这些组。

通过拖放 (drag and drop) 功能,您可以将现有的函数、测试用例、测试过程和事件处理程序移入或移出组。

更新导航器 (Updating the Navigator)

当对源代码进行更改时,导航器中的树形视图会在短暂延迟后自动更新。如果例如打开了带有错误(因而无法编译)的文件,则无法显示树形视图。在这种情况下,您必须先清除源代码中的错误,才能显示树形视图。

上下文菜单 (Context Menu)

使用上下文菜单,您可以通过 Includes、Variables、Event Handlers、User-defined functions、Test functions、Test cases 和 Test procedures 类别进行插入和编辑。根据您的选择,将在源代码中创建或展开新的部分。

上下文菜单中可能会出现以下条目:

Add (添加)

  • Variables Section (变量区)
    导航至源代码中定义全局变量的部分。如果尚不存在变量区,则会创建一个。
  • Include... (包含...)
    打开一个对话框,用于选择新的包含文件 (Include file)。该文件将连同其路径说明一起插入到源代码的包含部分中。
  • New Event Handler (新建事件处理程序)
    插入所选的事件处理程序。
  • New Function (新建函数)
    添加一个新的用户定义函数。
  • New Test Function (新建测试函数)
    插入一个新的用户定义测试函数。
  • New Test Case (新建测试用例)
    插入一个新的测试用例。
  • Create Group (创建组)
    创建一个新组。

Edit (编辑)

  • Go to Definition (转到定义)
    在新页面中打开选中的文件。
  • Delete (删除)
    删除选中的条目。
  • Comment Out Selected Lines (注释选中行)
    将选中的条目注释掉。
  • Uncomment Selected Lines (取消注释选中行)
    移除选中条目的注释。

Sort (排序)

  • Sort Alphabetically (按字母顺序排序)
    按字母顺序对树形视图条目进行排序。
  • Same Order As in File (与文件顺序相同)
    按源代码中的顺序对树形视图条目进行排序。

文本编辑器 (Text Editor)

打开文件的源代码显示在文本编辑器中,并且可以在其中进行编辑。您可以在其中声明变量并实现事件处理程序和函数。

独立的片段,例如 Includes、Variables 或单个事件过程,可以通过 ➖(减号)和 ➕(加号)打开和关闭。预览会根据折叠行的大小指示其内容。

在行号左侧,会显示书签 (Bookmarks) (▪) 和断点 (Breakpoints) (🔴)。

编辑文件时的辅助功能 (Support While Editing Files)

编辑器提供多种插入符号、事件处理程序和预定义函数的选项。

  • 从 CAPL Function Explorer 拖放 (drag and drop from the CAPL Function Explorer)
    可以将事件处理程序和预定义函数插入到文本编辑器中。如果您插入函数,源代码中将显示函数名称。输入参数时,自动补全输入辅助功能会提供支持。如果您插入事件处理程序,则会插入整个过程的正文。
  • 自动补全输入辅助 (Autocomplete input assistance)
    自动补全输入辅助功能通过列出函数、符号化报文和信号,使您能够更轻松地输入源代码。
  • 从 Symbol Explorer / MOST Symbol Explorer 拖放 (drag and drop from the Symbol Explorer / MOST Symbol Explorer)
    通过从符号浏览器/MOST 符号浏览器中拖放,可以将符号插入到文本编辑器中。
  • 符号选择 (Symbol Selection)
    在 Symbol Selection 对话框中,您可以选择信号、系统变量、环境变量和诊断参数,并将其插入到文本编辑器中。
  • 书签 (Bookmarks)
    您可以设置书签以更快地定位代码行。您设置的书签会显示在 Bookmark Window(书签窗口) 中,并可以在那里进行编辑。
  • 断点 (Breakpoints)
    CAPL Browser 的 Breakpoint Window(断点窗口) 显示在调试器 (Debugger) 中设置的断点。断点可以在那里被启用、禁用或删除。

自动错误检测 (Automatic Error Detection)

为了在编译前进行快速的错误检测,源代码错误会在文本编辑器中以红色波浪线标示,类似于例如 Word® 中用于拼写错误的标示。此外,错误的可能原因将作为工具提示 (tooltip) 显示。

上下文菜单 (Context Menu)

  • Cut (剪切)
    删除选中的文本并将其保存到剪贴板。
  • Copy (复制)
    将选中的文本复制到剪贴板。
  • Paste (粘贴)
    将剪贴板的内容插入到当前光标位置的文本中。
  • Insert Value Object/ Database Symbol/ Diagnostic Symbol (插入值对象/数据库符号/诊断符号)
    打开符号选择对话框,用于选择对象/符号。
  • Autocomplete (自动补全)
    打开自动补全输入辅助。
  • Outlining (大纲显示)
    • Expand All Outlining (展开所有大纲):打开源代码中的所有部分。
    • Collapse All Outlining (折叠所有大纲):关闭源代码中所有展开的部分。
  • Commenting (注释)
    • Comment Out Selected Lines (注释选中行):将选区或选中行注释掉。
    • Uncomment Selected Lines (取消注释选中行):移除选区或选中行的注释。
  • Message Input with MOST Function Catalog... (使用 MOST 功能目录输入报文...)
    打开 MOST 输入辅助,用于输入符号化 MOST 报文和参数。
  • Go to Definition (转到定义)
    在新页面中打开选中的文件,或者导航至文本编辑器中函数或变量的定义处。

提示:在编写需要严格时序控制(如基于定时器 setTimer)或复杂状态机(State Machine)的 CAPL 脚本时,强烈推荐使用大纲显示 (Outlining) 折叠无关的代码块,并配合书签 (Bookmarks) 快速跳转到核心逻辑。此外,断点 (Breakpoints) 与 Debugger 的配合是排查偶发性总线错误(如报文丢失、CRC 校验失败)的终极利器。

符号浏览器 (Symbol Explorer)

Windows (CANoe) >> Windows (CAPL Browser) >> Symbol Explorer

(CANoe) 功能区:Environment(环境)选项卡 > Symbol Explorer

(CAPL Browser) 功能区:Layout(布局)选项卡 > Symbols(符号)

您可以通过从符号浏览器 (Symbol Explorer) 拖放 (drag and drop) 的方式,将符号分配给窗口(CANalyzer)或文本编辑器(CAPL Browser)。

符号浏览器支持多种访问同一符号的选项。例如,您可以直接从信号或报文列表中选择符号,或者通过特定的节点查找对应的符号。

选择符号 (Selecting Symbols)

使用工具栏可以更改符号浏览器中树形视图的显示方式。根据您的选择,将显示可用的网络符号 图标、变量 图标、诊断类 图标 或诊断服务 图标。

使用 图标 您可以选择诊断类和服务是显示名称(长名称 longname)还是限定符(短名称 shortname)。在树形视图中选择所需的符号,并通过拖放将其分配给目标窗口。

在 CAPL Browser 中,符号在插入到文档视图 (Document View) 后会自动进行限定 (qualified) (注:即自动补全命名空间或前缀)。

使用 图标 可以折叠树形视图。

搜索选项 (Search Options)

您可以使用搜索 图标 输入字段搜索一个单词或单词的一部分。所有列中当前存在的文本都会被纳入搜索范围。

在输入期间,树形视图将根据匹配项进行过滤。过滤后的匹配项会以彩色高亮显示。如果没有找到匹配项,树形视图将不包含任何条目。您可以使用 图标 删除搜索条目。随后将完整显示树形视图。

最近最常用的搜索词可以通过选择列表重新选择。

支持通配符 * 和 ?。系统将搜索这些字符组合。

  • * 代表任意数量的字符。
    例如,dow*Do 可以找到 WindowLeftDown 和 WindowRightDown。
  • ? 代表恰好一个字符。
    例如,dow???Do 可以找到 WindowLeftDown 和 WindowRightDown。

部分取消搜索 (Partially Canceling the Search)

当您在符号浏览器中搜索元素时,树形视图中仅显示匹配项(图中 Phase )。

(图注:树形结构中展示了匹配的 Phase,及其子节点 Console、Console_2 等)

例如,如果您想知道哪个元素位于 Console_2 中,您可以使用上下文菜单命令 Suspend Search(暂停搜索) 来部分取消搜索。这意味着 Console_2 的所有子元素现在都将被显示出来。

如果您已部分取消搜索,搜索词将不再被高亮显示。取消搜索的元素将以符号标记。

(图注:树形结构中 Console_2 被展开,其子节点 Active、Light、Phase 等显示出来)

使用上下文菜单命令 Resume Search(恢复搜索) ,您可以恢复部分搜索。

您可以对多个子树取消并恢复部分搜索。

导航路径 (Navigation Path)

在搜索区域下方,显示通往当前选中元素的路径(图中为 Mirror_I2d )。对于(垂直方向)非常长的列表,如果上级元素不在可见区域内,此路径特别有用。

使用箭头 图标 (<Alt>+<左箭头>) 可导航至上一个选中的符号,使用箭头 图标 (<Alt>+<右箭头>) 可导航回随后选中的符号。最多支持 50 个选中符号的历史记录。

通过点击导航路径中的元素,您可以导航至树形视图中的该元素。

通过点击导航路径中的箭头,您可以导航至树形视图中选中元素的子元素。

在图中,Console_1 、Console_2 、NM_Console 和 TP_Console 是 Tx Frames 的子元素。

点击双向箭头可以显示路径中所有当前不可见的元素。

由于符号浏览器的宽度限制,导航路径可能无法完全显示。

可用列 (Available Columns)

在相应的选择对话框中,有可用于更详细描述每个对象的列。可以通过在列标题上右键单击来启用/禁用这些列。在随后的菜单中,您可以启用/禁用所需的列。您可以通过双击列标题对可选对象进行排序。

以下列表显示了针对每个对象的所有可用列:

对象 (Object) 列 (Column(s))
Signals (信号) Messages (报文) Nodes (节点) ► ID (Frame) (ID/帧) ► Frame Name (帧名称) ► Channel Mask (通道掩码) ► Comment (注释) ► Rx Node (接收节点) ► Start Bit (起始位) ► Tx Node (发送节点) ► Unit (单位)
System variables (系统变量) ► Data Type (数据类型) ► Nodes (节点) ► Comment (注释) ► Access (访问权限) ► Unit (单位)
Diagnostic parameters (诊断参数) ► Comment (注释) ► SAE Code (SAE 代码) ► Unit (单位)

聚合 (Aggregations)

为了简化使用,以下元素被合并形成聚合(Aggregations):

  • Arrays (数组)
  • Networks (网络)

以下编辑器可用于选择要包含在聚合中的元素。

列表编辑器 (List Editor)

列表编辑器可用于选择一个或多个元素。对于网络和特殊数组,可以在选择时间点时选择多个元素。

要选择单个元素,请用鼠标单击所需的元素。

要选择多个元素,请按以下步骤操作:

  • 鼠标左键 + <Ctrl>:选择单个元素(离散选择)。
  • 鼠标左键 + <Shift>:选择多个连续元素(范围选择)。

列表编辑器示例 (Examples for List Editors)

(图注:左侧展示了 Network 网络元素的树形选择,右侧展示了 Array 数组元素的连续多选)

组合数组选择 (Combined Array Selection)

除了使用鼠标按钮选择单个或多个数组外,您还可以将单个元素指定为以逗号分隔的文本,指定几个连续元素通过连字符连接(例如 5-7 ),或者使用这两种选项的组合。

(图注:示例中在文本框中输入了 0, 2-4, 8-11 等格式来精准选择数组索引)

未指定数组选择 (Unspecified Array Selection)

对于某些 IP(如 SOME/IP),存在一些在选择元素时元素数量未知的数组。对于这些数组,您只能通过文本字段来确定索引,而不能通过多选。这些数组可能是多维的。在这种情况下,您可以指定各个维度,用逗号分隔。

(图注:示例中展示了参数 param11_complexStructure_Array 的多维索引输入界面)

对于数组,您可以点击 Collapse Items(折叠项)/Expand Items(展开项) 来折叠/展开聚合视图。

聚合也可以嵌套 。这允许根据个人需求选择一整套综合的元素集。

(图注:示例展示了嵌套数组 ArrayOfArrayStructVar 的多层级展开)

示例 (Example)

拖放选中的元素:

当使用拖放时,将移动以下元素(展开后的绝对路径):

  • StructVars/ArrayOfArrayStructVar[0]/arrayOfStructs[0]/floatMember
  • StructVars/ArrayOfArrayStructVar[0]/arrayOfStructs[0]/shortMember
  • StructVars/ArrayOfArrayStructVar[0]/arrayOfStructs[1]/floatMember
  • StructVars/ArrayOfArrayStructVar[0]/arrayOfStructs[1]/shortMember
  • StructVars/ArrayOfArrayStructVar[1]/arrayOfStructs[0]/floatMember
  • StructVars/ArrayOfArrayStructVar[1]/arrayOfStructs[0]/shortMember
  • StructVars/ArrayOfArrayStructVar[1]/arrayOfStructs[1]/floatMember
  • StructVars/ArrayOfArrayStructVar[1]/arrayOfStructs[1]/shortMember

面向 CANalyzer 的附加信息 (Additional Information for CANalyzer)

如果您曾经打开过符号浏览器,它将显示在配置的每个桌面上。配置完分析窗口后,您可以通过 图标 自动隐藏符号浏览器。随后,符号浏览器将作为主窗口边缘的一个页面显示。

(图注:展示了 Symbol Explorer 以侧边栏自动隐藏的形式,与 CAN 1 Statistics 窗口并排显示)

MOST 符号浏览器 (MOST Symbol Explorer)

MOST Windows (CANoe) >> Windows (CAPL Browser) >> MOST Symbol Explorer

(CANoe) Ribbon: Analysis & Stimulation Tab > Symbol Explorer

(CAPL Browser) Ribbon: Layout Tab > MOST Symbols

您可以使用拖放 (drag and drop) 将符号从 MOST 符号浏览器插入到 Data(数据) 或 Graphics(图形) 窗口中。

可以通过在 Simulation Setup(仿真设置)的 System 视图中插入 XML 文件,将用于 MOST 的 XML 功能目录 (XML function catalog) 添加到配置中。

⚠️ 注意 (Note)

窗口位置不会保存在配置中。

拖放时的附加限定符 (Additional Qualifiers with drag and drop)

符号属性的输入取决于您将符号拖拽至 Data 或 Graphics 窗口时所使用的鼠标按键:

  • 鼠标左键 (Left mouse button)
    如果您使用鼠标左键将符号拖拽到窗口,所有其他设置(如通道或显示名称)将分配为默认值。
  • 鼠标右键 (Right mouse button)
    如果您使用鼠标右键将符号拖拽到窗口,在配置窗口之前会打开另一个对话框,您可以在其中设置附加属性。除了限制报文中的通道 (channel) 和实例 ID (InstanceID) 之外,您还可以输入该符号在信号列表中显示的名称。
    对于结构化参数类型(如 Array 或 Stream),您可以输入一个索引,以指定例如在 Data 或 Graphics 窗口中显示数组中的第几个元素。

搜索选项 (Search Option)

您可以在 MOST 符号浏览器中搜索您选择的文本(搜索范围涵盖所有可用文本)。按 <Enter> 或点击 🔍 开始搜索。

该搜索功能不支持 通配符 *。


树形视图 (Tree View)

MOST 符号浏览器不仅可以通过 Analysis & Stimulation(分析与激励) 功能区选项卡打开,还可以从不同的窗口和功能块内部打开。显示的树形视图取决于打开 MOST 符号浏览器的方式。

MOST 信号选择 (MOST Signal Selection)

使用 MOST 符号浏览器选择:

  • 一个 MOST 总线统计信号(ControlMessageRate [fr/s], ControlMessages [total] 等),
  • 一个 MOST 系统信号(Light, Lock, SBC, MPR 等),或
  • 来自 XML 功能目录的信号参数

并将其插入到 Data 或 Graphics 窗口中。

  • 树形视图显示了当前配置中所有可选择的参数。

    MOST 总线统计信号和 MOST 系统信号独立于功能目录可用,并且始终直接列在最顶层节点 Bus Statistic Signals 和 System Signals 下。

    接下来是分配给当前配置的 XML 功能目录。树的各个层级包含:

    1. Function Catalogs (功能目录)
    2. FBlocks (功能块)
    3. Functions (功能)
    4. OpTypes (操作类型)
    5. Parameters (参数) 以及更深层级可能包含的 Sub-Parameters (子参数)。

    对于 Graphics Window(图形窗口) ,您只能选择具有标量数据类型 (scalar data type) 或标量枚举类型 (scalar enumeration type) 的参数。

    此外,在 Data Window(数据窗口) 的上下文中,也可以选择字符串参数和位域 (bit fields)。

  • 为了快速限制对系统状态相关参数的选择(这些参数通常在整个测量过程中有效),可以通过选择列表切换树形视图的显示模式:

    • Show all Parameters (显示所有参数) 显示所有参数。
    • Show status parameters / Property values only (仅显示状态参数/属性值) 将树形视图精简为状态报文及其下方的所有参数。

以下设置仅在您通过窗口(而非 Analysis & Stimulation 选项卡)打开 MOST 符号浏览器时可用:

参数名称和从功能目录中选择的参数值范围显示在 Current Selection(当前选择) 区域。可以编辑参数名称;默认情况下,它与参数地址相同。在为参数分配用户定义名称后,您只需删除编辑字段中的名称即可切换回默认值。离开编辑字段后,参数地址将再次出现。

如果参数地址包含数组索引,可以通过按 Index 按钮或在编辑字段中直接编辑来修改该索引。请注意,在分配用户定义的名称后,数组索引不再可见,但仍在使用中。

  • 在 Additional Message Qualifiers(附加报文限定符) 区域,您可以为信号分配一个实例编号 (instance number) 和一个通道编号 (channel number),因为这些编号在功能目录中未定义。
    对于预定义的 MOST 系统信号,只能设置通道编号。
    添加信号时,始终建议使用上一次使用的实例/通道编号。
    输入字段中的 "*" 代表通配符值 0xFF。

如果此对话框用于更改已配置的信号,则树形视图被禁用,且信号的参数名称固定。这意味着信号本身无法被更改;只有信号名称和报文属性的编辑字段处于活动状态并显示当前值。


MOST 报文选择 (MOST Message Selection)

加载的 XML 功能目录的所有报文都显示在树形视图中:

  • 级别 0: XML 功能目录
  • 级别 1: FBlock (功能块)
  • 级别 1b: Instance (实例)(仅当功能块的实例依赖解释 (instance-dependent interpretation) 处于活动状态时,此级别才会出现)。
  • 级别 2: Function (功能)
  • 级别 3: OpTypes (操作类型)

您可以选择单个报文(级别 3),或某个功能的所有 OpTypes(级别 2),或整个功能块的所有功能的所有 OpTypes(级别 1)。

在后两种情况下,相应数量的行:

  • 将被插入到 MOST Interactive Generator(MOST 交互式生成器) 的发送列表中(每个生成的报文对应一行),或者
  • 将被添加到 MOST Filter(MOST 过滤器) 的报文列表中(每个生成的报文对应一行)。
  • Sort Functions Alphabetically (按字母顺序排序函数)
    按字母顺序对 Block、Function 和 OpType 进行排序。
  • Sort Functions by ID (按 ID 排序函数)
    按 ID 对 Block、Function 和 OpType 进行排序。
  • Show IDs (显示 ID)
    FBlock、Function 和 OpType 的 ID 通常很有用,并提供有关功能目录中相应符号分类的附加信息。为了便于通过键盘输入符号名称进行导航,可以禁用 ID 的显示。
  • Show FBlock Instances (显示 FBlock 实例)
    显示功能块实例。
  • Show Tooltips (显示工具提示)
    MOST 符号浏览器提供工具提示,用于更详细地描述可供选择的符号。这些提示提供有关方法和属性 (method or property) 及数据类型等属性的信息,并显示功能目录中存在的符号注释。由于后者(注释)在许多功能目录中相当广泛或维护不善,如果需要,也可以禁用工具提示。

提示:在处理基于 MOST 总线的娱乐系统(如早期的 Audi、BMW 等车型)时,由于 XML 功能目录通常非常庞大(包含数十个 FBlock 和数百个 OpType),强烈建议在通过 Data/Graphics 窗口打开 MOST 符号浏览器时,利用好 Current Selection 区域的 Index 编辑功能。这能让你精准抓取复杂 Stream 或 Array 结构中的特定节点,避免手动编写冗长的绝对路径。

CAPL 函数浏览器 (CAPL Function Explorer)

CAPL Browser >> Windows (窗口) >> CAPL Function Explorer (CAPL 函数浏览器)

功能区:Layout(布局)选项卡 > CAPL Functions(CAPL 函数)

已打开节点的所有可用 CAPL 函数都显示在 CAPL 函数浏览器中。显示内容会根据 CANalyzer 中配置的环境进行自适应调整。如果 CANalyzer 配置中未使用 MOST 总线,则不会显示 MOST 函数。

您可以通过 Filter(过滤器) 功能区选项卡添加或移除这些过滤器。

如果在 CAPL Browser 运行期间更改了 CANalyzer 环境,可以通过工具栏中的 🔄 图标更新 CAPL Browser 中的数据。

将函数划分为不同类别可以提供更好的概览,并能更轻松地访问这些函数。

  • Event Handlers (事件处理程序)
    • <Bus System/Options> (总线系统/选项)
      包含总线或选项特定事件的事件处理程序,例如 CAN , VT System。
    • System (系统)
      包含系统事件的事件处理程序。
    • Value Objects (值对象)
      包含符号事件的事件处理程序。
  • System Functions (系统函数)
    • All Functions (所有函数)
      包含所有函数,按字母顺序排序。
    • General (常规)
      包含最常用的 CAPL 函数。
    • Additional Categories (附加类别)
      包含按应用领域(如系统变量、回放、文件访问等)分类的 CAPL 函数。
    • Test Support (测试支持)
      包含特定于测试的 CAPL 函数。
    • Diagnostics (诊断)
      包含特定于诊断的 CAPL 函数。
    • <Bus Systems/Options> (总线系统/选项)
      包含总线及选项特定的 CAPL 函数,例如 CAN , VT System。
  • User Defined Groups (用户自定义组)
    包含所有可用的用户自定义函数(本地及来自包含文件的),按函数类型排序。同时也显示用户自定义的组。
  • (已打开的文件)
    包含所有可用的用户自定义函数(本地及来自包含文件的),按文件名排序。
    此外,还会按函数类型和用户自定义组额外显示这些函数。
  • (外部 CAPL DLL)
    已分配的 CAPL 和模型库函数,例如 CANOEILNLVECTOR.DLL。

事件处理程序和函数的描述 (Descriptions of Event Handlers and Functions)

在浏览器底部的 Detail View(详细信息视图) 中,会显示所选类别或其函数/事件处理程序的简要说明。

语法选项也显示在此处。不支持从详细信息视图进行拖放操作。

可以通过鼠标点击拆分器 (Splitter function) 打开和关闭详细信息视图。

在在线帮助 (技术参考 Technical Reference)中,您可以找到关于每个函数的语法、函数、参数、返回值以及函数和事件处理程序(事件过程)可用性的详细说明。

在函数上选择 或点击 🔍 图标,即可打开相应函数的帮助。

在文本编辑器中插入事件处理程序和函数 (Inserting Event Handlers and Functions in Text Editor)

可以通过拖放 (drag and drop) 的方式,将事件处理程序和预定义函数从函数浏览器插入到文本编辑器中。

如果您插入一个函数,函数名称将显示在源代码中。输入参数时,自动补全输入辅助功能会提供支持。

如果您插入一个事件处理程序,则会插入整个过程的正文。

搜索选项 (Search Option)

您可以在函数浏览器中搜索所需文本。按 Enter 键或点击 🔍 开始搜索。随后,只有找到的函数会显示在树形视图中(过滤功能)。您可以使用 ❌ 图标移除过滤器。

搜索功能不支持通配符 (*)。相反,您可以使用以空格分隔的多个搜索词。将显示名称中包含所有搜索词的所有函数。


提示:在编写 CAPL 脚本时,强烈建议利用 Diagnostics 和 <Bus Systems/Options> 这两个分类。很多时候,诊断相关的复杂 API(如 diagSendRequest 或 diagSetTarget)以及总线特定的高级功能都隐藏在其中。遇到不熟悉的函数,直接在树上选中并按 <F1> 查阅技术参考,是解决底层逻辑问题的最快途径。

输出窗口 (Output Window)

CAPL Browser >> Windows (窗口) >> Output Window (输出窗口)

功能区:Layout(布局)选项卡 > Output(输出)

编译过程的结果显示在输出窗口 中。

如果在编译 CAPL 程序时发生错误,或者编译器生成了警告,这些信息都会列在输出窗口中。

最后一行显示编译过程的最终摘要。

(图注:示例输出内容专业解读)

  • Compiling file 'Engine.can' (正在编译文件 'Engine.can')
  • ❌ 1001 at (21,4): parse error. (在 21 行 4 列处:语法解析错误)
  • ⚠️ 1053 at (154,21): Unknown symbol 'kRollingFriction'. (在 154 行 21 列处:未知符号 'kRollingFriction')
  • Compilation failed (09:31:34) -- 2 errors, 0 warnings (编译失败 (09:31:34) -- 2 个错误,0 个警告)

双击某条错误行,光标将定位到导致该错误的代码位置。

列 (Columns)

  • Description (描述)
    显示消息和结果。
  • File (文件)
    消息所属的文件名称。
  • Copy (复制)
    将选中的内容复制到剪贴板。
  • Copy All (全部复制)
    将整个窗口的内容复制到剪贴板。
  • Delete All (全部删除)
    删除整个窗口的内容。
  • Go to Location (转到位置)
    光标定位到错误对应的程序位置。
  • Go to Previous Location (转到上一个位置)
    光标定位到代码中的上一个错误位置。
  • Go to Next Location (转到下一个位置)
    光标定位到代码中的下一个错误位置。

建议:在调试复杂的 CAPL 逻辑(尤其是涉及大量宏定义、结构体嵌套或跨文件包含时),请重点关注输出窗口中的行号与列号 。遇到 Unknown symbol 报错时,通常是头文件 (include) 未正确引入或大小写拼写错误;遇到 parse error 时,往上查看前一行代码,往往是因为缺少分号 ;、括号不匹配或类型声明错误导致的。巧用 F4 / Shift+F4(或右键菜单中的"转到上/下一个位置")能让你在几十个报错中高效穿梭。

查找结果窗口 (Find Results Window)

CAPL Browser >> Windows (窗口) >> Find Results Window (查找结果窗口)

功能区:Layout(布局)选项卡 > Find Results (查找结果)

显示搜索 (Search) 功能的结果。

(图注:示例输出内容专业解读)

  • Assigned commands: SetStimulus (aSignalVelocity, value=15km/h) 位于 LockingSystemTester.vtd
  • Function Definition: SetStimulus 位于 FunctionLibrary.vtt
  • (26): LockingTestLibrary.ResetLockingTestSignals(); 位于 LockingSystemTester.cs
    (这表明搜索结果跨文件、跨语言,涵盖了测试用例定义、函数库以及 C# 测试代码中的调用)

最后一行显示搜索过程的最终摘要。

双击查找结果窗口中的某一行,光标将定位到已打开文件的相应行。

列 (Columns)

  • Description (描述)
    在上下文中显示结果(即显示包含关键字的完整代码行片段)。
  • File (文件)
    包含搜索词的文件名称。
  • Path (路径)
    文件的完整路径。
  • Copy (复制)
    将选中的内容复制到剪贴板。
  • Copy All (全部复制)
    将整个窗口的内容复制到剪贴板。
  • Delete All (全部删除)
    删除整个窗口的内容。
  • Go to Location (转到位置)
    光标定位到已打开文件中相应的程序位置。
  • Go to Previous Find Result (转到上一个查找结果)
    光标定位到上一个查找结果。
  • Go to Next Find Result (转到下一个查找结果)
    光标定位到下一个查找结果。

建议:在排查复杂的自动化测试工程报错时(例如某条特定总线报文未按预期发出),建议先通过 Ctrl+Shift+F(在文件中查找)全局搜索该信号或报文句柄的名称。查找结果窗口 会清晰地列出该变量在功能库中的定义位置 (Definition)、测试用例中的激励赋值位置 (Assigned commands),以及底层 C# 测试框架或 XML 配置中的引用位置。配合右键菜单的"转到上/下一个查找结果",可以顺藤摸瓜,快速理清整个测试工程的架构。

书签窗口 (Bookmark Window)

CAPL Browser >> Windows (窗口) >> Bookmark Window (书签窗口)

功能区:Layout(布局)选项卡 > Bookmarks (书签)

书签窗口显示所有已打开文件中设置的书签 (bookmarks) 。

您可以使用 Debug(调试) 功能区选项卡或文本编辑器的上下文菜单来设置书签。

(图注:示例表格展示了书签的启用状态、名称、所属文件路径及行号。例如 Bookmark_DOOR_le_1 位于 DOOR_le.can 的第 6 行)

您可以使用表格视图来编辑、启用、禁用、删除和导航到已设置的书签。

列名 描述
Enabled (启用) 您可以在此列中启用/禁用单个书签。
Name (名称) 您可以在此列中重命名书签。
File (文件) 显示设置书签的文件路径。 双击此列可导航至对应书签,无论该标签当前是启用还是禁用状态。
Line (行) 显示您设置书签的行号。
  • Delete (删除)
    删除选中的书签。操作时,请选择目标书签的表格行。Enabled 列的状态不影响此操作。
  • Navigate to Location (导航到位置)
    光标将定位到已打开文件中相关行的开头,无论该书签是启用还是禁用。
  • Enable Bookmark (启用书签)
    启用书签。
  • Disable Bookmark (禁用书签)
    禁用书签。
  • Toggle Bookmark (切换书签)
    添加新书签或删除现有书签。
  • Enable Bookmark (启用书签)
    启用书签。
  • Disable Bookmark (禁用书签)
    禁用书签。
  • Clear Bookmarks (清除书签)
    删除所有书签。

建议:在编写包含多个测试阶段(例如:初始化 -> 唤醒 -> 故障注入 -> 恢复 -> 休眠)的 CAPL 复杂状态机时,推荐在每一个关键 testStep 或状态转移的入口处打上书签。并通过 Name 列重命名为有业务含义的标识(如 Step_WakeUp 或 Inject_CAN_Loss)。当测试报告报错时,您可以通过书签窗口瞬间跳转到出问题的逻辑节点,无需在数万行代码中通过 Ctrl+F 盲目搜索。

断点窗口 (Breakpoint Window)

CAPL Browser >> Windows (窗口) >> Breakpoint Window (断点窗口)

断点窗口显示在调试器 (Debugger) 中设置的断点。可以通过 Debugging(调试) 功能区选项卡或文本编辑器的上下文菜单在此处启用、禁用或删除这些断点。

⚠️ 注意 (Note)

为确保显示正确的断点,请务必通过调试器的工具栏或上下文菜单打开文件。

要在调试器中显示修改后的断点,您必须在 CAPL Browser 中保存修改过的文件。

(图注:示例表格展示了断点的启用状态、名称、所属文件路径及行号。例如在 DOOR_le.can 第 34、36 行设置了断点)

您可以使用表格视图来启用、禁用、删除和导航到已设置的断点。

列名 描述
Enabled (启用) 您可以在此列中启用/禁用单个断点。
Name (名称) 此列显示文件名和行号。
File (文件) 显示设置断点的文件路径。 双击此列可导航至对应断点,无论该断点当前是启用还是禁用状态。
Line (行) 显示您设置断点的行号。
  • Delete (删除)
    删除选中的断点。操作时,请选择目标断点的表格行。Enabled 列的状态不影响此操作。
  • Navigate to Location (导航到位置)
    光标将定位到已打开文件中相关行的开头,无论该断点是启用还是禁用。
  • Enable Breakpoint (启用断点)
    启用断点。
  • Disable Breakpoint (禁用断点)
    禁用断点。
  • Toggle Breakpoint (切换断点)
    添加新断点或删除现有断点。(注:此处原文档英文写为 adds a new bookmark or deletes an existing bookmark,属官方文档笔误,实际含义为断点)
  • Enable Breakpoint (启用断点)
    启用断点。
  • Disable Breakpoint (禁用断点)
    禁用断点。
  • Break Test/Simulation (中断测试/仿真)
    在测试模块或测试配置中,您可以为断点选择:是仅停止测试模块或测试配置,还是连同仿真 (simulation) 一起停止。
  • Clear Breakpoints (清除断点)
    删除所有断点。

提示:在分布式测试台架(HIL/SIL)上运行长时间的耐久性测试时,如果遇到特定 DTC(故障码)触发需要保留现场,Break Test/Simulation 选项非常关键。您可以将断点精准设置在 on diagResponse 或特定故障判定逻辑中,并配置仅停止"测试模块"(让底层网络仿真继续运行保持节点存活),从而在不破坏网络环境的前提下抓取错误现场。

自动补全输入辅助 (Autocomplete Input Assistance)

CAPL Browser >> Autocomplete Input Assistance

ℹ️ 注意 (Note)

从 CANalyzer 9.0 SP3 版本开始,CAPL Browser 中的自动补全输入辅助 功能支持诊断 ECU/目标 (targets) 和服务 (services):

在插入 diagRequest、diagResponse 和 diagRequestSent 后,系统会提供已配置的 ECU 限定符 (qualifiers) 列表。插入 ECU 限定符后,会提供为此目标定义的服务列表。对于事件处理程序,也会提供诊断类 (diagnostic classes) 供选择。

使用自动补全输入辅助,您可以在 CAPL Browser 中输入或补全 CAPL 函数、符号化报文信号和关键字(例如 int, message, ...)的名称。

可以通过在源代码中输入文本自动打开输入辅助,或通过组合键 <Ctrl>+<Space> 手动打开。

在输入辅助中,当前配置中可用的所有预定义函数、网络、报文和符号将按字母顺序显示。

通过输入单词或数字序列,输入辅助的标记会跳转到下一个匹配项。如果您在输入辅助中找到了所需的条目,可以使用 <Return> 键接受它。

如果找不到匹配的条目,标记会跳转到输入辅助的第一个条目。

使用 <Back> (通常指 Backspace 键),您可以删除编辑器窗口中光标前方的字符。

使用 <Esc> ,您可以关闭输入辅助且不完成当前输入。

(图注:展示在 on message Engine 事件中,输入 Engine 后弹出的自动补全列表,包含 EngineData、EngineDataEEE、EngineTemp 等变量)

描述 (Description) 按键组合 (Keyboard combination)
在选择列表中标记一个条目 <Up Arrow>, <Down Arrow>, <Page Up>, <Page Down>
删除光标前方的字符 <Backspace>
关闭选择列表 <Esc>
关闭对话框并确认输入该条目 <Enter>
打开输入辅助 <Ctrl>+<Space>

提示:在处理复杂的 UDS 诊断测试时(如 diagRequest Door.ECU.SecurityAccess_Request),强烈建议依赖自动补全。因为 CDD/ODX 解析出的诊断服务名往往非常长且包含特殊字符,手动敲击极易导致 Unknown symbol 编译错误。此外,如果在编写大段逻辑时发现 <Ctrl>+<Space> 弹不出提示,请检查上一行代码是否遗漏了分号 ;,导致语法解析器中断而无法提供上下文补全。

功能区 (Ribbon)

CAPL Browser >> Ribbon (功能区)

功能区 (Ribbon)

在 CAPL Browser 功能区中,提供以下选项卡:

File (文件) | Home (主页) | Filter (过滤器) | Debug (调试) | Layout (布局)

快速访问工具栏 (Quick Access Toolbar)

默认情况下,快速访问工具栏中提供以下功能:

  • Open (打开)
    点击该符号,将打开一个对话框以选择之前保存的文件。文件将在新选项卡中打开。如果在文件选择对话框中输入一个不存在的文件名称,您可以使用输入的名称创建一个新文档。如果 CAPL Browser 无法显示该程序,系统会询问您是否要在文本编辑器中查看并编辑该程序。
  • Save (保存)
    点击该符号,保存当前活动文件。如果您是首次保存文件,系统将弹出一个对话框提示您输入文件名。
  • Undo (撤销)
    点击该符号,撤销上一次操作。在选择了其他程序之前,此操作有效。
  • Redo (重做)
    点击该符号,重复上一次撤销的操作。在选择了其他程序之前,此操作有效。
  • Navigate backwards (向后导航)
    点击该符号,在文档视图的导航器 (Navigator) 中向后导航。
  • Navigate forwards (向前导航)
    点击该符号,在文档视图的导航器 (Navigator) 中向前导航。
  • Options (选项)
    点击该符号,打开选项配置界面。

ℹ️ 注意 (Note)

您可以使用功能区中符号和组标题的上下文菜单,将每个符号或组添加到工具栏中。

您可以使用快速访问工具栏的上下文菜单再次移除符号。

  • Show Quick Access Toolbar above/below the Ribbon (在功能区上方/下方显示快速访问工具栏)
    快速访问工具栏将显示在功能区的上方/下方。
  • Minimize the Ribbon (最小化功能区)
    单个选项卡的功能将被淡出(隐藏)。点击某个选项卡时,会显示相应的功能。

Menu ⇒ Ribbon: Where to find What? (菜单 ⇒ 功能区:在哪找到什么?------用于旧版菜单向新版 Ribbon 迁移的对照指南)


专家提示:对于习惯使用旧版 Vector 工具(如 CANoe/CANalyzer 8.5 及以前版本)的资深工程师,刚接触 Ribbon 界面时可能会找不到常用功能。强烈建议利用 Context Menu of the Ribbon 中的"Minimize the Ribbon"功能来最大化代码可视面积。同时,如果您经常使用"编译"或"插入系统变量"等操作,可以通过右键将其固定到快速访问工具栏,这样即使切换到不同选项卡,也能一键触发。

文件 (File)

CAPL Browser >> Ribbon (功能区) >> File (文件)

功能区:Tab Datei (德文,即 File 选项卡)

符号 描述 (Description)
💾 Save (保存) 点击该符号,保存当前活动文件。 如果您是首次保存文件,系统将弹出一个对话框提示您输入文件名。
💾 Save As... (另存为...) 点击该符号,将文件以新名称和/或保存到新目录中。 如果指定名称的文件已存在,系统会询问您是否要覆盖它。
💾 Save As Encrypted... (另存为加密文件...) 点击该符号,将文件加密后以新名称和/或保存到新目录中。
💾 Save All (全部保存) 点击该符号,保存所有已打开的文件。 如果您是首次保存文件,系统将弹出一个对话框提示您输入文件名。
📂 Open (打开) 点击该符号,打开一个对话框以选择之前保存的文件。文件将在新选项卡中打开。如果在文件选择对话框中输入一个不存在的文件名称,您可以使用输入的名称创建一个新文档。如果 CAPL Browser 无法显示该程序,系统会询问您是否要在文本编辑器中查看并编辑该程序。
🕒 Last Used Files (最近使用的文件) 列出最近使用过的程序。
📄 New (新建) 在此选择您是要创建新的 CAPL 文件还是 CAPL 包含文件 (include file)。 CAPL Browser 会打开一个新选项卡,您可以在其中创建 CAPL 文件。在保存或关闭新文件时,系统会提示您为该文件提供名称。
📁 Close (关闭) 点击该符号,关闭当前活动文件。 如果您修改了活动的 CAPL 程序且尚未保存,系统会询问您是否要保存更改。
📁 Close All (全部关闭) 点击该符号,关闭所有文件。
🖨️ Print (打印) 点击该符号,打开 Print (打印)对话框。 选择您的打印机设置并打印当前活动文件。
📤 Export (导出) 在此选择您是否要将 CAPL 文件导出为 HTML 或 RTF 文件。 导出的文件不包含 CAPL Browser 的结构信息。它只能通过导入到 CAPL Browser 窗口中显示。该命令会要求您通过 File Save(文件保存)对话框输入新的文件名。
🔒 Encrypt CAPL Files (加密 CAPL 文件) 在此选择您想要加密的文件。
❓ Help (帮助) 点击该符号,打开 CAPL Browser 的帮助文档。
ℹ️ Info (信息) 点击该符号,打开一个包含 CAPL Browser 相关信息的对话框。
⚙️ Options (选项) 在 Options (选项)对话框中,您可以配置全局设置。 点击该符号,打开 Options(选项)对话框。
❌ Exit (退出) 点击该符号,关闭 CAPL Browser。 如果已打开文件的更改尚未保存,系统会询问您是否要将更改保存到文件中。

建议:在将代码交付给主机厂 (OEM) 或第三方供应商时,如果涉及核心算法或特殊测试逻辑,务必使用 Save As Encrypted... 或 Encrypt CAPL Files 功能生成加密的 .can 文件。这能有效防止核心 IP 泄露。另外,在进行项目归档时,Export 为 HTML 格式是一个很好的做法,可以生成带有语法高亮的只读代码报告,方便非开发人员(如测试经理、质量审核人员)查阅。

主页 (Home)

CAPL Browser >> Ribbon (功能区) >> Home (主页)

功能区:Tab Home (选项卡:主页)

符号 描述 (Description)
Group Clipboard (剪贴板组)
📋 Paste (粘贴) 点击该符号,将剪贴板的内容插入到文本中当前光标位置。
✂️ Cut (剪切) 点击该符号,剪切选中的文本并将其粘贴到剪贴板中。点击 Paste 可将文本再次添加到文件中。
📄 Copy (复制) 点击该符号,将选中的文本复制到剪贴板中。此操作不会更改文件。点击 Paste 可将文本再次添加到文件中。
❌ Delete (删除) 点击该符号,删除选中的文本。该文本不会被复制到剪贴板中。
Group Compile (编译组)
🔨 Compile (编译) 点击该符号,从当前活动的 CAPL 程序生成一个可执行的 CBF 文件 (CAPL Binary Format,文件扩展名为 .CBF)。CBF 文件的名称由 CAPL 程序文件名和 CBF 扩展名组成。CBF 文件始终保存在与 CAPL 程序文件相同的目录中。如果 CAPL 程序尚未从文件中读取且尚未保存到文件中,CAPL Browser 会弹出 File Save 对话框提示输入 CBF 文件的名称。
🏢 Compile All (编译全部) 点击该符号,从所有已加载的 CAPL 程序生成可执行的 CBF 文件。CBF 文件的名称由 CAPL 程序文件名和 CBF 扩展名组成。CBF 文件始终保存在与 CAPL 程序文件相同的目录中。如果 CAPL 程序尚未从文件中读取且尚未保存到文件中,CAPL Browser 会弹出 File Save 对话框提示输入 CBF 文件的名称。
Group CANoe/CANalyzer (CANoe/CANalyzer 组)
⚙️ Import CANoe/CANalyzer Environment (导入 CANoe/CANalyzer 环境) CAPL Browser 会监控符号,即如果发生更改,数据库符号、诊断参数、系统和环境变量会自动更新。 当前 CANalyzer 配置的配置数据(如网络、通道、节点等)不会自动更新。点击该符号,可以从 CANalyzer 环境中更新数据。
Group Navigation (导航组)
⏩ Navigate Forward (向前导航) 点击该符号,在文档视图的导航器中向前导航。
⏪ Navigate Backwards (向后导航) 点击该符号,在文档视图的导航器中向后导航。
🔢 Go to Line (转到行) 点击该符号,打开 Go to Line(转到行)对话框。在此输入您要导航到的当前活动文件的行号。
Group Outlining (大纲组)
➕ Expand All (全部展开) 点击该符号,展开当前活动文件的所有部分。
➖ Collapse All (全部折叠) 点击该符号,折叠当前活动文件的所有部分。
Group Edit (编辑组)
🔍 Search (查找) • 点击该符号,打开 Find and Replace (查找和替换)对话框。 • 点击该符号(带向下的箭头),打开 Find and Replace 对话框(通常为高级/文件内查找)。
🔄 Replace (替换) • 点击该符号,打开 Find and Replace 对话框。 • 点击该符号(带向下的箭头),打开 Find and Replace 对话框(通常为快速替换)。
🖍️ Mark All (全选) 点击该符号,选中当前活动文件的全部文本。
🗨️ Comment Out (注释) 点击该符号,将选中的行注释掉。 因此,您可以在文本编辑器中选择单行,或从导航器中选择单个代码段。
🗨️ Uncomment (取消注释) 点击该符号,移除注释。
📝 Show Generated Code (显示生成代码) 点击该符号,在文本编辑器中打开/关闭生成的代码(如预编译展开后的底层代码)。
🧹 Remove Old Browser Information (移除旧的浏览器信息) 点击该符号,移除旧的 CAPL Browser 信息(常用于清理文件中历史遗留的隐藏元数据,解决某些显示异常或兼容性问题)。

提示:在进行多节点联合仿真时,如果修改了 DBC 或 CDD 数据库,CAPL 脚本中的信号名或诊断服务可能会报 Unknown symbol 错误。此时,请务必点击 Import CANoe/CANalyzer Environment 按钮。此外,很多工程师在遇到 CAPL Browser 卡顿或无法解析变量类型时,使用 Remove Old Browser Information 并重新编译,往往能奇效般地解决文件损坏问题。

过滤器 (Filter)

CAPL Browser >> Ribbon (功能区) >> Filter (过滤器)

功能区:Tab Filter (选项卡:过滤器)

符号 描述 (Description)
Group Filter (过滤器组)
⏳ (漏斗形图标) Configuration (配置) • 点击【Reset to Defualt】,将过滤器设置重置为 CANalyzer 环境的设置。 • 点击【Active All Filter】,激活所有可能的过滤器。无论 CANalyzer 环境如何,都会显示所有可用的函数、事件处理程序和符号。 • 点击【Deactive All Filter】,停用所有过滤器。
Activate/deactivate filter (激活/停用过滤器) CAPL Browser 中的过滤器依赖于 CANoe/CANalyzer 环境,用于控制预定义函数、事件处理程序和符号的可见性,并影响 Function Explorer(函数浏览器) 、autocomplete input assistance(自动补全输入辅助) 以及 Symbol Explorer/MOST Symbol Explorer(符号浏览器) 中的显示。 如果在 CANalyzer 配置中未使用 MOST 总线,则不会显示 MOST 函数。 协议和总线系统过滤器(CAN、FlexRay 等)控制预定义函数和事件处理程序的可见性。它们会影响函数浏览器和自动补全输入辅助功能。

建议:当您新建一个空白工程,或者发现 Ctrl+Space 无法弹出 output()、write() 等系统自带基础函数时,通常是因为过滤器配置出现了偏差。此时点击 Configuration 的第一个图标(重置为 CANalyzer 环境设置)通常能解决 90% 的问题。另外,如果您想查阅所有 Vector 支持的高级 API(包括当前工程未配置的总线类型),可以点击第二个图标激活所有过滤器进行全局搜索。

调试 (Debug)

CAPL Browser >> Ribbon (功能区) >> Debug (调试)

功能区:Tab Debug (选项卡:调试)

符号 描述 (Description)
Group Breakpoints (断点组)
🔴 Toggle Breakpoint (切换断点) 点击该符号,添加新断点或删除现有断点。
⏮️ Go to Previous (转到上一个) 点击该符号,导航至上一个断点。
⏭️ Go to Next (转到下一个) 点击该符号,导航至下一个断点。
➕ Enable All (全部启用) 点击该符号,启用所有断点。
➖ Disable All (全部停用) 点击该符号,停用所有断点。
🗑️ Delete All (全部删除) 点击该符号,删除所有断点。
Group CAPL Runtime Error (CAPL 运行时错误组)
🔍 Find Runtime Error (查找运行时错误) 点击该符号,打开 Find Runtime Error (查找运行时错误)对话框。 定位运行 CAPL 文件时发生的运行时错误。运行时错误通过错误发生时显示的数字进行清晰标识。CAPL Browser 会在输入对话框中要求输入该数字,并在输出窗口 (Output Window) 中显示相应的消息。双击输出窗口中的该消息,将显示导致运行时错误的 CAPL 文件位置。
📋 Show All Possible Runtime Errors (显示所有可能的运行时错误) 定位运行 CAPL 文件时发生的所有可能的运行时错误。所有可能的运行时错误都会显示在 CAPL Browser 的输出窗口 (Output Window) 中。双击其中一条消息,将显示导致运行时错误的 CAPL 文件位置。
Group Bookmarks (书签组)
您可以在文本编辑器中所有已打开的文件里设置书签,以便更快地定位代码行。 您设置的书签会显示在书签窗口 (Bookmark Window) 中,并可在那里进行编辑。 书签会自动保存在 CAPL Browser 的内部设置中,而不是保存在对应的 CAPL 文件里。
🔖 Toggle Bookmark (切换书签) 点击该符号,添加新书签或删除现有书签。
⏮️ Go to Previous (转到上一个) 点击该符号,导航至上一个书签。 > ℹ️ 注意 (Note) > 书签的导航顺序取决于它们被输入(创建)的顺序,而不是行号顺序。
⏭️ Go to Next (转到下一个) 点击该符号,导航至下一个书签。 > ℹ️ 注意 (Note) > 书签的导航顺序取决于它们被输入(创建)的顺序,而不是行号顺序。
➕ Enable All (全部启用) 点击该符号,启用所有书签。
➖ Disable All (全部停用) 点击该符号,停用所有书签。
🗑️ Delete All (全部删除) 点击该符号,删除文档视图中所有已打开文件的所有书签。

提示:在 HIL 台架进行长时间的自动化耐久测试时,如果台架突然停止仿真或 CANalyzer 报错,通常是因为 CAPL 脚本发生了除以零、数组越界或内存溢出等运行时错误 (Runtime Error) 。此时,请使用 Show All Possible Runtime Errors 。它能直接列出错误代码(如 Error 103 代表除以零),双击定位后,结合 write() 函数打印的上下文日志,能迅速锁定是哪一条报文的解析逻辑或诊断服务超时导致了 Crash。

布局 (Layout)

CAPL Browser >> Ribbon (功能区) >> Layout (布局)

符号 描述 (Description)
Group Files (文件组)
⬛ Split Horizontally (水平拆分) 点击该符号,在第一个视图下方打开文本编辑器的第二个视图。
⬛ Split Vertically (垂直拆分) 点击该符号,在第一个视图旁边打开文本编辑器的第二个视图。
⬛ Hide Splitter (隐藏拆分器) 点击该符号,关闭文本编辑器的第二个视图。
🗂️ Group (分组) 您可以在此处: • 创建一个新的水平组。 单个页面和其他组将水平显示。 如果之前已创建了垂直组,则此菜单命令不可用。 • 创建一个新的垂直组。 单个页面和其他组将垂直显示。 如果之前已创建了水平组,则此菜单命令不可用。 • 将单个页面移至上一个/下一个组。
🪟 Activate (激活) 您可以在此处: • 关闭所有文件 • 激活选中的文件 • 打开 Windows(窗口) 对话框。在此对话框中显示所有已打开的 CAPL 文件。您可以: • 保存并关闭单个 CAPL 文件 • 保存并关闭所有选中的 CAPL 文件 • 激活单个 CAPL 文件。执行此操作后,选中的 CAPL 文件将被置于前台以供编辑。
Group Windows (窗口组)
🪟 Views (视图) 您可以在此处打开/关闭所有可用的窗口并重置它们的位置。 • 点击该符号打开 Symbol Explorer(符号浏览器) • 点击该符号打开 MOST Symbol Explorer(MOST 符号浏览器) • 点击该符号打开 CAPL Function Explorer(CAPL 函数浏览器) • 点击该符号打开 Output Window(输出窗口) • 点击该符号打开 Find Results Window(查找结果窗口) • 点击该符号打开 Bookmark Window(书签窗口) • 点击该符号打开 Breakpoint Window(断点窗口) • 点击该符号将窗口布局重置为默认设置。

建议:在进行复杂 UDS 诊断脚本编写时,强烈推荐使用 Split Horizontally (水平拆分) 或 Split Vertically (垂直拆分) 。您可以在上方窗口打开主测试逻辑文件(如 Tester.can),在下方窗口打开诊断服务库(如 Diag_Lib.cin)。这样可以在对照底层诊断参数(如 DID、Session 控制)的同时,实时修改上层测试用例,免去了频繁切换 Tab 页的烦恼。此外,如果您不小心把某些浏览器窗口拖拽乱了,直接点击右下角的重置图标即可恢复清爽的默认工作区。

提示

源代码注意事项 (Source Code Notes)

CAPL 简介 >> 源代码注意事项

以下是关于 CAPL 编程的几点提示:

  • 源代码大小(以 MB 为单位)不受限制。 (注:虽然官方称不受限,但过大的单文件会严重拖慢编译速度,建议按功能模块拆分 .cin 文件)
  • 每个源代码嵌套层(即 { 和 } 之间的部分)大约可以包含 9990 条指令。 (注:这里指的不是代码行数,而是底层编译后的机器指令数。在编写大型状态机或超长循环时需特别注意,超限会导致编译报错)
  • 单行代码长度不受限制。 (注:虽然语法允许,但出于代码可读性和团队协作规范,建议单行不超过 120 个字符)

专家提示:在实际车载测试工程中,虽然文档说明单文件大小不受限,但当您面对包含几十万行代码的整车级自动化测试工程时,强烈建议采用模块化设计 。将信号解析、诊断逻辑、测试用例分别存放在不同的 .cin(包含文件)中,主 .can 文件仅负责 #include 和 on start 初始化。此外,针对"9990 条指令"的限制,如果遇到复杂的报文解析算法,尽量拆分为多个 user-defined function(用户自定义函数)调用,避免单个函数或事件块内部嵌套过深。

相关推荐
万联WANFLOW1 小时前
让分散的设备像在同一张局域网里:企业组网技术解析
运维·网络·网络安全·智能路由器
得助智能-垂类大模型1 小时前
多Agent平台哪家做得好?2026年企业级多智能体平台选型指南
大数据·数据库
风翼靓崽1 小时前
ubuntu22.04 rsyslog分离ssh单独日志文件
运维·ssh
为思念酝酿的痛2 小时前
MySQL数据库基础
数据库·mysql
刚入门的大一新生2 小时前
Linux-进程间通信2
linux·运维·服务器
电科_银尘2 小时前
【深度学习项目实战·02】Linux服务器环境搭建:从SSH登录到稳定运行项目
linux·服务器·深度学习
瀚高PG实验室2 小时前
数据库使用psql及jdbc进行远程连接,不定时自动断开的解决办法
数据库·postgresql·瀚高数据库
Yana.nice2 小时前
清除密码历史记录,解决pam安全策略密码无法复用问题
运维
海宇服务2 小时前
零信任架构实战:基于海宇风控经营异常预警构建自动化央企物资采购供应商资信排查网关
运维·人工智能·架构·自动化