CAPL就是Communication Application Programming Laguage的縮寫,CAPL類似于C語言的語法,因此所有的語法請參考C語言教程,這里不在這里進(jìn)行詳述,關(guān)于C語言,毫無疑問的,首先推薦大家看譚浩強(qiáng)老師的書,經(jīng)典中的經(jīng)典,看完這本C語言應(yīng)該沒問題了。CAPL在CANoe中起到重要的作用,他將所有的部分聯(lián)系起來(請看下圖)現(xiàn)在我們給予上一節(jié)的基礎(chǔ)上,來著重介紹CAPL編程。 CAPL語法是C語言的,又有一些C++的特性,this指針,事件等,對于事件的理解可以學(xué)習(xí)任意一種面對對象語言,首推C#.NET,可以參考我的博客學(xué)習(xí),當(dāng)然這個似乎比CAPL本身更加難,事件也更加多,但這并不妨礙對事件的理解,其中的事件類型如下圖: 下面來幾個小例子幫助理解 來個CANoe版本的hello world!來興奮一小下吧。開整~ 在打開CANoe,新建個工程,在Simulation Setup中加個Network node ,點(diǎn)鉛筆,忘了嗎,上一節(jié)剛講過,右鍵Start->New,鍵入如下代碼 編譯后,關(guān)閉CAPL Brower。運(yùn)行CANoe工程,結(jié)果如下,哇塞成功咯,好有成就感啊。 這個例子似乎跟CAN通訊沒啥太大關(guān)系啊,好,我們接下來再做一個例子
運(yùn)行結(jié)果如下,按鍵盤b鍵,將發(fā)送一個CAN消息,連dlc是啥都不知道的同學(xué),推薦先學(xué)習(xí)一下CAN基礎(chǔ)知識,推薦瑞薩公司的《CAN入門書》,講的非常的好。 運(yùn)行剛剛的那個例子你會發(fā)現(xiàn),按一下b,只發(fā)送一條消息,但在實(shí)際應(yīng)用中CAN消息都是循環(huán)連續(xù)發(fā)送的,我們要對剛剛的程序進(jìn)行一些修改。完成這樣的功能。程序如下: variables on key 'a' on timer timerA 運(yùn)行結(jié)果如下:按A鍵,Timer啟動,發(fā)送消息
接下來我們一起來看總結(jié)一下CAPL編程的要點(diǎn):
CAPL編程的學(xué)習(xí),需要通過不斷在實(shí)踐中的積累,此外別無他法。以上真真兒的只是入門,如果你真心看過,不如你真心寫過。 |
|