【发布时间】:2021-05-07 09:34:41
【问题描述】:
我正在编写一段代码来模拟一些诊断。
我使用 CANalyzer 创建了一个面板,其中包含需要使用选项列表(称为组合框)显示的大量信息
我想要做的是创建一个需要使用 SPN 组合框(选择列表)选择的结构的巨大数组,并且结构/对象的其他参数需要填充面板的其他元素。
如果不为每个元素执行大量 SysSetVariableInt 或 SysSetVariableString,这是否可行?
在我使用另一种技术做这些事情之前,我使用存储在一个巨大矩阵中的所有信息来解析文件,然后我对与 SPN 选项列表关联的变量使用“on sysvar update”方法来获取它的索引,所以我在矩阵中搜索该索引,然后我使用SysSetVariableInt 或其他,将值设置为面板中的元素。
为了填充选择列表,我找到了一个非常好的方法“sysSetVariableDescriptionForValue”,它有助于添加元素,但是这个方法的问题是,如果你想更改元素,你可以只覆盖,而不是全部更改。 ..so,如果在下一次迭代中你在选择列表中推送更少的元素,你也会看到旧的。
使用“sysSetVariableDescriptionForValue”,您基本上是通过代码编写该 sysvariable 的值表,并且不可能(根据 Vector)在运行时被刷新...:/
我很想用另一种方法来做这件事,也许结构是可能的......我真的不知道。
任何帮助将不胜感激!
问候!
【问题讨论】:
-
看起来您正在寻找查找表。您知道所有可能的值,只需将它们编码到查找中并在需要时加载所需的对。无论如何,阅读您的帖子是痛苦的。请问可以擦亮吗?减少文本,以便只说重要信息。避免过多的形容词。 不要将代码发布为图片,而是发布一些代码。您过去已经这样做了,如果您愿意分享,也许我们可以重复使用它。在内联文本中使用代码格式。
-
ciao 守护进程,问题是我有大约 700 个元素要添加到值表中。我已经写信给 Vector 支持,但他们没有任何其他解决方案。我使用了方法“sysSetVariableDescriptionForValue("DiagnosticPanel","Diag_SPN", t, string);"以动态方式将所有内容添加到值表中...具有所有已知限制(不能删除,只是覆盖)
标签: vector struct diagnostics capl canalyzer