vTESTstudio - VT System CAPL Functions - VT2004

纵使生活有白般不顺,我们依然要千般喜乐,万般热爱,只因那些我们喜爱和爱我们的人儿。

vtsLoadWFResistance - 从指定文件加载通道的电阻曲线

功能:此函数从指定文件加载VT2004通道的电阻曲线

注意:该函数不能在任何CAPL处理程序例程或ECU节点中调用。它只能在测试模块的MainTest方法上下文中调用;

Target:目标通道变量空间名称,例如:VTS::Temp_Sensor

filepth:包含电阻曲线的文件路径,可以是绝对路径地址也可以是相对路径地址。

返回值:

0:成功重置目标通道最大和最小值

-1:未知错误

-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3:访问文件时出错。例如,这可能意味着找不到文件或文件格式与预期不同。

-4:传输错误–波形无法正确传输。

Demo演示

以下示例演示了如何使用VT2004通道的波形电阻输出来模拟传感器。在本例中,名为waveform.TXT的波形加载并在Temp_Sensor通道上回放

SimulateSensorResistanceWF ()
{
   // 选择电阻刺激和波形曲线类型
   vtsSetStimulationMode("VTS::Temp_Sensor", 3);
   vtsSetCurveType("VTS::Temp_Sensor", 2);

   // 负载波形(波形.TXT的内容如下所示)
   vtsLoadWFResistance("VTS::Temp_Sensor", "C:\\WaveForm.TXT");
   //同功能用法
   //sysvar::VTS::Temp_Sensor.LoadWFResistance("C:\\WaveForm.TXT");
   //配置波形、参数:
   //TimeIncrement(保存每个样本的时间)=65ms
   //暂停(两次波形重复之间暂停)=2s
   //重复次数(重复次数)=3
   vtsSetWFParams("VTS::Temp_Sensor", 0.065, 2.0, 3);

   // 使用先前配置的波形开始触发
   vtsStartStimulation("VTS::Temp_Sensor");
}

vtsLoadWFVoltage - 从指定文件加载通道的电压曲线

功能:该函数从指定文件加载通道的电压曲线。

注意:该函数不能在任何CAPL处理程序例程或ECU节点中调用。它只能在测试模块的MainTest方法上下文中调用;

Target:目标通道变量空间名称,例如:VTS::Temp_Sensor

filepth:包含电压曲线的文件路径,可以是绝对路径地址也可以是相对路径地址。

返回值:

0:成功重置目标通道最大和最小值

-1:未知错误

-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3:访问文件时出错。例如,这可能意味着找不到文件或文件格式与预期不同。

-4:传输错误–波形无法正确传输。

Demo演示

以下示例演示如何使用VT2004通道的波形电压输出来模拟传感器。示例中添加名为waveform.TXT的波形加载并在Temp_Sensor通道上回放。

SimulateSensorVoltageWF ()
{
   // 选择电压仿真和波形曲线类型
   vtsSetStimulationMode("VTS::Temp_Sensor", 1);
   vtsSetCurveType("VTS::Temp_Sensor", 2);

   // 负载波形(waveform.TXT的内容如下所示)
   vtsLoadWFVoltage("VTS::Temp_Sensor", "C:\\WaveForm.TXT");

    //配置波形、参数:
    //TimeIncrement(保存每个样本的时间)=65ms
    //暂停(两次波形重复之间暂停)=2s
    //NumberOfRepeats(重复次数)=0(无限制)
   vtsSetWFParams("VTS::Temp_Sensor", 0.065, 2.0, 0);

   // 输出配置波形10秒
   vtsStartStimulation("VTS::Temp_Sensor");
   TestWaitForTimeout(10000);
   vtsStopStimulation("VTS::Temp_Sensor");
}
//同功能不同实现方法
sysvar::VTS::Temp_Sensor.LoadWFVoltage("C:\\WaveForm.TXT");

以下示例展示了如何在VT7001电源信道上输出波形。在此示例中使用了外部电源单元(名称空间ExtSupply)。ECU连接到OUT1(名称空间ECUpower)和GND1;VT7001模块被命名为电源模块。输出电压由预定义曲线(powercycle.TXT)确定。曲线内插点的时间增量为65ms;曲线持续10秒。

ExternalSupplyWithCurve ()
{
   // 将模式设置为仅一个电源->外部电源1
   vtsSetInterconnectionMode("VTS::PowerSupply", 1);
   //从文件加载波形
   //因数设置为0.2:1 V控制电压->电源输出5 V
   vtsSetRefVoltageMode("VTS::ExtSupply", 2, 0.2);
   vtsLoadWFVoltage("VTS::ExtSupply", "powercycle.TXT");
   vtsSetWFParams("VTS::ExtSupply", 0.00005, 0.2, 0);

   // 打开输出开关并启动输出曲线
   @sysvar::VTS::Clamp30::Active = 1;
   vtsStartStimulation("VTS::ExtSupply");

   //等待5秒,停止回放
   TestWaitForTimeOut(5000);
   vtsStopStimulation("VTS::ExtSupply");
}

//同功能不同实现方法
sysvar::VTS::ExtSupply.LoadWFVoltage("powercycle.TXT");

vtsSetCurveType - 设置曲线的模式

功能:指定刺激信号的形式(动态)。

Namespace:目标通道变量空间名称,例如:VTS::RPM_Sensor

