vTESTstudio - VT System CAPL Functions - General/Trigger Function
前面文章中我们已经介绍了常用的几种板卡的基本信息,那这些板卡该如何去通过软件调用呢?带着这个问题我们开始新的一块内容 - VT系统相关的自动化控制函数介绍,我会按照不同的板卡来分类,对其可控制的函数进行介绍,方便大家的阅读和使用;今天闲来介绍一些通用的调用和触发相关的函数。

vtsSetTransferCycle

功能:设置从VT系统检索系统变量测量值并将其写入相应系统变量的周期时间。
Target:对VT系统有过了解的朋友肯定知道,每块板卡的每个通道都会在CANoe工程中映射出一个系统变量,该变量名称就是char Target[]变量,我们这里调用的就是这个信息。
CycleTime:此处的周期时间单位为秒,我们可以设置的最小周期为1ms,常见的可使用的时间周期为1 ms (= 0.001s), 2 ms, 5 ms, 10 ms, 20 ms, 50 ms, 100 ms, 200 ms, 500 ms, 1 s, 2 s, 5 s and 10 s;但是具体使用什么周期我们需要根据不同的板卡参数去调用,如果使用的不可用的周期时间,这个调用就是一次失败的调用,并且返回值为-1。
示例:
testfunction WaitForECUSignalChange ()
{// 在测量期间,我们把周期设置为1ms,这样我们的信息能够被快速的检测到vtsSetTransferCycle("VTS::ECU_Dout_1::CurBit", 0.001);// 循环等待事件的发生while(1){if(@sysvar::VTS::ECU_Dout_1::CurBit == 1) break;TestWaitForTimeOut(1);}// 当事件发生后,我们将周期调整为默认周期100msvtsSetTransferCycle("VTS::ECU_Dout_1::CurBit", 0.1);
}
使用方法2:
vtsSetTransferCycle("VTS::ECU_Dout_1::CurBit", 0.001);
//等同于
sysvar::VTS::ECU_Dout_1::CurBit.SetTransferCycle(0.001);
也就是说我们也可以把系统变量名称作为一个已知的参数,然后通过SetTransferCycle去调用,无论上面2种方法中的哪一种,都能够实现板卡的控制,我们根据自己的使用习惯使用即可。
vtsSetTriggerParams

功能:设置触发器的基本参数
注意:该函数只能在VT系统的特定通道的系统变量命名空间调用(需要使用特定的参数)
Target:指定配置的触发器名称:VTS::IgnitionChannel
Trigger:配置触发器的通道

SourceChannel:指定配置的触发器连接到哪个通道

EdgeType:配置触发类型:上升沿触发或者下降沿触发;高电平触发或者低电平触发。

返回值:0:调用成功;-1:调用错误;-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令。
组合起来的命令就是:
vtsSetTriggerParams( "VTS::IgnitionChannels", eVTSTrigger1, eVTSTriggerSourceChannel1, 0);
//同类型用法
sysvar::VTS::IgnitionChannels.SetTriggerParams( "VTS::IgnitionChannels", eVTSTrigger1, eVTSTriggerSourceChannel1, 0);
vtsSetTriggerParamsEx
设置触发器的其他参数配合vtsSetTriggerParams函数一起使用

