我正在使用独木舟版本10.0,我想问一下是否有一个聪明的方法 从数据库生成可选信号的值到其他值。
现在我正在进行硬编码,但是对于每个信号都这样做很烦人。特别是当我知道数据库保存信息长度,起始位和最小和最大可能值等信息时。
我看到有一些选项,如getSignal,setSignal等。 但我无法理解如何正确使用它们以实现我的目标。
感谢您的帮助。
答案 0 :(得分:0)
简短:否,您不能从dbc / fibex数据库中描述的给定信号的CAPL中访问符号值。因此,您无法拨打以下电话:
SetSignal (SignalnamefromDbc, SNA_VALUE); /*SNA_VALUE defined in dbcis 7*/
有几种解决方法,但是我需要更多有关模拟可以做什么和不能做什么的信息。
例如: OEM与Vector一起通常会编写特定的dll库以生成实际的信号值,而无需您的特定请求。这些dll通常链接到Simulation节点,并且可以在仿真过程中随时激活/扰动/暂停。
答案 1 :(得分:0)
我知道已经很久了,但是我的理解如下。
尤其是当我知道数据库保存的信息时,例如信号长度,起始位以及最小和最大可能值。
通常在2个文件中定义数据库:
您可以将DBC文件直接输入到CANoe / CANalyser中,并且CAPL将能够直接访问信号值。
for (int i = 0; i < size; i++)
ans[size+i+1] = second[i] + '0';
无需编写任何复杂的函数来提取信号值。如果您提供适当的DBC文件,则CANoe / CANalyser会进行适当的解码。