-1

我正在编写一段代码来模拟一些诊断。

我使用 CANalyzer 创建了一个面板,其中包含需要使用选项列表(称为组合框)显示的大量信息

这是我创建的面板

这是我使用 CANalyzer 中的系统变量面板创建的结构

我想要做的是创建一个需要使用 SPN 组合框(选择列表)选择的结构的巨大数组,并且结构/对象的其他参数需要填充面板的其他元素。

如果不为每个元素做大量的 SysSetVariableInt 或 SysSetVariableString,这可能吗?

在我使用另一种技术做这些事情之前,我用存储在一个巨大矩阵中的所有信息解析文件,然后我对与 SPN 选项列表关联的变量使用“on sysvar update”方法来获取索引那个,所以我在矩阵中搜索那个索引,然后我使用SysSetVariableInt或其他,将值设置为面板中的元素。

为了填充选择列表,我发现了一个非常好的方法“sysSetVariableDescriptionForValue”,它有助于添加元素,但是这个方法的问题是,如果你想改变元素,你可以覆盖,而不是全部改变......所以,如果在下一次迭代中你在选择列表中推送更少的元素,你也会看到旧的。

使用“sysSetVariableDescriptionForValue”,您基本上是通过代码编写该sysvariable的值表,并且不可能(根据Vector)在运行时被刷新......:/

我很想用另一种方法来做这件事,也许结构是可能的......我真的不知道。

任何帮助将不胜感激!

问候!

4

1 回答 1

1

TLDR;.sysvar构建一个从结构化输入(例如逗号分隔)创建文件的工具,运行它,获取.sysvar文件并将其链接到 CANalyzer 配置。


我曾经不得不使用软件的某些组件创建整个测试界面。我们没有结构化的发布流程,每次都根据新的内部软件接口从头开始重建测试环境。我也不得不添加数百个变量。

.sysvar我的解决方案是在 CANalyzer 之外以编程方式生成文件。文件的链接.sysvar在 CANalyzer 配置中是象征性的,这意味着如果正确名称的文件位于正确的位置,则将加载该文件。

我想要做的是创建一个需要使用 SPN 组合框(选择列表)选择的结构的巨大数组,并且结构/对象的其他参数需要填充面板的其他元素。如果不为每个元素做大量的 SysSetVariableInt 或 SysSetVariableString,这可能吗?

创建一个外部脚本来生成.sysvar文件。最后它只是一个xml文件,你可以研究你保存的demo的结构。然后,将该文件导入 CANalyzer 配置中。.sysvar如果文件更改,您可能需要关闭/重新打开配置。

优点:无需编写复杂的 CAPL 脚本并在每次变量更改时更新它。

缺点:您必须拥有所有信息的来源,甚至是一个简单的 Excel 表格,以及所有描述等,并且您必须创建一个接受输入文件的工具(假设是一个.csv文件)并将其转换为一个.xml文件.sysvar而是扩展名。

于 2021-02-12T11:01:02.657 回答