如何解决是否可以将XML定义的系统变量作为CAPL中的函数参数传递
我有大约20条消息定义为结构,并且对于每条消息,我都有许多信号(不是dbc的确切信号名称),我已将其定义为XML文件中的系统变量。
在CAPL中,如果我搜索@sysvar,我会同时看到我的信号名和名称空间(消息名)。
现在,我需要创建一个函数,在其中需要更改信号的值。为此,我需要传递结构(名称空间)名称,其信号名称和值将作为参数写入。
我无法执行此操作。
任何人都可以帮助我如何将XML中定义的名称空间和信号名称作为CAPL中的参数进行传递。
XML的格式是
<?xml version="1.0" encoding="utf-8"?>
<systemvariables version="4">
<namespace name="" comment="" interface="">
<namespace name="XYZ" comment="" interface="">
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="ABC" comment="" bitcount="32" isSigned="false" encoding="65001" type="int" startValue="1" />
</namespace>
</namespace>
</systemvariables>
解决方法
选项1 您只需要简单地设置sysVar?
Set rs=c.Execute(“SELECT * FROM Customers" & _
WHERE Country='Germany' AND (City='Berlin' OR City='München');”)"
选项2 您是否需要使用sysvar的函数?
@<sys> = 12; //ex @XYZ::ABC = 1 OR @sysvar::<sys> = 12; // @sysvar::XYZ::ABC
选项3 您是否需要使用sysvar 名称名称的功能?
要实现此目的,您可以使用内置函数lookupSysvar。
//Function Definition
void FunctionWithSysVariableAsParameter(sysvarInt *sys,int valueToAssign)
{
@sys = valueToAssign;
}
//Usage Example
on start
{
FunctionWithSysVariableAsParameter(sysvar::XYZ::ABC,12);
write("%d",@XYZ::ABC);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。