版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、CAPL程序編寫說明(一),鄒山飛 2015.11.06,,一、CAPL簡介: CAPL:CAN programming language;類C語言,用于調(diào)試與測試用。二、CAPL語言基礎(chǔ)1、CAPL事件的基本類型,2、周期發(fā)送報(bào)文 3、變量命名
2、 準(zhǔn)則:意義相關(guān)及大小寫,,mstimer timer1; //定義 timer1 message 0x123 msg; //定義 0x123 on start { settimer(timer1,10); }
3、 on timer timer1 { msg.dlc=8; output(msg); settimer(timer1,10); //周期發(fā)送的實(shí)現(xiàn)},Eg: int FlagAck; float NmId;,4、環(huán)境變量備注:
4、CANoe標(biāo)題欄“configuration”下可以定義系統(tǒng)變量;環(huán)境變量使用dbc定義,為獨(dú)立的文件,后續(xù)的編程以環(huán)境變量為主。,void MainTest(){ if(getvalue(TG2_TC1)==1) TG2_TC1(); if(getvalue(TG2_TC2)==1) TG2_TC2();}②獲取測試參數(shù)float NmId;NmId=getvalue(NmId);,①選擇測試項(xiàng)目on en
5、vVar TG2_SelectAll{ if (@TG2_SelectAll==1) { @TG2_TC1=1; @TG2_TC2=1; @TG2_TC3=1; } else { @TG2_TC1=0; @TG2_TC2=0; @TG2_TC3=0; },5、標(biāo)志的使用 CAN程序很
6、大一部分判定工作都在On message 里面實(shí)現(xiàn);且判定基本都存在一定的前提條件;這些前提條件可以使用標(biāo)志位實(shí)現(xiàn)。 見最后一章實(shí)例!,,,三、腳本編寫步驟1、環(huán)境變量數(shù)據(jù)庫建立(1) 環(huán)境變量的作用: 選擇測試項(xiàng)目; 獲取測試參數(shù);(如:測試時(shí)間) 面板顯示控制。(2)環(huán)境變量數(shù)據(jù)庫的建立: 新建一個(gè)DBC文件; 右鍵“Environment variables”,選擇“New”; 編輯環(huán)境變量的
7、“名稱”,“類型”,“初始值”,“最小值”,“最大值”。 !“名稱”最好與內(nèi)容關(guān)聯(lián);如網(wǎng)絡(luò)管理基址可命名為“BaseId”。,,,2、面板制作并關(guān)聯(lián)環(huán)境變量;(1)點(diǎn)擊CANoe工具欄的Panel designer,添加控件; 主要用到的控件有“Check Box”,“Input/Output Box”,“Picture Box”。(2)編輯控件屬性,關(guān)聯(lián)相關(guān)環(huán)境變量。,,,3、測試環(huán)境建立(1)新建腳
8、本 打開CANoe File---New configuration(2)環(huán)境建立 View---Test Setup---Test Environmets for Test Modules; 右鍵,New Test Environmets ,并命名; 右鍵上面的“New Test Environmets”, Insert CAPL Test Module; 右鍵上面的“CAPL Test Module”,ex
9、ecution;生成測試模塊(如右圖); 點(diǎn)擊Edit Test Module(右圖紅框),進(jìn)行“.CAN文件”編輯。(3).CAN文件編寫,,,四、實(shí)例展示1、實(shí)現(xiàn)目的:(1)車速儀表;(2)診斷響應(yīng)判斷。,,,2、DBC建立:(1)車速DBC使用DX7 DBC;(2)添加相關(guān)環(huán)境變量: 測試選項(xiàng)選擇:TG1、TG1_TC1、TG1_TC2; 儀表車速:SpdDisplay。3、框架程序:,測試用例選
10、擇程序: on envVar TG1 { if(@TG1==1) //等價(jià)于if(getvalue(TG1)==1) { putvalue(TG1_TC1,1); //等價(jià)于@TG1_TC1=1; @TG1_TC2=1;
11、 } else { @TG1_TC1=0; @TG1_TC2=0; } }建立測試用例: Testcase TG1_TC1(); Testcase TG1_TC2();主程序: Void MainTest() { if(getvalue(TG1_TC1)==1) TG1_TC1();
12、 if(getvalue(TG1_TC2)==1) TG1_TC2(); },測試用例選擇程序單獨(dú)一個(gè)控件模塊,,4、車速報(bào)文發(fā)送:(1)目的:以一定周期實(shí)現(xiàn)車速逐漸累加,至500后,返回0。,周期累加并發(fā)送報(bào)文:on timer timer1{ if(i<500) i=i+1; else i=1; output(msg); settimer(timer1,10);
13、},(2)車速值與對應(yīng)的報(bào)文值關(guān)系: DBC解析(此為逆推,后文順推部分做解釋)/通過IG模塊分析規(guī)律。,If(i%2==0){ msg.byte(4)=i/2; msg.byte(5)=0;}else{ msg.byte(4)=(i-1)/2; msg.byte(5)=0x80;},,,,on timer timer1{ if(i<500) i=i+1;
14、 else i=1; If(i%2==0) { msg.byte(4)=i/2; msg.byte(5)=0; } else { msg.byte(4)=(i-1)/2; msg.byte(5)=0x80; } output(msg); settimer(t
15、imer1,10);},,5、車速顯示:(1)通過報(bào)文解析車速。(2)程序,on message 0x212{ j=(this.byte(5)>>3&0x1F)|(this.byte(4)>3)&0x1F; //high byte spd=0.0625*(k*256+j); putvalue(SpdDisplay,spd);},,T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論