CAPL学习之路-关键字
在capl中,關鍵字具有特殊的含義和用途,因此,不得將關鍵字用作變量或函數的名稱
聲明數據類型的關鍵字
可以用不同的關鍵字,聲明或引用不同類型的數據
byte
聲明一個字節的變量
word
聲明兩個字節的變量
dword
聲明四個字節的變量
int
聲明兩個字節的整數
long
聲明四個字節的變量
qword
聲明八個字節的變量
char
聲明一個字符串
float
聲明一個浮點數,8個字節
double
聲明一個浮點數,8個字節
定義一個結構體或枚舉類型
struct
struct Data { int type; long l; char name[50]; };enum
enum State { State_Off = -1, State_On = 1 };聲明消息/信號
message
capl程序要在總線上傳輸的CAN報文是用關鍵字message聲明的
兩種聲明方式:
linFrame
capl程序要在lin線上傳輸的lin幀是用關鍵字linFrame聲明的
dbMsg *
聲明一個dbc類型的消息
這里有三種使用方式:
還有dbNode等關鍵字,用來聲明dbc里的其他參數
signal *
聲明一個dbc類型的信號
這里也提供了一個lookupSignal的方法
signal * dbcsignal; dbcsignal = lookupSignal("EngineSignal");serviceSignal *
用來聲明數據庫里SOME/IP服務信號,也有一個lookup的方法
類似的還有很多,比如:serviceSignalData */serviceSignalNumber * /serviceSignalString *
聲明診斷服務
diagRequest
聲明診斷請求,具體用法見公眾號其他文章
用cdd里的診斷請求聲明
diagRequest Door.defaultSessionStart req;diagResponse
聲明診斷響應,具體用法見公眾號其他文章
很好玩的是,請求的響應也是用cdd里的診斷請求來聲明
diagResponse Door.defaultSessionStart resp;聲明系統變量或計時器
sysvar *
聲明系統變量
類似的還有:sysvarInt */sysvarFloat */sysvarString *等
timer
聲明一個定時器,時間單位為秒
timer t_sendmsg;類似的還有:msTimer,聲明毫秒級定時器
定義一個test case/test function
testcase
定義一個test case
testcase mytestcase() { }testfunction
定義一個test function,它能被用在test case或test sequence中
其他
this
在接收CAN對象或系統變量或環境變量的回調事件中,可以用this來指定這個接收的對象
on message 100 { byte byte_0; byte_0 = this.byte(0); }$
如果想直接給信號賦值,必須要在信號的前面加一個$符號
$EngineSpeed = 500.0;.raw
讀取信號的原始值
EngineMsg.EngineSpeed.raw類似的還有.phys,讀取信號的物理值
if, else, switch, case, default, for, while, continue, break, return都是關鍵字
以上,就是capl中關鍵字的內容,請幫忙點贊或轉發哦
總結
以上是生活随笔為你收集整理的CAPL学习之路-关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三级联动下拉列表的开发过程与范例
- 下一篇: 被广告拦截插件坑了