如何理解CAPL—Test编程中的测试对象

news2024/11/15 11:53:15

前言:CAPL—Test编程中的对象,是一个比较复杂的概念,对象的作用是作为Test特定函数的参数。来执行特定的功能(这是比较复杂的一个概念,下文会慢慢讲解)。

注意:因为翻译的问题,有些中文资料称为 测试对象,有些称为测试条件。大家要明白都是指一个东西。

1:对象是如何来的?

目前我所知道的是,对象是通过特定的函数返回值得到的,也就是调用特定的一些函数,该函数的返回值为对象。以下清单的函数返回值都是对象。

放回值为对象的函数
序号函数
1dword ChkStart_MsgAbsCycleTimeViolation(被检测帧在DBC文件中的名称,最小时间,最大时间)
2dword ChkStart_InconsistentDLC(被检测帧在DBC文件中的名称,回调函数名(注:可选参数))
3dword ChkStart_UndefineMessageReceive(回调函数名)
4dword ChkStart_MsgSignalValueInval(回调函数名)

目前为止,我所知道的放回值为对象的函数就这些。

从结构上和命名方式上总结:

1:返回值类型都是dword类型。

2:函数名称都是 ChkStart_定义的名称(名称确定了该函数的性质)

3:返回的对象,可以赋值给一个dword类型的参数

2:对象如何使用

看以下代码

 const dword CheckTime=1000;

  dword gCycCheckId=0;

  gCycCheckId = ChkStart_MsgAbsCycleTimeViolation(BCM_2,45,55);
  testWaitForTimeout(CheckTime);
  ChkControl_Destroy(gCycCheckId);   //销毁测试事件

可以看出,这段代码的作用在于,检查一条名称为BCM_2的报文,的周期是不是在45ms-55ms之间。测试时间为1000ms。

仔细看代码,就会发现问题所在,CAPL也是类 C语言,如果严格按照C中的定义执行,

  gCycCheckId = ChkStart_MsgAbsCycleTimeViolation(BCM_2,45,55);到这行时,调用完毕后,

返回到testWaitForTimeout(CheckTime);这一条语句,等待1000ms,然后执行最后一条销毁测试对象/有些。

发现了没?这里怎么和我们想实现的功能不一致,我们这段代码的本意是想,测试1000ms内,报文的周期是否满足条件。

但是事实上,这段代码确实是实现了上述描述的1000ms内,持续检测的能力。

那就只能说明一个问题,那就是

gCycCheckId = ChkStart_MsgAbsCycleTimeViolation(BCM_2,45,55)和下面一条语句

  testWaitForTimeout(CheckTime);存在大约1000ms左右的共同运行

 

这就说明了,CAPL为了满足测试中工作中的要求,返回值为对象的函数,可以与其他语句(指它后续的语句)并行执行。 

小结:暂时我们不需要了解CAPL到底是如何执行这种同时并行的,只需要记住,它就能实现这种功能即可。

3:对象为什么需要,执行删除操作

上面代码中:存在一条语句  ChkControl_Destroy(gCycCheckId);   //销毁测试事件

不过不执行销毁操作会怎么样?

const dword CheckTime=1000;

  dword gCycCheckId=0;

  gCycCheckId = ChkStart_MsgAbsCycleTimeViolation(BCM_2,45,55);
  testWaitForTimeout(CheckTime);
  gCycCheckId = ChkStart_MsgAbsCycleTimeViolation(IHU_3,45,55);

如上,将代码最后一行的销毁语句,改为在执行一遍IHU_3报文的周期。 这样就会覆盖掉之前检测的结果。

如果仅仅是覆盖,还不是最大的问题。

这就又延伸出,另外一个问题了,测试中,我们知道ChkStart_MsgAbsCycleTimeViolation函数是返回一个对象,对象数值>0。

那么我们如何通过这个对象,来确定是不是出现周期不符合要求的情况。并且,通常情况下我们还需要了解,测试时间段内,一共出现了多少帧不符合要求的情况,或者我们需要知道最大的周期,和最小的周期具体的值是多少?

这就要用到相关的查询函数了。

序号函数
1long  ChkQuery_NumEvents(事件对象)。函数的返回值是检测周期内,不符合要求事件的数量。事件对象必须在函数调用前,就已经被创建。
2double ChkQuery_StatProbelIntervalAVG(事件对象)查询平均周期时间
3double ChkQuery_StatProbelIntervalMin事件对象)查询最小周期时间
4double ChkQuery_StatProbelIntervalMax事件对象)查询最小周期时间

