CAPL (CAN Access Programming Language)
A CANalyzer több jól használható lehetőséget is kínál arra, hogy a CAN hálózatot ne csak megfigyeljük, hanem tetszés szerint be is avatkozzunk.
A mérés során a "virtuális autót" az analizátornak adott parancsokkal is vezethetjük.
A mérési elrendezésbe iktassunk be egy különböző eseményekre (billentyűlenyomás, időzítő lejárása) reagáló ún. CAPL programblokkot! A Send blokk előtti kis négyzeten jobb kattintás, majd "Insert CAPL node". Ekkor megkapjuk a P jelű blokkot. Ezen jobb gombot nyomva a "Block Active" pipa állításával bármikor ki/be kapcsolhatjuk a modult.
Duplán kattintva a P blokkra meg kell adni a futtatandó program nevét. Új blokk beillesztése esetén itt tetszőleges fájlnevet megadhatunk. Ezután feljön a CAPL programozási felülete.
A program eseményvezérelt, azt kell megadnunk, hogy mi történjék az egyes eseményekre. Pl. a System/Start-ra jobb gombbal kattintva, majd "New"-t választva létrehozunk egy függvényt, ami a mérés elején egyszer fut le. Fontos lesz még a Keyboard és a Timer-kezelés, ahol hasonló módon definiálhatunk eseményeket.
A jobb felső ablakban definiálhatunk változókat. Léteznek a C-ből ismert int, char típusok. Számunkra fontos típus a message, amivel egy CAN üzenetet definiálhatunk. A message kulcsszó után az üzenet ID-t vagy az adatbázisbeli nevét kell megadni.
message 0x100 msg;
message Wheel msg;
Az üzenet tartalmára ezek után úgy hivatkozhatunk, mint C-ben a struktúra elemeire. Hivatkozhatunk az adatbázisbeli nevekre vagy direkt az adatbájtokra. Az üzenetet az output paranccsal küldhetjük ki a buszra.
msg.BYTE(4)=8;
msg.Gas = 255;
output(msg);
Időzítéshez is külön típus áll rendelkezésre, az mstimer.
mstimer myTimer;
Ha periodikus működést szeretnénk, akkor indításkor és a timer lejártakor is "fel kell húzni" az időzítőt.
on start {
setTimer(myTimer,100);
}
on timer myTimer {
output(msg);
setTimer(myTimer,100);
}
Feladat: írjunk a CAPL segítségével olyan programot, amely lehetővé teszi, hogy a w, a, d, x billentyűkkel vezessük az autót!
(100 ms-onként küldjük ki a 0x100 üzenetet! Ne felejtsük sebességbe tenni az autót!)
Csordás Péter, 2012. március 7. 10:01 | Legutóbb frissítve: 2013. április 9. 14:09