Type:类型值,可参考下表。

Value

Enum

Short Description

0

eVTSCurveTypeConstant

常量值,由相应的输出系统变量确定。然而,也可以通过更改中变量的值来动态使用该值。

1

eVTSCurveTypePWM

PWM

2

eVTSCurveTypeAnalogWaveform

模拟波形;使用LoadWFVoltage(仅适用于VT2004和VT2816)或LoadWFResistance(仅适用于VT2004)加载,然后使用StartStimulation启动。

3

eVTSCurveTypeBitStream

Bit stream(=数字波形);使用LoadWFBitStream加载,然后使用StartStimulation启动(仅适用于VT2516和VT2848)。

4

eVTSCurveTypeUserFPGA

用户FPGA。如果模块的输出应由用户可编程FPGA控制,则必须设置该类型。只有当模块包含用户可编程FPGA时,才能使用此类型

返回值:

0:成功重置目标通道最大和最小值

-1:调用错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 指定的类型无效

-4: 未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接管设置。否则,回调成功,但不确定回调返回时是否已接管设置。

vtsSetStimulationMode - 设置激励模式

功能:设置内部电压或电阻刺激的模式。。

Target:目标通道变量空间名称,例如:VTS::RPM_Sensor

Mode:类型值,可参考下表。

Value

Enum

Short Description

0

eVTSStimulationModeNone

内部激励未激活

1

eVTSStimulationModeVoltage

电压激励

2

eVTSStimulationModePotentiometer

电位计激励(仅VT2004)

3

eVTSStimulationModeResistanceGreater

电阻激励R>(在电阻值之间切换时,仅出现电阻值高于输出或目标电阻的中间状态 (VT2004)

4

eVTSStimulationModeResistanceLower

电阻激励R<(在电阻值之间切换时,仅出现电阻值较低的中间状态)(VT2004)

返回值:

0:成功重置目标通道最大和最小值

-1:调用错误

-2: 调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。

-3: 指定的类型无效

-4: 未在测试模块的主方法上下文中调用该函数。因此,不可能等到从VT系统接管设置。否则,回调成功,但不确定回调返回时是否已接管设置。

Demo演示

以下示例演示了如何使用VT2004通道的PWM输出来模拟基于PWM的传感器(例如RPM传感器)。本例中使用的通道称为RPM_Sensor。

SimulateSensorPWM ()
{
   // 频率设置 (100Hz)
   float currentFrequency = 100.0;
   // 选择电压刺激和PWM曲线类型
   vtsSetStimulationMode("VTS::RPM_Sensor", eVTSStimulationModeVoltage);
   vtsSetCurveType("VTS::RPM_Sensor", eVTSCurveTypePWM);
   // PWM信号将在0V和5V之间切换
   vtsSetPWMVoltageLow("VTS::RPM_Sensor", 0.0);
   vtsSetPWMVoltageHigh("VTS::RPM_Sensor", 5.0);
   // 将重复次数设置为无限
   vtsSetPWMRepeats("VTS::RPM_Sensor", 0);
   // 设置初始频率(100Hz)和占空比(50%)值
   @sysvar::VTS::RPM_Sensor::PWMFreq = currentFrequency;
   @sysvar::VTS::RPM_Sensor::PWMDC = 50.0;
   // 开始仿真
   vtsStartStimulation("VTS::RPM_Sensor");
   // To stimulate different sensor readings increase
   // frequency of the PWM signal over time
   //使用不同的激励传感器
   //PWM信号随时间的频率
   while(currentFrequency < 200)
   {
      // 每100ms将频率增加1Hz
      TestWaitForTimeOut(100);
      currentFrequency += 1;
      @sysvar::VTS::RPM_Sensor::PWMFreq = currentFrequency;
   }
   //停止仿真
   vtsStopStimulation("VTS::RPM_Sensor");
}
//同功能不同实现方法
sysvar::VTS::RPM_Sensor.SetCurveType(eVTSCurveTypePWM);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
CAPL(Communication Access Programming Language)是一种用于CANoe和CANalyzer等工具的编程语言。它是一种专门用于开发汽车通信系统的脚本语言。 CAPL函数是在CAPL脚本中定义和使用的可重复使用的代码块。通过使用CAPL函数,我们可以将一段代码逻辑封装成一个函数,然后在多个地方重复调用这个函数,从而提高代码的可读性、可维护性和复用性。 CAPL函数的定义包括函数名、参数列表和函数体。参数列表中定义了函数的输入参数,函数体中定义了具体的代码逻辑。可以在函数体中使用变量、条件语句、循环语句、算术运算符、位运算符和函数调用等CAPL的语法元素。函数还可以返回一个值,以便在函数调用的地方使用。 CAPL函数主要用于处理CAN信号和消息。例如,可以定义一个函数来解析CAN消息中的某个信号,并返回信号的值。在其他地方调用这个函数,就能够获取到信号的值,从而进行进一步的处理。 CAPL函数还可以通过传递参数来实现不同的功能。通过参数的灵活配置,可以在一个函数中实现多种不同的行为,增加了代码的灵活性和可扩展性。 总而言之,CAPL函数是一种用于在CAPL脚本中定义和使用可重复使用代码块的编程工具。通过封装代码逻辑,提高了代码的可读性、可维护性和复用性,同时也增加了代码的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载网络测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值