故测试中如果不Destory事件对象,就会占用资源,导致脚本运行速度变慢。

4:通过“事件对象作为参数”控制检测的运行,

开始,和结束销毁。存在以下几个函数,这类函数是统称为检测控制函数(check Control CAPL Function)。

函数描述
ChkControl_Start用于开始或继续检测事件
ChkControl_Stop用于停止检测事件
ChkControl_Reset用于初始化检测事件状态
ChkControl_Destory用于销毁检测事件对象
ChkControl_SetCallback用于设置检测事件对象的回调函数

 

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

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

相关文章

arm:ADC模数转换器

比较器 AD&#xff1a; 精度&#xff1a;10位 转换速率&#xff1a;500 KSPS 量程&#xff1a;0~3.3v void adc_init(void) {ADCCON (1 << 14) | (49 << 6) | (1 << 1); }unsigned short adc_read(void) {unsigned short value ADCDAT0;while(~(ADCCON &am…

华为M60首次降价,消费回暖能延续?

导语 8月15日&#xff0c;华为Mate 60系列首次官宣降价&#xff01;能否带动消费电子进一步回暖&#xff1f; 在当前全球经济形势复杂多变的背景下&#xff0c;各行各业都在寻求新的增长点和突破口。 消费电子市场作为科技与日常生活紧密结合的重要领域&#xff0c;其发展态势一…

基于HarmonyOS的宠物收养系统的设计与实现(一)

基于HarmonyOS的宠物收养系统的设计与实现&#xff08;一&#xff09; 本系统是简易的宠物收养系统&#xff0c;为了更加熟练地掌握HarmonyOS相关技术的使用。 项目创建 创建一个空项目取名为PetApp 首页实现&#xff08;组件导航使用&#xff09; 官方文档&#xff1a;组…

微服务中的Sidecar模式

微服务中的Sidecar模式 什么是sidecarsidecar如何工作Sidecar 代理服务注册发现Sidecar 代理异构服务发起服务调用异构服务如何被调用 常见应用以MOSN流量接管为例使用 sidecar 模式的优势sidecar和面向切片编程AOP的关系参考 什么是sidecar sidecar是服务网络架构的产物。 S…

【网络】 arp 命令 得到网段内所有物理设备ip

我的笔记本和 NVIDIA Jetson Orin 都位于同一个 192.168.1.x 的网段内&#xff0c;我想远程访问 Orin&#xff0c;但我不知道orin的ip 方法 1: 使用 arp 命令 打开命令提示符&#xff1a; 按下 Win R 键&#xff0c;打开“运行”对话框。输入 cmd 并按 Enter 键打开命令提示符…

JAVA类加载过程/类装载的执行过程/java类加载机制/JVM加载Class文件的原理机制?

JAVA类加载过程/类装载的执行过程/java类加载机制/JVM加载Class文件的原理机制&#xff1f; 类加载的过程主要分为三个部分&#xff1a;&#xff08;加链初&#xff0c;验准解&#xff09; 加载链接初始化 而链接又可以细分为三个小部分&#xff1a; 验证准备解析 骚戴理解…

散点图适用于什么数据 thinkcell散点图设置不同颜色

在数据可视化的众多工具和技巧中&#xff0c;散点图是一种极为有效的方式&#xff0c;能够揭示变量之间的关系&#xff0c;尤其是在探索数据集的相关性、分布趋势、集群现象时。而在众多助力于制作高质量散点图的工具中&#xff0c;think-cell插件以其高效的操作和丰富的功能&a…

重定向与追加

1、>和>> > 【重定向】 如果文件不存在&#xff0c;则创建&#xff0c;并将内容输入到文件&#xff1b; 如果文件存在&#xff0c;则先清空文件&#xff0c;然后将内容输入到文件&#xff1b;>> 【追加】 如果文件不存在&#xff0c;则创建&…

自监督学习self-supervised learning

Tags: #tutorial #machine-leanring #self-supervised 目录&#xff1a; The Importance of Self-Supervised Learning Popular Learning Methods Introduction to Self-Supervised Learning 1. The Inportance of Self-Supervised Learning 监督学习(supervised learnin…

