0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CAPL編程語(yǔ)言快速入門

北匯信息POLELINK ? 2022-09-17 16:11 ? 次閱讀

提到CAPL,相信各位一定不陌生,它是由Vector公司開發(fā)的類似于C語(yǔ)言的面向過程編程語(yǔ)言,是CANoe和CANalyzer中可用的編程語(yǔ)言。CAPL中程序塊的執(zhí)行由事件控制,在專用的編譯器中開發(fā)和編譯,這樣可以訪問數(shù)據(jù)庫(kù)中的所有對(duì)象以及系統(tǒng)變量,作為汽車電子工程師,在工作中會(huì)經(jīng)常用到。

CAPL可以在CANoe界面Tools>>CAPL Browser中打開。

pYYBAGMlf1eAItJYAACC7Felt7Q468.png

圖1CAPL打開方式

CAPL界面由功能區(qū)、程序框架瀏覽樹、輸出窗口、編輯區(qū)、訪問區(qū)五部分組成。

poYBAGMlf1iAeZYtAAKe0OLiot4024.png

圖2CAPL界面

顧名思義,程序編輯區(qū)就是編寫CAPL腳本的區(qū)域;程序架構(gòu)瀏覽樹起目錄的作用,可以把編輯區(qū)定位到編寫的事件或函數(shù)類型的語(yǔ)句;輸出窗口可以輸出編譯過程中的事件和使用搜索時(shí)定位到的結(jié)果;訪問區(qū)能夠訪問到CANoe工程加載的數(shù)據(jù)庫(kù)中的信號(hào)、創(chuàng)建的系統(tǒng)變量以及CAPL函數(shù)庫(kù)中的語(yǔ)句,直接從右側(cè)訪問區(qū)拖拽到中間編輯區(qū)使用(注意:工程創(chuàng)建路徑中不能有中文,否則訪問不到數(shù)據(jù)庫(kù)文件)。

功能區(qū)由五部分構(gòu)成,首先是File菜單欄,與大多數(shù)軟件相同,它是文件創(chuàng)建、保存、加載、設(shè)置等功能區(qū)域。

pYYBAGMlf1eAVJfdAAGEX2DbJ08313.png

圖3File菜單欄

Home功能區(qū)提供了CAPL編譯常用功能,包括代碼編譯、查找、替換、屏蔽、取消屏蔽等功能。

pYYBAGMlfx-AKr85AACc3nFrtCw088.png

圖4Home功能區(qū)

Filter功能區(qū)的作用是管理CAPL的函數(shù)庫(kù),可以在函數(shù)訪問區(qū)中屏蔽掉不需要的函數(shù)。

pYYBAGMlfyOABh6TAACwHg2SLls833.png

圖5Filter功能區(qū)

Debug功能區(qū)是調(diào)試的區(qū)域,提供了一些基本的調(diào)試操作,一般情況下不通過debug模式來調(diào)試腳本?;旧暇幾g一次,存在錯(cuò)誤可以通過Output輸出窗口獲得錯(cuò)誤類型并進(jìn)行更改。如果腳本編譯成功之后,仍然不能滿足測(cè)試步驟的輸出,一般會(huì)使用Write窗口進(jìn)行調(diào)試。

poYBAGMlfx2AFl_XAAB5gxk1EKA062.png

圖6Debug功能區(qū)

Layout功能區(qū)主要是針對(duì)CAPL用戶的頁(yè)面展示。例如進(jìn)行水平分區(qū)、垂直分區(qū)等操作方便用戶進(jìn)行腳本編寫。

poYBAGMlfx6AG76sAACDVhMSLCQ677.png

圖7Layout功能區(qū)

CAPL應(yīng)用場(chǎng)景:

  1. 節(jié)點(diǎn)仿真

關(guān)聯(lián)Simulation Setup中的ECU節(jié)點(diǎn),實(shí)現(xiàn)ECU節(jié)點(diǎn)仿真和整車網(wǎng)絡(luò)仿真。

pYYBAGMlfyCAL1uTAACDQh9-i-U949.png

圖8SimulationSetup窗口

  1. 測(cè)試功能

關(guān)聯(lián)Simulation Setup中的Test Module模塊或是Test菜單中的Test Setup,結(jié)合TSL(Test Service Library,測(cè)試服務(wù)庫(kù))進(jìn)行測(cè)試功能開發(fā)。

poYBAGMlfyGAECgkAAB4fih5Id8151.png

圖9TestSetup窗口

  1. 分析功能

關(guān)聯(lián)Measurement Setup窗口功能模塊中的Program Node,實(shí)現(xiàn)總線過濾、分析功能。

poYBAGMlfyKAHqMMAACe4NminBU794.png

圖10MeasurementSetup窗口

CAPL腳本結(jié)構(gòu):

一個(gè)完整的CAPL腳本由三部分組成:變量、各種事件和自定義函數(shù)。

pYYBAGMlfyOABnu2AAEOt1t_2TM813.png

圖11CAPL的三部分

CAPL的事件類型包含三種:總線事件、屬性事件、時(shí)間事件。CAPL常用的事件類型如下圖所示。

