转自:https://www.cnblogs.com/dongdonghuihui/archive/2012/09/26/2704619.html

CANOE入门(二)

CAPL就是Communication Application Programming Laguage的缩写,CAPL类似于C语言的语法,因此所有的语法请参考C语言教程,这里不在这里进行详述,关于C语言,毫无疑问的,首先推荐大家看谭浩强老师的书,经典中的经典,看完这本C语言应该没问题了。CAPL在CANoe中起到重要的作用,他将所有的部分联系起来(请看下图)现在我们给予上一节的基础上,来着重介绍CAPL编程。

CAPL语法是C语言的,又有一些C++的特性,this指针,事件等,对于事件的理解可以学习任意一种面对对象语言,首推C#.NET,可以参考我的博客学习,当然这个似乎比CAPL本身更加难,事件也更加多,但这并不妨碍对事件的理解,其中的事件类型如下图:

下面来几个小例子帮助理解

来个CANoe版本的hello world!来兴奋一小下吧。开整~

在打开CANoe,新建个工程,在Simulation Setup中加个Network node ,点铅笔,忘了吗,上一节刚讲过,右键Start->New,键入如下代码

编译后,关闭CAPL Brower。运行CANoe工程,结果如下,哇塞成功咯,好有成就感啊。

这个例子似乎跟CAN通讯没啥太大关系啊,好,我们接下来再做一个例子

运行结果如下,按键盘b键,将发送一个CAN消息,连dlc是啥都不知道的同学,推荐先学习一下CAN基础知识,推荐瑞萨公司的《CAN入门书》,讲的非常的好。

运行刚刚的那个例子你会发现,按一下b,只发送一条消息,但在实际应用中CAN消息都是循环连续发送的,我们要对刚刚的程序进行一些修改。完成这样的功能。程序如下:

variables
{
message 0x400 msgA = {dlc=1};
mstimer timerA;
int conditionA = 0;
}

on key 'a'
{
conditionA = !conditionA;
if(conditionA ==1)
{
setTimer(timerA,200);
}
}

on timer timerA
{
if(conditionA==1)
{
setTimer(timerA,200);
}
msgA.byte(0) = msgA.byte(0)-1;
output(msgA);
}

运行结果如下:按A键,Timer启动,发送消息

接下来我们一起来看总结一下CAPL编程的要点:

CAPL编程的学习,需要通过不断在实践中的积累,此外别无他法。以上真真儿的只是入门,如果你真心看过,不如你真心写过。

CANoe 入门 _CAPL编程相关推荐

  1. 深入分析Spark任务调度的原理--Java后端同学入门Spark编程系列

    作者:陌北有棵树,Java人,架构师社区合伙人! 之前写了一篇:<我作为Java后端,分享一下入门Spark编程的经历!> 上篇是Spark入门的第一篇,写了一些关于Spark编程中RDD ...

  2. qt5编程入门 第2版_2小时入门SparkSQL编程

    一,RDD,DataFrame和DataSet DataFrame参照了Pandas的思想,在RDD基础上增加了schma,能够获取列名信息. DataSet在DataFrame基础上进一步增加了数据 ...

  3. python编程零基础-如何零基础入门Python编程?

    Python目前已经成为最受欢迎的编程语言之一,吸引了一大批粉丝,但是很多人在要跨入的时候犹豫了,原因竟然是觉得零基础学习Python太难了,真的是这样吗?零基础入门Python编程学习有什么好的技巧 ...

  4. python怎么样才算入门编程-新手如何快速入门Python编程?听过来人说经验!

    新手如何快速入门Python编程?站在别人的肩膀上总是要快些的,如果你不借鉴前人的经验,那么前人踩过的坑你也会踩,所以来看看吧: Python是一种编程语言,可以用来做网站.写自动化测试脚本.做数据分 ...

  5. python如何编程-如何入门Python编程

    Python目前已经成为受欢迎的编程语言之一,吸引了一大批粉丝,但是很多人在要跨入的时候犹豫了,原因竟然是觉得学习Python太难了,真的是这样吗?入门Python编程学习有什么好的技巧吗? Pyth ...

  6. python快速编程入门黑马-新手如何快速入门Python编程?/开发python入门教程

    Python从入门到实践的教程是什么? 第一阶段Python与Linux数据这是Python的入段,也是帮助零基础学员打好基础的重要阶段,让零基础学员可以具备基础的编程能力,并掌握MySQL进阶内容. ...

  7. 0基础如何入门Python编程

    Python目前已经成为最受欢迎的编程语言之一,吸引了一大批粉丝,但是很多人在要跨入的时候犹豫了,原因竟然是觉得零基础学习Python太难了,真的是这样吗?零基础入门Python编程学习有什么好的技巧 ...

  8. 三菱plc编程实例3000_三菱入门PLC编程PLC系统程序包括哪些

    三菱入门PLC编程-PLC系统程序包括哪些 包装机的种类繁多,分类方法很多.从不同的观点出发可有多种,按机械种类分为:液体包装机.粉剂包装机.颗粒包装机.贴体包装机.酱类包装机.电子组合秤包装机.枕式 ...

  9. python list长度_python的入门阶段 编程思维100题 我跟罗志祥没关系

    """python的入门阶段 编程思维100题(适合学习了1周--1个月的新人) 第五题:我跟罗志祥没关系 朋友圈大家每天都看,那用python如何实现它那? 很简单,朋 ...

最新文章

  1. Linux之软件安装 apt-get
  2. 深度学习中的反向卷积
  3. linux虚拟网卡名不是eth0,linux不能启动虚拟网卡eth0
  4. Deepin/Linux系统使用GUFW可视化管理、配置防火墙规则
  5. 快速了解Python并发编程的工程实现(下)
  6. Abp CLI 上线
  7. Lost Cows(树状数组)
  8. 前端学习(3331):闭包的形式7
  9. C++之指针探究(十四):回调函数
  10. Luarocks 安装艰难过程
  11. 华为路由器时间同步_华为路由器肿么和互联网时间同步
  12. 你的成就只能代表着你过去的努力程度
  13. IBM智慧存储厦门巡展发布Storwize RAS方案
  14. 《东周列国志》第三十六回 晋吕郤夜焚公宫 秦穆公再平晋乱
  15. 数据库字典 - 微擎开发文档
  16. 安装pip、pip3
  17. 安化云台山风景区三个景点,轻松游玩山水之间的风光
  18. 小程序项目:微信小程序美容理发店预约系统app——计算机毕业设计
  19. java初始化二维数组的三种方式
  20. C#_e.Handled用法

热门文章

  1. 第十三届蓝桥杯C++B组国赛I题——齿轮 (AC)
  2. python安装第三方包遇到的一些问题
  3. B站视频内容复利,品牌投放中小UP主的营销机遇在哪?
  4. 计算机博弈问题一直是什么领域,计算机博弈是什么
  5. AEJoy —— 表达式之闪烁光标的打字机效果(二)【JS】
  6. 15种顶级分析思维模型。
  7. Google Play In-app Billing
  8. Ext grid columns隐藏列
  9. 50 岁的 C 语言,掌控 Windows、Linux、macOS 等操作系统半边天
  10. 打败你的十五个坏习惯