成熟,就是某一个突如其来的时刻,把你的骄傲狠狠的踩到地上,任其开成花或者烂成泥。
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");