poYBAGMlfySAIg5xAALJDR5IEYY494.png

圖12MeasurementSetup窗口

CAPL常用函數(shù):

下面以CANoe中Easy工程的light.can腳本為例介紹CAPL中的常用函數(shù),該腳本與Panel聯(lián)用實(shí)現(xiàn)轉(zhuǎn)向燈仿真。

pYYBAGMlfySAfjDVAAAyfIEcFVE402.png

圖13聲明全局變量

上圖是CAPL中的全局變量聲明,其中 ‘msTimer’為聲明以ms為單位的計(jì)時(shí)器;‘const int’為聲明int類型的常值變量,該變量的值無(wú)法改變;‘int’為聲明int類型的變量,該類型變量有符號(hào),長(zhǎng)度為2字節(jié)。

poYBAGMlfySALF5xAAAXlRWFibE461.png

圖14系統(tǒng)事件

onstart’是系統(tǒng)事件,測(cè)量開始執(zhí)行會(huì)觸發(fā)該事件,也就是點(diǎn)擊Start按鈕觸發(fā)。

poYBAGMlfymAd-DVAAChdCFAvV8120.png

圖15CAN消息事件

onmessage’是CAN消息事件,接收到指定消息時(shí)執(zhí)行?!?span style="color:rgb(0,112,192);">onmessageLightState’是對(duì)名字為L(zhǎng)ightState的報(bào)文反應(yīng),除直接使用字符串外,還可以使用報(bào)文ID指定觸發(fā)報(bào)文?!?span style="color:rgb(0,112,192);">onmessage123’是對(duì)ID為123(dec)的報(bào)文反應(yīng);‘on message0x123’ 是對(duì)ID為123(hex)的報(bào)文反應(yīng);‘on message*’是對(duì)所有的報(bào)文反應(yīng);‘on message100-200’是對(duì)ID為100-200間的報(bào)文反應(yīng)。

poYBAGMlfymAR7bTAABB-QqteBA941.png

圖15系統(tǒng)變量事件

onsysvarsysvar’是系統(tǒng)變量事件,指定的系統(tǒng)變量值改變時(shí)執(zhí)行。與之相對(duì)應(yīng)另一個(gè)系統(tǒng)變量事件是‘onsysvar_updatesysvar’,指定的系統(tǒng)變量值更新時(shí)執(zhí)行。

‘setTimer(msTimert,longduration)’是設(shè)置定時(shí)器函數(shù),他有兩個(gè)輸入參數(shù),第一個(gè)為聲明的定時(shí)器變量,第二個(gè)是設(shè)定的時(shí)間?!甤ancelTimer(msTimert)’是取消定時(shí)器函數(shù),入?yún)槎〞r(shí)器變量,該函數(shù)的作用為取消設(shè)定的定時(shí)器。

pYYBAGMlfymAPg__AAAkTOfb9bw335.png

圖16時(shí)間事件

ontimer’為時(shí)間事件,定時(shí)時(shí)間超過時(shí)執(zhí)行,它與設(shè)置定時(shí)器函數(shù)聯(lián)用。定時(shí)器通常應(yīng)用在實(shí)現(xiàn)某個(gè)任務(wù)循環(huán),在時(shí)間事件中寫入一個(gè)設(shè)置定時(shí)器函數(shù)實(shí)現(xiàn)循環(huán)。

pYYBAGMlfyaAI4IEAAAf0yAL3TE819.png

onkey’為鍵盤事件,被指定的鍵按下時(shí)執(zhí)行。該事件常用于腳本調(diào)試。

此外,‘write()’函數(shù)在調(diào)試腳本中也常使用,該函數(shù)基于C語(yǔ)言中的‘printf()’函數(shù),可以將文本消息輸出在write窗口中。

注:圖片來自Vector。

總結(jié):

