vTESTstudio - VT System CAPL Functions - General/Trigger Function

news2024/9/20 18:30:10

前面文章中我们已经介绍了常用的几种板卡的基本信息,那这些板卡该如何去通过软件调用呢?带着这个问题我们开始新的一块内容 - 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);
   }

   // 当事件发生后,我们将周期调整为默认周期100ms
   vtsSetTransferCycle("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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/343754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速理解 JVM 原理 - 【基础概念篇】

快速理解 JVM 原理 - 【基础概念篇】 Java虚拟机 是什么? Java 虚拟机 本质就是一台”虚拟的“计算机 ,大家通俗的理解是一款 “软件”安装在电脑上 虚拟机通常分为两类: 系统虚拟机【可运行完整操 作系统的软件平台】程序虚拟机 【为执行…

AA-PEG-AA,Acetic Acid-PEG-Acetic Acid,羧酸-聚乙二醇-羧酸供应

英文名称:Acetic Acid-PEG-Acetic Acid,AA-PEG-AA 中文名称:羧酸-聚乙二醇-羧酸 AA-PEG-AA是一种线性双功能PEG羧酸试剂。PEG和COOH基团之间存在亚甲基(CH2)键。AA-PEG-AA也称为CM-PEG-CM,CM:…

【GD32F427开发板试用】使用TinyMaix进行手写数字识别

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:xusiwei1236 一、TinyMaix简介 TinyMaix是国内sipeed团队开发一个轻量级AI推理框架,官方介绍如下: TinyMaix 是面向单…

django+mysql实现一个简单的web登录页面

目录 一、使用pyacharm创建一个django项目 二、启动django项目验证 三、配置mysql数据库 1、本地安装mysql数据库 1)安装mysql数据库 2)自己创建一个数据库 2、安装 pymysql 3、配置mysql数据库 1)在项目同名包下的_init_.py里面添加…

OpenGL渲染管线介绍

一、概述 OpenGL是跨平台计算机图形应用程序的应用规范,广泛应用于仿真、游戏、GIS系统等领域,实现二三维图形的渲染。OpenGL渲染过程需要经历CPU、GPU两个阶段,CPU中进行图形计算,完成之后调用OpenGL开发接口在GPU中创建缓存区缓…

前后端一些下载与配置(第二篇 第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…

图数据建模基础

Neo4j 图的组件 节点(Nodes)标签(Labels)关系(Relationships)属性(Properties)建模过程 了解领域并为应用程序定义特定用例(问题)。开发初始图形数据模型。 对…

ansible的剧本(playbook)

一、playbooks 概述以及实例操作 1、playbooks 的组成 playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables&#xff1…

多模式支持无线监控技术:主动式定位、被动式定位

物联网空间信息与数字技术发展至今,已经催生了一大批优秀的践行者。在日常与商业应用中,室内外定位领域依托于这一技术的发展,更是在近几年风光无限。但是并不是说室内定位与室外定位都已经相当成熟,相对来说,室内定位…

简单实用的内网穿透实现教程

内网穿透,字面理解就是网络地址穿透,是一种比较常用的将内网地址转换成公网地址的方式。通过内网穿透,可以将本地内网局域网提供给外网公网上访问,在外网也能连接访问内网主机和应用,当用户有日常远程和异地外网访问的…

Zabbix的自定义监控

Zabbix的自定义监控 zabbix自动可以提供很多监控项;但是往往不能满足需求;尝尝需要我们自己创建一系列的监控项,这就是自定义监控; 监控项:zabbix进行监控的一个指标,zabbix成为item; 它的值…

C++7:STL-模拟实现vector

目录 vector的成员变量 构造函数 reserve size() capacity() push_back 一些小BUG 赋值操作符重载 析构函数 【】操作符重载 resize pop_back Insert 迭代器失效 erase 二维数组问题 总结一下 vector,翻译软件会告诉你它的意思是向量,但其…

面试腾讯测开岗,结束后被面试官吐槽“什么阿猫阿狗都敢来面试大厂了吗?”.....

前一阵子有个小徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言,场面让他一度十分尴尬 印象最深的就是下面几个问题: 根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解? 非关系型…

不连接显示器或者HDMI欺骗器来 使用Moonlight串流游戏

环境:WIN11NVIDIA显卡Moonlight串流 问题:当主机不连接显示器时,Moonlight客户端黑屏 解决办法:使用虚拟显示器来使显卡工资 背景:当SteamDeck 大卖的时候,我开始思考是否也需要购买一台Steam Deck来躺在床…

G1垃圾回收器详解

文章目录前言一、思考问题二、官方文档三、基本介绍四、G1的内存模型五、G1的标记过程六、G1的垃圾回收1、G1过程梳理2、Young GC3、Mixed GC4、Full GC七、参数介绍八、典型问题1、疏散失败(Evacuation Failure)2、大对象分配(Humongous All…

【Linux】动静态库以及动静态链接

环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹链接扩展我们在使用Linux的时候,不禁会有这么一个疑问:为什么我们能够在Linux下进行c/c代码的编写以及编译呢?这是因…

_Linux(网络基础)

文章目录1. 相关基础概念2. 认识 "协议"3. 网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型4. 网络传输基本流程网络传输流程图数据包封装和分用小结5. 网络中的地址管理认识IP地址认识MAC地址认识端口号1. 相关基础概念 独立模式: 计算机之间相互独立网络互…

MySQL数据库13——插入数据(INSERT)

下面的语句用于向student表插入数据。 插入语句: INSERT INTO student(ID,name,sex,birthday,origin,contact1,contact2,institute) VALUES (0013,塔赛努,男,1997/9/15,内蒙古自治区,NULL,NULL,计算机学院);INSERT INTO student VALUES (0014,呼和嘎拉,男,1995-02…

字节青训营——秒杀系统设计学习笔记(一)

如何做系统设计 1. 场景分析(Scenario) 什么系统,需要哪些功能,多大的并发量 2. 存储设计(Storage) 数据如何组织,Sq|存储, NoSq|存储 3. 服务设计(Service) 业务功能实现和逻辑整合 4. 可扩展性(Scale) 解决设计缺陷&…

Go的web开发Gin框架1(八)——Gin

一、重点内容: 知识要点有哪些? 1、了解Gin框架 2、导入使用Gin框架 3、尝试配合GORM开发 4、整合html,css,js 二、详细知识点介绍: 1、Gin框架介绍 ​ Gin是一个golang的微框架,封装比较优雅&…