为了增强测试环境的可追溯性,我们希望在CANoe配置中有一个系统变量,存储一个简单的字符串,该字符串引用配置本身的版本。
我们要实现的目标如下:
on preStart
{
@versionsysvar = // callback of a command line call returning the version as a string
}
SysExec
和SysExecCmd
都不是选项。到目前为止,我找不到一种不涉及创建dll包装器,将其导入并运行的方法。毕竟,我是否在想办法。有什么想法吗?
编辑
比方说配置是在SVN下共享的。它可能是任何种类的版本控制系统。每个测试人员都有一个具有一定自由度的分支,因此必须在每次测量开始时获取版本号。例如。在开始测量时,目标是在系统变量中填充当前的SVN版本号,该版本号可通过命令行调用检索。
请注意,这仅是示例。如果可能的话,我想避免的是添加第三个元素,例如dll或COM对象,以获取版本控制对象。
参考:In CAPL, is there any function to start/open an executable in background?
答案 0 :(得分:-2)
一个可能的选择是将命令的输出路由到文本文件,如下所示:
sysExecCmd(“ dir”,“> D:\ Output.txt”)
一旦执行了sysExecCmd命令,就会触发控制台环境以执行“ dir”命令,并将输出写入文本文件。
可以使用CAPL文件功能读取文件Output.txt并监视其输出。请注意,这是一种解决方法,而不是直接的解决方案