zoukankan      html  css  js  c++  java
  • CANOE入门(二)

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

    tmp95

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

    tmp9B

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

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

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

    tmpA6

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

    tmpA7

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

    tmpAB

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

    tmpAD

    运行刚刚的那个例子你会发现,按一下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启动,发送消息

    tmp12

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

    tmp1B5

    tmp1B6

    tmp1B7

    tmp1B9

    tmp1BA

    tmp1BB

    tmp1BC

    tmp1BD

    tmp1BE

    tmp1C0

    tmp1C1

    tmp1C2

    tmp1C3

    tmp1C4

    tmp1C5

    tmp1C6

    tmp1C7

    tmp1C8

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

  • 相关阅读:
    Windows Server 2003 SP2(32位) 中文版 下载地址 光盘整合方法
    用Recycle()方法对Java对象的重要性
    Lotus中千奇百怪的 $$
    Developing a simple application using steps "User Decision" and "Mail"(1) 沧海
    沟通中的情绪管理(演讲稿) 沧海
    人只有在压力之下,才可能成功,没做一件事,都必须成功,不许言败 沧海
    什么是IDOC,以及IDOC的步骤 沧海
    VS2008 Professional Edition CHS中的deffactory.dat读取错误 沧海
    Including custom text in the step "User Decision" 沧海
    SAP Upgrade Strategy 沧海
  • 原文地址:https://www.cnblogs.com/isAndyWu/p/9842834.html
Copyright © 2011-2022 走看看