前言:使用CPAL往往想要发送周期性的报文这时就需要定时器来完成周期性报文的发送。关于报文的发送,会有下面的章节介绍,本章主要讲解定时器的操作。

1:定时器的种类。

在CAPL中定时器分两种:一种是以秒为单位的定时器,另外一种是以毫秒为单位的定时器.

2.首先需要在Variables中定义定时器变量,如:

定义完成定时器变量后要定义定时器的处理函数

On timer 定时器{

}

如下图

定义完定时器变量后,还要定义定时器的周期,也就是多久触发一次定时器处理函数。

一般定时器周期的定义需要在CAPL启动时定义,当然,也可以在需要启动定时器再定义也是可以的。这里以启动时定义做为例子。

CAPL启动时要处理的事情可以放在on start中处理,如下图

设置定时器周期需要调用SetTimer来完成,它对毫秒定时器和秒级定时器是一样的。但是设置的参数分别代表毫秒和秒。

实现让定时器每个周期加1,分别定义了两个Varible来记录定时器处理函数被调用的次数。

添加处理函数如下:

运行CanOE并在Write窗口中观查

可以发现定时器只执行了一次。在CAPL中SetTimer每定义一次定时器的周期,它只会执行一次相应的处理函数。所以要想连续的执行定时器处理函数,需要在定时器处理函数中再次调用SetTimer,如下图:

修改后运行CANOE,可以看到毫秒定时器每执行5次,秒级定时器执行1次。

CAPL基础篇-----CAPL中的定时器操作相关推荐

  1. CAPL基础篇-----CAPL中库文件的作用

    前言:在正常的开发中,程序并不是写在同一个CAPL文件中的,而是会根据功能的不同分别创建不同的模块来完成相应的功能.这里就涉及到变量或者Funcation在不同CAPL文件中的共享的问题了.CAPL中 ...

  2. CAPL基础篇-----CAPL中如何对系统变量事件响应

    前言:上一章节中通过系统变量可以实现CAPL和Panel之前的交互,这是针对报文是周期性报文的一种解决方案.如果需要当系统变量发生变化时再发出报文该如何操作呢? 针对上面的问题,需要用到CAPL中针对 ...

  3. CAPL基础篇-----CAPL中的循环

    前言: CAPL中循环包括For循环和while循环. 循环主要是将重复的代码精简化 如常用的报文的CheckSum的计算. 现在来计算报文的CheckSum并将其放在最后一个字节 代码如下图: 重新 ...

  4. CAPL基础篇-----CAPL与Panel的交互

    前言:在测试时,有时并不想直接修改CAPL,同时也并不是所有的人都需要开发CAPL来进行测试,可能是由一个人来进行相关脚本的开发,其他人根据需要直接操作就可以了,而直接给CAPL脚本往往不是很友好,大 ...

  5. 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一

    数据库应用程序开发基础篇-- .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来 ...

  6. 数据结构与算法之美笔记——基础篇(中):树,二叉树,二叉查找树,平衡二叉查找树,红黑树,递归树,堆

    树: A 节点就是 B 节点的父节点,B 节点是 A 节点的子节点.B.C.D 这三个节点的父节点是同一个节点,所以它们之间互称为兄弟节点.我们把没有父节点的节点叫作根节点,也就是图中的节点 E.我们 ...

  7. python hstack_Python学习之Numpy速成记——基础篇(中)

    上节课我们一起学习了Numpy的基本功能和它的部分基础知识.今天我们一起接着来学习剩下的部分. 5.一维数组的索引和切片 (1)一维数组的切片操作与Python列表的切片操作很相似.例如,我们可以用下 ...

  8. list选取多个元素 python_python基础篇:list列表的操作大盘点

    Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据.在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中的Pytho ...

  9. NR基础篇下——中值滤波、多级中值滤波、多级中值混合滤波、加权中值滤波、中值有理滤波

    上一篇分享了一些均值滤波相关的算法,均值滤波作为一种线性滤波器,在滤除噪声的同时也会导致边缘模糊问题.而且均值滤波对高斯噪声的效果很好,但是对于椒盐噪声的效果就很一般.但是中值滤波作为一种顺序滤波器, ...

最新文章

  1. SpringMVC根据客户端的不同的请求使用不同的VIEW进行响应
  2. ldap添加自定义字段
  3. 64位计算机安装32位,64位电脑装32位系统,小编教你64位电脑怎么装32位系统
  4. CodeForces - 160D Edges in MST(思维+tarjan/树链剖分+线段树)
  5. 从内存中加载DLL Delphi版(转)
  6. yii2 ajax访问控制器,如何在yii2中运行控制器动作作为ajax
  7. Ecipse快捷键的使用
  8. 在递归中使用Continuation来避免StackOverflow(查找第K大的数)
  9. pytorch 基于sqs2sqs的中文聊天机器人
  10. 【QGIS】【OsGeo4w】安装方法
  11. python图片中文字识别
  12. 基于Android系统手机通讯录管理软件的设计与开发
  13. 拉格朗日插值法(理论详解)
  14. 与计算机相关的格言,与机器相关的经典名言
  15. 10-230 查询计算机工程专业学生选修但软件工程专业学生没有选修的课程
  16. 【微信小程序】轮播图——swpier组件
  17. 都说幕布适合写作,但是你知道 Effie 吗?
  18. Excel VBA实例
  19. CVPR 2022论文分享会来了!ResNet/Swin/DenseNet等作者重磅嘉宾探讨好论文是怎么炼成的?...
  20. Android自动化测试,5个必备的测试框架

热门文章

  1. Unable to find the VMX binary ‘D:\新建文件夹1\vmware-vmx.exe‘.
  2. 浅谈SQL注入漏洞原理及利用方式
  3. 【matlab报错问题个人总结】数组超出索引维度
  4. 基于JAVAWeb的学生宿舍公寓后台管理系统
  5. 专访枫叶租车联合创始人兼CEO金晓磊:枫叶的精神内核是热爱和创新
  6. “在XML文件中给代码加注释”请注意注释的位置
  7. 艾美捷RPMI-1640培养基L-谷氨酰胺的参数和配方
  8. Homebrew安装使用卸载
  9. c语言 原子 字符串,Atomic operations library(原子操作库)
  10. Flutter:Dialog对话框及自定义Dialog