Target:指定配置的触发器名称:VTS::IgnitionChannel
Trigger:配置触发器的通道;参考vtsSetTriggerParams说明
MinPulseWidth:最小脉冲宽度
RestartTime:重新启动时间,指定触发器被另一个触发器重新启动的延迟;触发器2被配置为触发器1的重新启动触发器。在这种情况下,触发器1在触发器2触发后重新启动,延迟由该参数设置。
PreTriggers:此位字段指定已配置触发器的先决条件。每个设置位指定在激活配置的触发器之前必须激活的触发器。此设置涉及同一VT系统通道的触发。
位0已设置:触发器1必须作为先决条件激发
位1设置:触发2必须作为先决条件触发
VT1004模块:可使用8个最低位。示例:将PreTriggers设置为5(=1+4)以使用触发器1和3作为配置触发器的前提条件。
RestartTriggers:此位字段指定重新启动已配置触发器的触发器。重新启动后,触发器的触发器事件系统变量可以显示另一个事件。但是,触发器的事件计数器不会重置。此设置涉及同一VT系统通道的触发。
位0设置:Trigger1重新启动配置的触发器
位1设置:Trigger2重新启动配置的触发器
位2设置:Trigger3重新启动配置的触发器
VT1004模块:可使用8个最低位。示例:将RestartTriggers设置为10(=2+8)以将触发器2和4设置为已配置触发器的重启触发器。
ThresholdEventCount:如果此参数设置为大于0的值k,则触发事件仅可见,并且触发事件的事件计数器仅在触发事件发生k+1次时递增。
有效值:0-4294967295
示例:如果ThresholdEventCount设置为3,则在配置的事件第四次发生时设置触发事件系统变量。此外,配置的事件发生时,事件计数器每4次递增一次。
ExtSettings:此位字段指定其他设置
返回值:0:调用成功;-1:调用错误;-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令

vtsSetTriggerParams( "VTS::IgnitionChannels", eVTSTrigger1, eVTSTriggerSourceChannel1, 0);
vtsSetTriggerParamsEx( "VTS::IgnitionChannels", eVTSTrigger2, 0.0, 0.0, 1, 0, 0, 0);
StartTrigger

功能:该函数启动指定的触发器。它还将与触发器关联的事件计数器系统变量重置为0。
Trigger:配置触发器的通道;参考vtsSetTriggerParams说明
返回值:0:调用成功;-1:调用错误;-2:调用命令的命名空间不存在、不是有效的VT系统命名空间或不支持此命令
vtsStartTrigger( "VTS::IgnitionChannels", eVTSTrigger1);
sysvar::VTS::IgnitionChannels.StartTrigger( eVTSTrigger1);
相关文章:

vTESTstudio - VT System CAPL Functions - General/Trigger Function
前面文章中我们已经介绍了常用的几种板卡的基本信息,那这些板卡该如何去通过软件调用呢?带着这个问题我们开始新的一块内容 - VT系统相关的自动化控制函数介绍,我会按照不同的板卡来分类,对其可控制的函数进行介绍,方便…...
IDEA 快捷键
ctrlD :复制当前行到下一行 ctrlO : 重写当前类的方法 ctrlshiftu : 大小写转化 Alt 上/下 :跳到上一个、下一个函数 Alt 左/右 : 回到上一个、下一个文件 Alt 回车 : 代码修正 Alt Insert : 插入代码 Ctrl Alt L …...
2023新华为OD机试题 - 入栈出栈(JavaScript) | 刷完必过
入栈出栈 题目 向一个空栈中依次存入正整数 假设入栈元素N(1 <= N <= 2^31-1) 按顺序依次为Nx ... N4、N3、N2、N1, 当元素入栈时,如果N1=N2+...Ny (y的范围[2,x],1 <= x <= 1000) 则N1到Ny全部元素出栈,重新入栈新元素M(M=2*N1) 如依次向栈存储6、1、2、3,当存…...

微信公众号扫码授权登录思路
引言 上学期研究了一下微信登录相关内容,也写了两三篇笔记,但是最后实际登录流程没有写,主要因为感觉功能完成有所欠缺,一直也没有好的思路;这两天我又看了看官方文档,重新构思了一下微信公众号登录相关的…...
数据结构与算法基础-学习-10-线性表之顺序栈的清理、销毁、压栈、弹栈
一、函数实现顺序栈的其他函数实现,请看之前的博客链接《数据结构与算法基础-学习-09-线性表之栈的理解、初始化顺序栈、判断顺序栈空、获取顺序栈长度的实现》。1、ClearSqStack(1)用途清理栈的空间。只需要栈顶指针和栈底指针相等ÿ…...

Hazel游戏引擎(005)
本人菜鸟,文中若有代码、术语等错误,欢迎指正 我写的项目地址:https://github.com/liujianjie/GameEngineLightWeight(中文的注释适合中国人的你) 文章目录前言关键操作代码文件关键代码代码流程代码文件关键代码exter…...

