将信号值放入CAPL中的变量

时间:2018-09-07 15:57:05

标签: signals capl canalyzer

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

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

float Cell_Voltage = Mc00_UCell00.DefaultValue;(此方法有效,但我不希望使用默认值)

有没有滤波器来提取信号Mc00_UCell0的当前值?

2 个答案:

答案 0 :(得分:0)

您说以下作品:

float Cell_Voltage = Mc00_UCell00.DefaultValue; 

以下内容无效:

float Cell_Voltage = Mc00_UCell00; 

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

确定所需的结构成员,并用点号表示。

答案 1 :(得分:0)

在CAPL中,您应该编写浮点信号值的整数

float Cell_Voltage = $Mc00_UCell00;

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