我试图将信号值(从DBC文件中)提取到变量中,但收到消息“必须为常量表达式” 。如果我尝试添加类似.DefaultValue
的过滤器,那么它可以工作,但这不是我想要的值。我在调用此 CAPL 函数时需要信号的值。这是一个示例:
float Cell_Voltage = Mc00_UCell00;
(这是我得到的错误,必须是常量表达式)
float Cell_Voltage = Mc00_UCell00.DefaultValue;
(此方法有效,但我不希望使用默认值)
有没有滤波器来提取信号Mc00_UCell0
的当前值?
答案 0 :(得分:0)
您说以下作品:
float Cell_Voltage = Mc00_UCell00.DefaultValue;
以下内容无效:
float Cell_Voltage = Mc00_UCell00;
请注意,在C语言和许多其他语言中,点表示从结构中访问成员。这意味着在工作示例中,您访问一个成员并将其分配给Cell_Voltage
;在不工作示例中,您想要为一个简单的变量分配整个结构,这实际上是行不通的。
确定所需的结构成员,并用点号表示。
答案 1 :(得分:0)
在CAPL中,您应该编写浮点信号值的整数
float Cell_Voltage = $Mc00_UCell00;
它称为“直接访问信号值”