在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CAPL編程語言快速入門

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

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

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

pYYBAGMlf1eAItJYAACC7Felt7Q468.png

圖1CAPL打開方式

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

poYBAGMlf1iAeZYtAAKe0OLiot4024.png

圖2CAPL界面

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

功能區由五部分構成,首先是File菜單欄,與大多數軟件相同,它是文件創建、保存、加載、設置等功能區域。

pYYBAGMlf1eAVJfdAAGEX2DbJ08313.png

圖3File菜單欄

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

pYYBAGMlfx-AKr85AACc3nFrtCw088.png

圖4Home功能區

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

pYYBAGMlfyOABh6TAACwHg2SLls833.png

圖5Filter功能區

Debug功能區是調試的區域,提供了一些基本的調試操作,一般情況下不通過debug模式來調試腳本。基本上編譯一次,存在錯誤可以通過Output輸出窗口獲得錯誤類型并進行更改。如果腳本編譯成功之后,仍然不能滿足測試步驟的輸出,一般會使用Write窗口進行調試。

poYBAGMlfx2AFl_XAAB5gxk1EKA062.png

圖6Debug功能區

Layout功能區主要是針對CAPL用戶的頁面展示。例如進行水平分區、垂直分區等操作方便用戶進行腳本編寫。

poYBAGMlfx6AG76sAACDVhMSLCQ677.png

圖7Layout功能區

CAPL應用場景:

  1. 節點仿真

關聯Simulation Setup中的ECU節點,實現ECU節點仿真和整車網絡仿真。

pYYBAGMlfyCAL1uTAACDQh9-i-U949.png

圖8SimulationSetup窗口

  1. 測試功能

關聯Simulation Setup中的Test Module模塊或是Test菜單中的Test Setup,結合TSL(Test Service Library,測試服務庫)進行測試功能開發。

poYBAGMlfyGAECgkAAB4fih5Id8151.png

圖9TestSetup窗口

  1. 分析功能

關聯Measurement Setup窗口功能模塊中的Program Node,實現總線過濾、分析功能。

poYBAGMlfyKAHqMMAACe4NminBU794.png

圖10MeasurementSetup窗口

CAPL腳本結構:

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

pYYBAGMlfyOABnu2AAEOt1t_2TM813.png

圖11CAPL的三部分

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

poYBAGMlfySAIg5xAALJDR5IEYY494.png

圖12MeasurementSetup窗口

CAPL常用函數:

下面以CANoe中Easy工程的light.can腳本為例介紹CAPL中的常用函數,該腳本與Panel聯用實現轉向燈仿真。

pYYBAGMlfySAfjDVAAAyfIEcFVE402.png

圖13聲明全局變量

上圖是CAPL中的全局變量聲明,其中 ‘msTimer’為聲明以ms為單位的計時器;‘const int’為聲明int類型的常值變量,該變量的值無法改變;‘int’為聲明int類型的變量,該類型變量有符號,長度為2字節。

poYBAGMlfySALF5xAAAXlRWFibE461.png

圖14系統事件

onstart’是系統事件,測量開始執行會觸發該事件,也就是點擊Start按鈕觸發。

poYBAGMlfymAd-DVAAChdCFAvV8120.png

圖15CAN消息事件

onmessage’是CAN消息事件,接收到指定消息時執行。‘onmessageLightState’是對名字為LightState的報文反應,除直接使用字符串外,還可以使用報文ID指定觸發報文。‘onmessage123’是對ID為123(dec)的報文反應;‘on message0x123’ 是對ID為123(hex)的報文反應;‘on message*’是對所有的報文反應;‘on message100-200’是對ID為100-200間的報文反應。

poYBAGMlfymAR7bTAABB-QqteBA941.png

圖15系統變量事件

onsysvarsysvar’是系統變量事件,指定的系統變量值改變時執行。與之相對應另一個系統變量事件是‘onsysvar_updatesysvar’,指定的系統變量值更新時執行。

‘setTimer(msTimert,longduration)’是設置定時器函數,他有兩個輸入參數,第一個為聲明的定時器變量,第二個是設定的時間。‘cancelTimer(msTimert)’是取消定時器函數,入參為定時器變量,該函數的作用為取消設定的定時器。

pYYBAGMlfymAPg__AAAkTOfb9bw335.png

圖16時間事件

ontimer’為時間事件,定時時間超過時執行,它與設置定時器函數聯用。定時器通常應用在實現某個任務循環,在時間事件中寫入一個設置定時器函數實現循環。

pYYBAGMlfyaAI4IEAAAf0yAL3TE819.png

