-2

我正在尝试将信号值(来自 DBC 文件)提取到变量中,但我收到消息“必须是常量表达式”。如果我尝试添加类似的过滤器.DefaultValue,它可以工作,但这不是我想要的值。我想要调用此CAPL函数时的信号值。这是一个例子:

float Cell_Voltage = Mc00_UCell00;(这是我得到错误的地方必须是常量表达式)

float Cell_Voltage = Mc00_UCell00.DefaultValue;(这可行,但我不想要默认值)

是否有过滤器来提取信号的当前值Mc00_UCell0

4

2 回答 2

1

在 CAPL 中获取浮点信号值的整数,你应该写

float Cell_Voltage = $Mc00_UCell00;

它被称为“直接访问信号值”

于 2018-11-01T05:55:22.113 回答
0

你说以下工作:

float Cell_Voltage = Mc00_UCell00.DefaultValue; 

以下不起作用:

float Cell_Voltage = Mc00_UCell00; 

请注意,在 C 和许多其他语言中,点表示从结构中访问成员。这意味着在工作示例中您访问一个成员并将其分配给Cell_Voltage并且在不工作示例中您希望将整个结构分配给一个简单的变量,这确实行不通。

决定你需要结构的哪个成员,并用点符号解决它。

于 2018-09-07T16:13:46.103 回答