【面试】tomcat类加载机制

目录 1. 说明2. 主要类加载器2.1 Bootstrap类加载器2.2 Common类加载器2.3 Catalina类加载器2.4 Shared类加载器2.5 Web应用类加载器2.5 JSP类加载器 3. 图示4. 特点5. 加载顺序6. 面试题 1. 说明 1.tomcat的类加载机制是违反了双亲委派原则的&#xff0c;对于一些未加载的非基…

初识指针3の学习笔记

目录 1>>前言 2>>冒泡排序 3>>二级指针 4>>指针数组 5>>指针数组模拟二维数组 6>>结语 1>>前言 今天我会继续分享一些我做的笔记&#xff0c;以及我对指针的理解&#xff0c; 后续会持续分享指针几天&#xff0c;毕竟指针的内…

实验室安全分级分类管理系统在高校中的具体应用

盛元广通高校实验室安全分级分类管理系统的构建&#xff0c;旨在通过科学合理的管理手段&#xff0c;提高实验室的安全水平&#xff0c;保障师生的人身安全&#xff0c;防止实验事故的发生。这一系统通常包括实验室安全等级评估、分类管理、风险控制、安全教育与培训、应急响应…

[Qt][绘图][上]详细讲解

目录 0.为什么&#xff1f;1.绘图API核心类2.设置画笔3.设置画刷4.设置画家1.移动画家位置2.保存/加载画家的状态 0.为什么&#xff1f; 虽然Qt已经内置了很多的控件&#xff0c;但是不能保证现有控件就可以应对所有场景&#xff0c;很多时候&#xff0c;需要更强的"定制…

第N8周:使用Word2vec实现文本分类

本文为365天深度学习训练营 中的学习记录博客原作者&#xff1a;K同学啊 一、数据预处理 任务说明: 本次将加入Word2vec使用PyTorch实现中文文本分类&#xff0c;Word2Vec 则是其中的一种词嵌入方法&#xff0c;是一种用于生成词向量的浅层神经网络模型&#xff0c;由Tomas M…

spring boot学习第二十篇:使用minio上传下载文件获取文件路径

先安装好minio&#xff0c;参考&#xff1a;window10安装minio-CSDN博客 1、pom.xml文件添加依赖&#xff1a; <!-- 操作minio的java客户端--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.…

C语言:ifswitch分支语句

目录 前言 一、if语句 1.1 if 1.2 else 1.3 嵌套if 1.4 悬空else问题 二、switch语句 2.1 if语句和switch语句的对比 2.2 switch语句中的default 前言 C语⾔是结构化的程序设计语言&#xff0c;这里的结构指的是顺序结构、选择结构、循环结构&#xff0c;C语言是能够实…

大模型之战-操作数据表-coze

工作流直接操作数据库啦【何时可以直接访问自己的数据库呢】 1&#xff0c;第一步创建一个bot智能体 1.1&#xff0c;bot中创建数据库表&#xff1a; 1.2&#xff0c;智能体可以通过对话&#xff0c;操作表&#xff1b;【增加&#xff0c;筛选查询等】 1.2.1&#xff0c;增加…

视频美颜SDK与直播美颜工具的开发详解与技术优化

本篇文章&#xff0c;小编将为开发者提供一份详细的美颜指南。 一、视频美颜SDK的核心功能 视频美颜SDK是一种嵌入式软件开发工具包&#xff0c;允许开发者在应用中轻松实现实时美颜效果。其核心功能主要包括&#xff1a; 1.实时磨皮 2.美白功能 3.瘦脸与大眼 4.智能滤镜…

链式结构二叉树的应用

一、求二叉树节点的个数 思路1&#xff1a;将一棵二叉树分成根节点和它的左右子树&#xff0c;其左右子树又可以分成根节点和左右子树&#xff0c;运用函数递归的方式统计根节点的数量&#xff0c;将根节点的数量相加。 比如这颗二叉树&#xff0c;1是根节点&#xff0c;size&…

自闭症表现的全方位解读

自闭症&#xff0c;一种神经发育障碍&#xff0c;影响着许多儿童和家庭的生活。了解自闭症的表现对于早期诊断、干预和支持这些孩子至关重要。 自闭症的表现形式多样&#xff0c;且在不同个体之间可能存在较大差异。社交互动障碍是自闭症的核心症状之一。自闭症儿童往往在与人建…