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、菜单管理:实现对系统菜单的增删改查操…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
