从 CAPL 中的字符串动态分配信号名称



我有一个字符串,用于存储从 excel 文件中提取的信号名称。如果我有很多这样的信号,我想使用字符串动态分配信号的名称。

例如,如果我的dbc文件中有一个名为"speed"的信号,并且我有一个存储"speed"的字符串,我需要将信号"speed"的值设置为100。

variable
{
    message BCM BCM;
    char signal[100]= "speed";
}
on message * 
{
    $signal= 100;
}

我得到的错误是:
错误:标识符"信号"没有信号类型。

是否有解决此问题的方法,以便我可以通过某种方式将字符串转换为信号名称?

您正在像这样混合变量格式。唯一可以使用 $ 的对象是 dbSignal 类型。你需要的是一个像getSignaldbSignalname);这样的函数,但带有char[]参数。遗憾的是,Vector 没有实现这样的解决方法,让您只能选择通过测试用例参数传递信号字符串(如果您使用的是 XML 测试节点)。

因为,我认为你有太多,我建议你用另一种脚本语言编写一个脚本,构造 .can 文件本身的文本,用 excel 中的字符串填充 dbsignal 的位置,然后使用 .can 文件进行测试/模拟。

最新更新