onkey’為鍵盤事件,被指定的鍵按下時執行。該事件常用于腳本調試。

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

注:圖片來自Vector。

總結:

北匯信息作為Vector中國的合作伙伴,始終專注于汽車電子領域的新技術和新產品,為整車廠和零部件企業提供完整的研發、測試解決方案,為工程師在汽車領域提供“趁手裝備“!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • CANoe
    +關注

    關注

    4

    文章

    68

    瀏覽量

    8996
收藏 人收藏

    評論

    相關推薦

    單片機C語言編程寶典大全,初學必備【強推下載!】

    資料介紹:包含 1. 51單片機入門教程 2. 初學者適用:單片機C語言實例100例(代碼及釋義) 3. 51單片機C語言快速上手 4. 51單片機C
    發表于 03-14 11:03

    gitee 支持的編程語言有哪些

    Gitee(碼云)是一個基于 Git 的代碼托管和研發協作平臺,類似于 GitHub 和 GitLab。它支持多種編程語言,允許開發者托管和管理代碼,進行版本控制,以及協作開發。以下是一些
    的頭像 發表于 01-06 09:50 ?461次閱讀

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 一、主要編程語言 Python :Triton編譯器通過Python接口提供了對Triton語言
    的頭像 發表于 12-24 17:33 ?804次閱讀

    如何快速入門HAL庫編程 HAL庫與裸機編程的比較

    如何快速入門HAL庫編程快速入門HAL庫編程,可以遵循以下步驟: 了解基礎知識 : 掌握C
    的頭像 發表于 12-02 11:39 ?892次閱讀

    編程語言的誤區與常見問題

    誤區一:編程語言的選擇 常見問題: 初學者在選擇編程語言時,往往會被市場上的熱門語言所吸引,而忽視了自己的實際需求和興趣。 一些開發者認為某
    的頭像 發表于 11-15 09:35 ?596次閱讀

    MCU編程語言和開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術的發展,MCU編程語言和開發環境也在不斷進步,以適應不同的應用需求。 1.
    的頭像 發表于 11-01 11:51 ?1818次閱讀

    TCSH shell 編程入門

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

    FPGA編程語言入門教程

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

    plc編程語言編程相關技巧有哪些

    PLC(可編程邏輯控制器)編程語言及相關編程技巧是工業自動化領域中不可或缺的知識。 一、PLC編程語言
    的頭像 發表于 10-21 16:56 ?815次閱讀

    TMS320LF240x DSP的C語言和匯編代碼快速入門

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

    【「倉頡編程快速上手」閱讀體驗】+壹讀后感

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

    PLC的編程方式及編程語言

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

    abb工業機器人的編程語言是什么

    ABB工業機器人的編程語言主要是RAPID(Robot Application Programming Interface for Development),它是一種高級編程語言,專門
    的頭像 發表于 06-16 16:49 ?3486次閱讀

    PLC編程語言和C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發表于 06-14 17:11 ?4211次閱讀

    PLC常用編程語言有哪些

    在工業自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)作為一種核心控制設備,其編程語言的選擇對于控制系統的設計、開發和維護具有重要影響。PLC的
    的頭像 發表于 06-14 16:58 ?2426次閱讀
    主站蜘蛛池模板: 亚洲午夜日韩高清一区 | 亚洲欧美高清 | 李老汉的性生生活1全部 | 97国内精品久久久久久久影视 | 一级片影院 | 天堂色 | 午夜视频在线免费观看 | 白嫩美女在线啪视频观看 | 五月天婷婷一区二区三区久久 | 调教双性学霸美人 | 丁香六月色婷婷综合网 | 日本大片成人免费播放 | 天天弄天天操 | 国产一区中文字幕在线观看 | 极品色天使在线婷婷天堂亚洲 | 天堂网中文字幕 | 色综合久久88色综合天天 | 一级毛片一级黄片 | 成人国内精品久久久久影院 | 天堂资源地址在线 | 天天插天天操天天射 | 国产―笫一页―浮力影院xyz | 日本色片视频 | 6080伦理久久精品亚洲 | 四虎网站 | 日本三人交xxx69视频 | 婷婷 综合网站 | 国产成人福利夜色影视 | 国产成人啪精品午夜在线观看 | 日本三级午夜 | 男人你懂的网站 | 手机国产看片 | 天天摸天天操免费播放小视频 | 六九视频在线观看 | 午夜影院免费观看 | 国产一级大片免费看 | 色香蕉色香蕉在线视频 | 中文字幕一区二区视频 | 久久久免费的精品 | 国产亚洲精品在天天在线麻豆 | 国产99久久九九精品免费 |