用CAPL在CANoe中創建用戶登入界面(一)


  CANoe是德國Vector公司開發的專門用於仿真和測試CAN通訊的軟件,在汽車電子開發中使用十分廣泛。在使用時會用到CANoe的CAPL編程,CAPL是一種類C語言,屬於面向對象的語言。

  我是剛接觸CANoe,對CAPL編程也不熟悉,寫這篇博文主要是對CANoe的一個入門。

  一.開發需求

  客戶需要在CANoe中有用戶登入的界面,可能是便於管理各個工程人員的工作進度等,但就我公司對CAPL的理解似乎無法完全滿足客戶的需求,所以暫時讓我寫的是較為簡單的登入界面,策略則采用在啟動CANoe之后一段時間內必須登入賬號否則CANoe會強制停止運行。

  目前這項功能尚處於較為初級的階段,若之后有進一步修改,會陸續更新博客。

  二.Panel界面

  點擊Tools-Panel Designer,會打開新的Panel設計的界面,在這里編輯Panel界面,並與System Variables相關聯,在CAPL中調用相應的System Variables即可完成人機交互,實現用Panel界面對CANoe的控制。

                

   上面便是打開的Panel界面,在這里你可以通過Toolbox拖拽控件至Panel中,實現不同的控件功能,在這里只簡單介紹我所用到的控件,有興趣可以去看Panel的help文檔,原理相類似,不再過多贅述。

                                              

  要是在打開的界面中缺少Toolbox工具欄,可以通過views下拉菜單中勾選出Toolbox

  在Toolbox中選擇Input/Output box以及Button兩個控件拖拽至Panel界面,其中Input/Output box顧名思義就是可以作為輸入輸出,一些類型的界面可能用到它來發出具體的指令,如車速等,也可以用它來反映各種參數,如車速等。而Button則是一個按鈕,可以作為觸發器等,在做好界面后我們可以通過Properties對控件做出具體的定義,讓它更符合我們的需求。

                                              

  首先我們對Input/Output box做出修改,很多選項只是顯示的屬性,可以忽略不計(要是喜歡美化也可以進一步研究,這里難度不大,多嘗試下就好了,不說了)。

  重點  1.Appearance Description-Description,這里顯示輸入輸出框之前的提示,在這里我寫了ID,因為是用戶登入。

      這就是定義這一項前后的變化。

      2.Button控件的定義相類似,讀者自行學習吧!☺

      3.但現在的Panel界面還只是單純的界面,界面與System Variables還沒有相互關聯,此時在Panel中輸入任何數據都是沒有意義的,所以需要將Panel界面中的控件和System Variables相關聯,但到現在為止我們還未定義過System Variables,

      所以我們需要回到CANoe界面定義System Variables。

                                              

       

  三.System Variables界面

  

  我們回到CANoe的主界面,在Environment中點擊System Variables會打開新的窗口,在System Variables中可以添加,編輯我們的系統變量,能夠幫助我們關聯Panel界面和CAPL腳本。

  在左邊空白區域右鍵new一個新System Variables。

 

  在Namespace和Name中定義名字即可,注意,這里定義的名字便可以認為是變量名,在Panel界面便是需要與這個變量名關聯,CAPL中調用也是用這個名字,注意不要重命名。

  在數據類型的下拉框中,我們把ID,Password定為字符串類型,而Button則可以定義為int型(有多種int型,隨便一種都可以,但選擇64bit可能有點浪費),因為CANoe中好像沒有布爾類型,所以用int型所替代。

  這樣我們的System Variables便定義完成了。回到Panel界面與System Variables相關聯就可以了。

  

  四.Panel界面中關聯System Variables

          

  在定義好System variables后,Panel界面就出現了上圖的系統變量,將System variables中所定義的各個變量拖拽到Panel界面的控件上,便實現了控件和系統變量的關聯。若關聯成功,則會出現下面的情況。

          

  到這里我們開發的界面就完成了,之后就是CAPL的編程。請看下一節。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM