vTESTstudio - VT System CAPL Functions - VT2004(续1)

成熟,就是某一个突如其来的时刻,把你的骄傲狠狠的踩到地上,任其开成花或者烂成泥。

vtsStartStimulation - 启动激励输出

功能:自动激励输出

注意:在启动激励输出之前,一定要设置好输出模式

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

返回值:

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

-1:调用错误

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

-4: 未在测试模块的主方法上下文中调用该函数,没有等到从VT系统接管设置。

Demo演示

参考vtsStopStimulation代码

vtsStopStimulation - 停止激励输出

功能:停止激励输出

注意:停止激励信号的输出是将激励模式重置,如果想要再次启动激励输出,不仅需要vtsStartStimulation来再次激动,并且需要在启动之前通过函数vtsSetStimulationMode重新设置激励模式,否则启动激励信号输出将会失败。停止激励输出是需要一小段时间来实现的,因此如果是用在处理函数过程中,这点需要注意,可能会影响预期的结果,最好是在脚本的结束使用,这样不会影响到程序的执行。

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

返回值:

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

-1:调用错误

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

-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.StartStimulation();
sysvar::VTS::RPM_Sensor.StopStimulation();

vtsSetPWMResistanceLow - 设置PWM输出的低电阻值

功能:在特定输出的PWM模式下输出指定PWM信号的低电阻值

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

Resistance:电阻值,单位为欧姆。VT2004第四通道支持范围为1欧姆 - 25000欧姆;其他通道支持范围为10欧姆 - 15000欧姆;当电阻值设置为-1时,则代表阻值无穷大。如果使用过程中超出硬件的使用范围可能舍入到下一个最高值,也有可能设置为最低值。

返回值:

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

-1:调用错误

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

-4: 未在测试模块的主方法上下文中调用该函数,没有等到从VT系统接管设置。

Demo演示

参考vtsSetPWMResistanceHigh的demo

vtsSetPWMResistanceHigh - 设置PWM输出的高电阻值

功能:在特定输出的PWM模式下输出指定PWM信号的高电阻值

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

Resistance:电阻值,单位为欧姆。VT2004第四通道支持范围为1欧姆 - 25000欧姆;其他通道支持范围为10欧姆 - 15000欧姆;当电阻值设置为-1时,则代表阻值无穷大。如果使用过程中超出硬件的使用范围可能舍入到下一个最高值,也有可能设置为最低值。

返回值:

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

-1:调用错误

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

-4: 未在测试模块的主方法上下文中调用该函数,没有等到从VT系统接管设置。

Demo演示

下面示例展示了了如何使用VT2004通道的内部电阻十进制来模拟基于PWM的传感器。在通道Temp_Sensor上,电阻器在100欧姆和140欧姆之间切换,频率为20 Hz,占空比为50%。

SimulateSensorPWMResistance ()
{
   //选择电阻激励和PWM曲线类型
   vtsSetStimulationMode("VTS::Temp_Sensor", 3);
   vtsSetCurveType("VTS::Temp_Sensor", 1);

   //配置低电阻(100Ω)和高(140Ω)电阻值
   vtsSetPWMResistanceLow("VTS::Temp_Sensor", 100);
   vtsSetPWMResistanceHigh("VTS::Temp_Sensor", 140);

   //将重复次数设置为无限
   vtsSetPWMRepeats("VTS::Temp_Sensor", 0);

   //创建频率为20Hz、DC 50%的PWM信号
   @sysvar::VTS::Temp_Sensor::PWMFreq = 20.0;
   @sysvar::VTS::Temp_Sensor::PWMDC = 50.0;

   // 开始仿真
   vtsStartStimulation("VTS::Temp_Sensor");
}
//同功能不同实现方法
sysvar::VTS::Temp_Sensor.SetPWMResistanceHigh(140);

vtsSetPWMStartDelay - 设置PWM信号曲线输出的启动延迟

功能:指定曲线激励或PWM激励开始后的延迟。该函数仅在VT2004和VT2848模块支持此功能。

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

StartDelay:启动延迟时间,单位 秒。PWM波形或者曲线输出开始后延时的时间,该参数以纳秒分辨率传输至VT系统。

注意:该函数只能在VT系统模块的适当通道的系统变量命名空间上调用。

返回值:

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

-1:调用错误

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

-3: 指定的StartDelay无效

Demo演示

demo展示中,两个VT2004通道的PWM输出模拟两个具有PWM输出的传感器。SetPWMStartDelay命令确保通道Sensor2上的PWM输出在2ms后启动,以产生相应的相移。

//为传感器1设置PWM激励
//设置电压刺激模式
vtsSetStimulationMode( "VTS::Sensor1", 1);
//设置曲线型PWM
vtsSetCurveType("VTS::Sensor1", 1);
//将PWM信号的低电压设置为10V
vtsSetPWMVoltageLow("VTS::Sensor1", 10);
//将PWM信号的高电压设置为14V
vtsSetPWMVoltageHigh("VTS::Sensor1", 14);
//设置占空比为40%
@sysvar::VTS::Sensor1::PWMDC = 40;
//将频率设置为100Hz
@sysvar::VTS::Sensor1::PWMFreq = 100;
//为传感器2设置PWM激励
//设置电压激励模式
vtsSetStimulationMode("VTS::Sensor2", 1);
//设置曲线型PWM
vtsSetCurveType("VTS::Sensor2", 1);
//将PWM信号的低电压设置为10V
vtsSetPWMVoltageLow("VTS::Sensor2", 10);
//将PWM信号的高电压设置为14V
vtsSetPWMVoltageHigh("VTS::Sensor2", 14);
//设置占空比为40%
@sysvar::VTS::Sensor2::PWMDC = 40;
//将频率设置为100Hz
@sysvar::VTS::Sensor2::PWMFreq = 100;
/为传感器2设置2ms的启动延迟
//->PWM信号有轻微的相移
vtsSetPWMStartDelay("VTS::Sensor2", 0.002);
//启动激励
vtsStartStimulation("VTS::Sensor1");
vtsStartStimulation("VTS::Sensor2");

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载网络测试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值