北匯信息作為Vector中國(guó)的合作伙伴,始終專注于汽車電子領(lǐng)域的新技術(shù)和新產(chǎn)品,為整車廠和零部件企業(yè)提供完整的研發(fā)、測(cè)試解決方案,為工程師在汽車領(lǐng)域提供“趁手裝備“!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • CANoe
    +關(guān)注

    關(guān)注

    4

    文章

    64

    瀏覽量

    8604
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TCSH shell 編程入門

    ICer從業(yè)人員最先需要掌握的語(yǔ)言,就是linux shell語(yǔ)言。TCSH是ICer使用最多的Shell語(yǔ)言,可以說ICer入門語(yǔ)言從TC
    發(fā)表于 11-01 10:45 ?0次下載

    FPGA編程語(yǔ)言入門教程

    FPGA(現(xiàn)場(chǎng)可編程邏輯門陣列)的編程涉及特定的硬件描述語(yǔ)言(HDL),其中Verilog和VHDL是最常用的兩種。以下是一個(gè)FPGA編程語(yǔ)言
    的頭像 發(fā)表于 10-25 09:21 ?126次閱讀

    plc編程語(yǔ)言編程相關(guān)技巧有哪些

    PLC(可編程邏輯控制器)編程語(yǔ)言及相關(guān)編程技巧是工業(yè)自動(dòng)化領(lǐng)域中不可或缺的知識(shí)。 一、PLC編程語(yǔ)言
    的頭像 發(fā)表于 10-21 16:56 ?187次閱讀

    TMS320LF240x DSP的C語(yǔ)言和匯編代碼快速入門

    電子發(fā)燒友網(wǎng)站提供《TMS320LF240x DSP的C語(yǔ)言和匯編代碼快速入門.pdf》資料免費(fèi)下載
    發(fā)表于 10-18 10:14 ?0次下載
    TMS320LF240x DSP的C<b class='flag-5'>語(yǔ)言</b>和匯編代碼<b class='flag-5'>快速</b><b class='flag-5'>入門</b>

    【「?jìng)}頡編程快速上手」閱讀體驗(yàn)】+壹讀后感

    感謝電子發(fā)燒友論壇提供的讀書機(jī)會(huì),領(lǐng)略到華為公司開創(chuàng)的新語(yǔ)言:倉(cāng)頡編程 。 在閱讀《倉(cāng)頡編程快速上手》這本書后,我深受啟發(fā)。這本書猶如一把鑰匙,為那些渴望踏入
    發(fā)表于 09-06 20:12

    PLC的編程方式及編程語(yǔ)言

    在工業(yè)自動(dòng)化領(lǐng)域,PLC(Programmable Logic Controller,可編程邏輯控制器)因其強(qiáng)大的控制功能和靈活的編程方式而得到了廣泛應(yīng)用。PLC的編程方式和編程
    的頭像 發(fā)表于 06-27 14:08 ?570次閱讀

    PLC編程語(yǔ)言和C語(yǔ)言的區(qū)別

    在工業(yè)自動(dòng)化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語(yǔ)言和C語(yǔ)言各自扮演著重要的角色。盡管兩者都是
    的頭像 發(fā)表于 06-14 17:11 ?2359次閱讀

    如何快速入門FPGA

    快速入門FPGA可以遵循以下步驟: 理解FPGA基礎(chǔ)知識(shí): FPGA(Field Programmable Gate Array)即現(xiàn)場(chǎng)可編程門陣列,是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制
    發(fā)表于 04-28 09:06

    如何快速入門FPGA?

    快速入門FPGA可以遵循以下步驟: 理解FPGA基礎(chǔ)知識(shí): FPGA(Field Programmable Gate Array)即現(xiàn)場(chǎng)可編程門陣列,是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制
    發(fā)表于 04-28 08:54

    CAPL腳本使用介紹

    CAPL中也有類似于C語(yǔ)言中的回調(diào)函數(shù)的機(jī)制,如檢測(cè)報(bào)文周期和錯(cuò)誤幀的函數(shù)中就可以使用,當(dāng)周期超界或者總線出現(xiàn)錯(cuò)誤幀就會(huì)自動(dòng)調(diào)用回調(diào)函數(shù)執(zhí)行一些操作
    的頭像 發(fā)表于 04-01 11:23 ?1447次閱讀

    plc編程入門基礎(chǔ)知識(shí) plc編程語(yǔ)言有幾種

    PLC(Programmable Logic Controller)是可以根據(jù)預(yù)設(shè)邏輯程序自動(dòng)控制工業(yè)過程的電子設(shè)備。PLC編程語(yǔ)言是與PLC進(jìn)行交互的一種邏輯語(yǔ)言,用于編寫控制程序以實(shí)現(xiàn)自動(dòng)化控制
    的頭像 發(fā)表于 02-04 15:55 ?1500次閱讀

    腳本語(yǔ)言編程語(yǔ)言的區(qū)別

    腳本語(yǔ)言編程語(yǔ)言是計(jì)算機(jī)語(yǔ)言的兩個(gè)主要分類。盡管兩者都是用于編寫計(jì)算機(jī)程序的工具,但它們?cè)谠O(shè)計(jì)和運(yùn)行方式上存在一些顯著的區(qū)別。下面將詳細(xì)探討腳本語(yǔ)
    的頭像 發(fā)表于 11-22 14:33 ?2824次閱讀

    Python編程語(yǔ)言屬于什么語(yǔ)言

    Python編程語(yǔ)言屬于高級(jí)編程語(yǔ)言中的一種。它是一種通用、面向?qū)ο?、解釋?b class='flag-5'>編程語(yǔ)言。Pytho
    的頭像 發(fā)表于 11-22 14:31 ?1342次閱讀

    C語(yǔ)言編程入門教程

    電子發(fā)燒友網(wǎng)站提供《C語(yǔ)言編程入門教程.rar》資料免費(fèi)下載
    發(fā)表于 11-20 10:23 ?8次下載
    C<b class='flag-5'>語(yǔ)言</b><b class='flag-5'>編程</b><b class='flag-5'>入門</b>教程

    51單片機(jī)C語(yǔ)言編程入門學(xué)習(xí)資料

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)C語(yǔ)言編程入門學(xué)習(xí)資料.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 11:04 ?14次下載
    51單片機(jī)C<b class='flag-5'>語(yǔ)言</b><b class='flag-5'>編程</b><b class='flag-5'>入門</b>學(xué)習(xí)資料