当前位置: 首页 > 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;实现对系统菜单的增删改查操…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构&#xff1a; 传统SMO中LPF会带来相位延迟和幅值衰减&#xff0c;并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF)&#xff0c;可以去除高次谐波&#xff0c;并且不用相位补偿就可以获得一个误差较小的转子位…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

Linux部署私有文件管理系统MinIO

最近需要用到一个文件管理服务&#xff0c;但是又不想花钱&#xff0c;所以就想着自己搭建一个&#xff0c;刚好我们用的一个开源框架已经集成了MinIO&#xff0c;所以就选了这个 我这边对文件服务性能要求不是太高&#xff0c;单机版就可以 安装非常简单&#xff0c;几个命令就…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...