当前位置: 首页 > news >正文

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 &#xf…...

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,当存…...

微信公众号扫码授权登录思路

引言 上学期研究了一下微信登录相关内容&#xff0c;也写了两三篇笔记&#xff0c;但是最后实际登录流程没有写&#xff0c;主要因为感觉功能完成有所欠缺&#xff0c;一直也没有好的思路&#xff1b;这两天我又看了看官方文档&#xff0c;重新构思了一下微信公众号登录相关的…...

数据结构与算法基础-学习-10-线性表之顺序栈的清理、销毁、压栈、弹栈

一、函数实现顺序栈的其他函数实现&#xff0c;请看之前的博客链接《数据结构与算法基础-学习-09-线性表之栈的理解、初始化顺序栈、判断顺序栈空、获取顺序栈长度的实现》。1、ClearSqStack&#xff08;1&#xff09;用途清理栈的空间。只需要栈顶指针和栈底指针相等&#xff…...

Hazel游戏引擎(005)

本人菜鸟&#xff0c;文中若有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/GameEngineLightWeight&#xff08;中文的注释适合中国人的你&#xff09; 文章目录前言关键操作代码文件关键代码代码流程代码文件关键代码exter…...

牛客网Python篇数据分析习题(四)

1.现有一个Nowcoder.csv文件&#xff0c;它记录了牛客网的部分用户数据&#xff0c;包含如下字段&#xff08;字段与字段之间以逗号间隔&#xff09;&#xff1a; Nowcoder_ID&#xff1a;用户ID Level&#xff1a;等级 Achievement_value&#xff1a;成就值 Num_of_exercise&a…...

盲盒如何创业?

所谓的“盲盒”&#xff0c;受众群体大部分是那些爱碰运气的人&#xff0c;顾客买的是那种在打开盲盒时一刹那的惊喜感和神秘感&#xff0c;在打开盲盒之前&#xff0c;谁也不知道自己会得到什么&#xff0c;这也是为什么消费者更愿意购买的原因。网上的盲盒&#xff0c;主要是…...

第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 概述 将数据库的读写操作分散到不同的数据库节点上 通常一主多从一台主数据库负责写&#xff0c;多台从数据库负责读。 主库和从库之间会进行数据同步&#xff0c;以保证从库中数据的准确性。 1.2 问题及解决 1.2.1 问题 主从同…...

Allegro如何实现同一个屏幕界面分屏显示操作指导

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

前后端一些下载与配置(第二篇 第10天过后)nuxt banner redis 短信服务

NUXT 应该是不用怎么装&#xff1f; 有现成的 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 引擎&#xff08;Google Chrome 的内核&#xff09;&#xff0c;利用事件驱动、非阻塞和异步输入输出模型等技术提高性能 可以理解为 Node.js 就是一个服务器端的、非阻塞式I/…...

Bean的生命周期

所谓的生命周期指的是一个对象从诞生到销毁的整个生命过程&#xff0c;我们把这个过程就叫做一个对象的生命周期~~ Bean的生命周期分为以下五大部分&#xff1a; 实例化&#xff08;为 Bean 分配内存空间&#xff09; 设置属性&#xff08;Bean对象注入/装配&#xff09; 初…...

Python学习-----函数2.0(函数对象,名称空间,作用域-->全局变量与局部变量)

目录 前言&#xff1a; 1.函数对象 &#xff08;1&#xff09;函数对象的引用 &#xff08;2&#xff09;函数可以放到序列里面 &#xff08;3&#xff09;函数可以作为参数 &#xff0c; 传递给另一个函数 2.名称空间 3.作用域 &#xff08;1&#xff09;作用域的理解 …...

Java中Json字符串和Java对象的互转

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式。诞生于 2002 年。易于人阅读和编写。同时也易于机器解析和生成。JSON 是目前主流的前后端数据传输方式。 JSON 采用完全独立于语言的文本格式&#xff0c;但是也使用了类似于 C 语言家族的…...

代码随想录NO42 | 动态规划_Leetcode70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数

动态规划_Leetcode70. 爬楼梯 &#xff08;进阶&#xff09; 322. 零钱兑换 279.完全平方数70. 爬楼梯 &#xff08;进阶&#xff09; 在原题基础上&#xff0c;改为&#xff1a;一步一个台阶&#xff0c;两个台阶&#xff0c;三个台阶&#xff0c;…&#xff0c;直到 m个台阶…...

【C++从入门到放弃】初识C++(基础知识入门详解)

&#x1f9d1;‍&#x1f4bb;作者&#xff1a; 情话0.0 &#x1f4dd;专栏&#xff1a;《C从入门到放弃》 &#x1f466;个人简介&#xff1a;一名双非编程菜鸟&#xff0c;在这里分享自己的编程学习笔记&#xff0c;欢迎大家的指正与点赞&#xff0c;谢谢&#xff01; C基础…...

企业工程项目管理系统源码+spring cloud 系统管理+java 系统设置+二次开发

工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#xff1a;实现对数据字典标签的增删改查操作 2、编码管理&#xff1a;实现对系统编码的增删改查操作 3、用户管理&#xff1a;管理和查看用户角色 4、菜单管理&#xff1a;实现对系统菜单的增删改查操…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...