牛客网Python篇数据分析习题(四)
1.现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID Level:等级 Achievement_value:成就值 Num_of_exercise&a…...
盲盒如何创业?
所谓的“盲盒”,受众群体大部分是那些爱碰运气的人,顾客买的是那种在打开盲盒时一刹那的惊喜感和神秘感,在打开盲盒之前,谁也不知道自己会得到什么,这也是为什么消费者更愿意购买的原因。网上的盲盒,主要是…...
第1集丨Java中面向对象相关概念汇总
目录一、基本概念1.1 类1.2 属性1.3 方法1.4 静态1.5 包1.6 import二、高级概念2.1 构造方法2.2 继承2.3 super & this2.4 多态2.5 方法重载2.6 方法重写2.7 访问权限2.8 内部类2.9 final2.10 抽象2.11 接口2.12 匿名类面向对象的编程思想力图使计算机语言中对事物的描述与…...

高性能(二)
三、读写分离和分库分表 1.读写分离 1.1 概述 将数据库的读写操作分散到不同的数据库节点上 通常一主多从一台主数据库负责写,多台从数据库负责读。 主库和从库之间会进行数据同步,以保证从库中数据的准确性。 1.2 问题及解决 1.2.1 问题 主从同…...

Allegro如何实现同一个屏幕界面分屏显示操作指导
Allegro如何实现同一个屏幕界面分屏显示操作指导 在做PCB设计的时候,会需要分屏显示,比如一边是放大的视图,另外一边是缩小的视图,Allegro支持同一个屏幕界面下进行分屏显示,如下图 而且会实时同步起来 如何分屏,具体操作如下 点击View...

前后端一些下载与配置(第二篇 第10天过后)nuxt banner redis 短信服务
NUXT 应该是不用怎么装? 有现成的 axios 还需要在npm吗 好像已经有现成的了 banner banner 笔记汇总P396 Redis Linux安装redis tar -xzvf redis-6.2.6.tar.gz cd redis-6.2.6 照着他做 然后 cd /usr/local/redis/bin ./redis-server /usr/local/redis…...
OSG三维渲染引擎编程学习之四十八:“第五章:OSG场景渲染” 之 “5.6 多重纹理映射”
目录 第五章 OSG场景渲染 5.6 多重纹理映射 5.6.1 多重纹理映射介绍 5.6.2 多重纹理映射示例...

对Node.js 的理解?优缺点?应用场景?
一、是什么 Node.js 是一个开源与跨平台的 JavaScript 运行时环境 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能 可以理解为 Node.js 就是一个服务器端的、非阻塞式I/…...
Bean的生命周期
所谓的生命周期指的是一个对象从诞生到销毁的整个生命过程,我们把这个过程就叫做一个对象的生命周期~~ Bean的生命周期分为以下五大部分: 实例化(为 Bean 分配内存空间) 设置属性(Bean对象注入/装配) 初…...
Python学习-----函数2.0(函数对象,名称空间,作用域-->全局变量与局部变量)
目录 前言: 1.函数对象 (1)函数对象的引用 (2)函数可以放到序列里面 (3)函数可以作为参数 , 传递给另一个函数 2.名称空间 3.作用域 (1)作用域的理解 …...
Java中Json字符串和Java对象的互转
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。诞生于 2002 年。易于人阅读和编写。同时也易于机器解析和生成。JSON 是目前主流的前后端数据传输方式。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的…...
代码随想录NO42 | 动态规划_Leetcode70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数
动态规划_Leetcode70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数70. 爬楼梯 (进阶) 在原题基础上,改为:一步一个台阶,两个台阶,三个台阶,…,直到 m个台阶…...

【C++从入门到放弃】初识C++(基础知识入门详解)
🧑💻作者: 情话0.0 📝专栏:《C从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! C基础…...
企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发
工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

C# winform教程(二)----checkbox
一、作用 提供一个用户选择或者不选的状态,这是一个可以多选的控件。 二、属性 其实功能大差不差,除了特殊的几个外,与button基本相同,所有说几个独有的 checkbox属性 名称内容含义appearance控件外观可以变成按钮形状checkali…...