ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CAPL学习之路-关键字

2021-07-10 23:04:16  阅读:333  来源: 互联网

标签:字节 dbc 之路 CAPL 关键字 消息 test 声明


在capl中,关键字具有特殊的含义和用途,因此,不得将关键字用作变量或函数的名称

1.声明数据类型的关键字:可以用不同的关键字,声明或引用不同类型的数据

  1. byte  声明一个字节得变量
  2. word 声明两个字节得变量
  3. dword 声明四个字节得变量
  4. int 声明两个字节的整数
  5. long  声明4个字节的变量
  6. qword 声明8个字节的变量
  7. char 声明一个字符串
  8. float  声明一个浮点数,8个字节
  9. double 声明一个浮点数,8个字节

2.定义一个结构体或枚举类型

struct Data {
int type;
long l;
char name[50];
}; 
enum State { State_Off = -1, State_On = 1 };

3.声明消息/信号 

 1.capl程序要在总线上传输的CAN报文是用关键字message声明的

两种声明方式:

  1. 用dbc里的消息名声明消息
  2. message Ignition_on msg_wakeup; 用dbc里的消息名声明消息
    message 0x5f0 msg_wakeup; 用消息id声明消息

linFrame    :capl程序要在lin线上传输的lin帧是用关键字linFrame声明的

dbMsg *    声明一个dbc类型的消息

这里有三种使用方式:

  1.如果你想传入一个dbc里的message名作为形参,可以使用这种方式,调用时直接把dbc里的消息传进去即可

void function1(dbMsg * dbcmsg) 

 2.也可以先声明一个dbc消息,然后用=把dbc里的消息EngineData赋值给它

dbMsg * dbcmsg;
dbcmsg = EngineData;

  3.还可以用函数lookupMessage函数赋值dbc消息,传入的字符串是dbc里消息名

dbMsg * dbcmsg;
dbcmsg = lookupMessage("EngineData")

还有dbNode等关键字,用来声明dbc里的其他参数

signal *

这里也提供了一个lookupSignal的方法

signal * dbcsignal;
dbcsignal = lookupSignal("EngineSignal");  

serviceSignal *

用来声明数据库里SOME/IP服务信号,也有一个lookup的方法

类似的还有很多,比如:serviceSignalData */serviceSignalNumber * /serviceSignalString *

4.声明诊断服务

diagRequest

diagRequest Door.defaultSessionStart req; 

diagResponse

diagResponse Door.defaultSessionStart resp

5.声明系统变量或计时器

sysvar *  :声明系统变量     类似的还有:sysvarInt */sysvarFloat */sysvarString *等

timer  :声明一个定时器,时间单位为秒   类似的还有:msTimer,声明毫秒级定时器

timer t_sendmsg;  

6.定义一个test case/test function

定义一个test case

testcase mytestcase()
{
}  

testfunction    :定义一个test function,它能被用在test case或test sequence中

7.其他

this  :

在接收CAN对象或系统变量或环境变量的回调事件中,可以用this来指定这个接收的对象

on message 100
{
byte byte_0;
byte_0 = this.byte(0);

$

如果想直接给信号赋值,必须要在信号的前面加一个$符号  

$EngineSpeed = 500.0; 

.raw   :读取信号的原始值   类似的还有.phys,读取信号的物理值

EngineMsg.EngineSpeed.raw

if, else, switch, case, default, for, while, continue, break, return都是关键字

 

 

 

 

  

标签:字节,dbc,之路,CAPL,关键字,消息,test,声明
来源: https://www.cnblogs.com/litao201403/p/14995190.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有