CAN alapú járműves adatokat megjelenítő szoftver fejlesztése Beszámoló
Dokumentum szám:
D01-018-08-05
Dokumentum dátum:
2014. január 30.
Szerző(k):
Jánky Szabolcs (
[email protected])
http://www.inventure.hu
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
Tartalomjegyzék A FELADAT BEMUTATÁSA ................................................................................................. 3 1.1 FELADAT......................................................................................................................... 3 1.2 SPECIFIKÁCIÓ ................................................................................................................. 3 2 A PROGRAM FEJLESZTÉSE ............................................................................................... 4 2.1 BEVEZETÉS..................................................................................................................... 4 2.2 MEGJELENÍTŐ MODUL - WECANFORM ............................................................................. 4 2.2.1 Események ............................................................................................................ 4 2.2.2 Delegate-k ............................................................................................................. 4 2.2.3 Metódusok ............................................................................................................. 4 2.3 ADATKEZELŐ - DATAMANAGER ........................................................................................ 5 2.3.1 Események ............................................................................................................ 5 2.3.2 Metódusok ............................................................................................................. 5 3 A PROGRAM HASZNÁLATA ................................................................................................ 7 3.1 A PROGRAM TELEPÍTÉSE .................................................................................................. 7 3.2 AZ FMS VIEWER INDÍTÁSA ÉS LEÁLLÍTÁSA ........................................................................ 7 3.3 MEGJELENÍTÉSI MÓDOK ................................................................................................... 8 3.3.1 Műszerfal nézet (dash display) .............................................................................. 8 3.3.2 FMS adatok (FMS signals)..................................................................................... 9 3.3.3 Esemény napló (Event log) .................................................................................. 10 3.3.4 Grafikon megjelenítése (Graph display) ............................................................... 11 1
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 2/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
1 A feladat bemutatása 1.1 Feladat CAN alapú, járműves adatokat megjelentő szoftver fejlesztése A kutató feladata egy olyan CAN alapú, járműves adatokat megjelenítő szoftver tervezése és kísérleti fejlesztése, amely megfelel a mai kor kihívásainak, és egy hozzá nem értő ember számára is releváns információt nyújt a jármű aktuális állapotáról. A tervezett szoftver legyen egyszerűen futtatható PC-s környezetben, és legyen képes az Inventure Kft. által forgalmazott FMS Gateway eszközhöz kapcsolódni és az eszköz által küldött adatokat megjeleníteni.
1.2 Specifikáció Feladat egy olyan program elkészítése, amely az Inventure WeCAN-USB eszközével csatlakozik a jármű FMS buszára, vagy az Inventure FMS Gateway kimeneti CAN buszára. A támogatott FMS szabvány az FMS Standard 1.0. Az elérhető adatokat képes megjeleníteni az alábbi formában: -
Áttekintő nézet (műszerfal)
-
Részletes adatok megjelenítése
-
Események megjelenítése
-
Grafikon ábrázolási mód
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 3/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
2 A program fejlesztése 2.1 Bevezetés A program 2 fő részből áll: - egy megjelenítő modulból – WeCANForm - valamint egy adatkezelőből – DataManager A WeCanForm modul feladata interface biztosítása a felhasználónak, ahol lehetőség nyílik a program vezérlésére, beállítására. A DataManager feladata a can busz inicializálása, olvasása, annak lezárása, valamint az onnan olvasott adatok feldolgozása, WeCanForm vezérlése. A két objektum események segítségével valamint pointerekkel kommunikálnak, szinkronizálnak egymással. Egymás eseményeinek összerendelését a program.cs tartalmazza.
2.2 Megjelenítő modul - WeCANForm 2.2.1 Események public delegate void startStopRecvThreadDelegate(); public event startStopRecvThreadDelegate startStopRecvThreadEvent; Ezzel a delegate - event párossal lehet elindítani az olvasó szálat a dataManager-ben. Hozzárendelt metódus: DataManager.startStopThread()
2.2.2 Delegate-k delegate void ShowEventCallback(data_struct dStruct); Ez a delegate végzi az olvasó szál által beállítani kívánt objektum újraírását. delegate void SetTextCallback(string message); Ez a delegate végzi az olvasó szál által írni kívánt journal text újraírását.
2.2.3 Metódusok public void addMessage(string message) message stringet hozzáadja journal text végéhez. public void showData(data_struct dStruct) dStruct alapján beállítja az adott megjelenítő objektumot. public void setStartStopButtonText(string text) Beállítja a start/stop nyomógomb szövegét public void getChipConfig( ref can_chip_struct canChipData) A paraméterben szereplő can_chip_struct-ot beállítja a setup fülnek megfelelően. private void startStopButton_Click(object sender, EventArgs e) Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 4/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
start/stop nyomógomb click eseményekor lefutó függvény. Feladata elindítani, illetve leállítani a dataManager olvasó programszálát. private void closeButtonClick(object sender, EventArgs e) close nyomógomb click eseményekor lefutó függvény. Feladata a form bezárása, és így a program leállítása is.
2.3 Adatkezelő - DataManager 2.3.1 Események public delegate void ShowDataEvent(data_struct dStruct); public event ShowDataEvent ShowData; Ennek az eseménynek a segítségével képes az olvasó szál tudatni a formmal, hogy megváltozott a struktúrában szereplő objektum értéke. Ennek hatására változik meg az objektum értéke. Hozzárendelt metódus: WeCANForm.showData(data_struct) public delegate void setSSBText(string text); public event setSSBText setStartStopButtonText; Ezzel az eseménnyel állítja be az olvasó szál a formon található start/stop nyomógomb szövegét. Hozzárendelt metódus:WeCANForm.setStartStopText(string) public delegate void ShowMessageEvent(string message); public event ShowMessageEvent ShowMessage; Ezzel az eseménnyel ad hozzá az olvasó szál egy új bejegyzést a journal texthez. Hozzárendelt metódus: WeCANForm.addMessage(string) public delegate void getCanChipEvent(ref can_chip_struct canChip); public event getCanChipEvent getCanChip; Az olvasó szál ennek segítségével kérdezi le a canChip beállításához szükséges adatokat a fromtól. Hozzárendelt metódus: WeCANForm.getChipConfig(ref can_chip_struct)
2.3.2 Metódusok private void recvThreadProcess() Ez a függvény a program lelke. Feladata a busz vonal olvasása, a kiolvasott adatok értelmezése, valamint a form felé a változások jelzése. A program tesztelése céljából jelenleg dll hiba meglétekor nem szakad meg a függvény futása, helyette fals üzeneteket generál, így tesztelve a program értelmező részét. A fennakadások elkerülése végett ez a függvény külön programszálon fut. public ulong getBitData(byte[] data, int bitPos, int bitLength) Ennek segítségével nyeri ki a program a nyers adatfolyamból a neki szükséges adatbiteket. Paraméterek: Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 5/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
data: értelmezendő adatfolyam, 8 byte hosszú bitPos: kinyerni kívánt adat bithelye a data-ban, jobb oldalról indulva. Értéktartománya: 0-63 bitLength: kinyerni kívánt adat bithossza. Értéktartománya: 1-64 public void processData() Ez a függvény akkor fut le, amikor az olvasó szál módosítja a fogadó struktúrát, azaz új adatot olvasott ki. Ez válogatja szét a bejövő adatokat, valamint ez végzi a form vezérlését is. public bool isRunThread() Visszatérési értéke igaz, ha a dataManager olvasó szála fut. public void startStopThread() Ez a függvény indítja el, illetve állítja le az olvasó szálat. public unsafe DataManager(bool* programRunning) Ez az osztály konstruktora. Paramétere egy bool típusra mutató pointer. Ha ennek értéke false értékre változik, a szál futása be fog fejeződni a legközelebbi ciklus végénél.
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 6/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
3 A program használata Az FMS Viewer PC-s alkalmazás az Inventure FMS Gateway kimenetén küldött CAN adatai tekinthetőek meg szemléletes formában. Az alkalmazás segítségével a Gateway megfelelő konfigurációja, működése egyszerűen ellenőrizhető.
3.1 A program telepítése Telepítse az FMS Viewer-t a Setup.exe segítségével. A telepítő először telepíti a programot, majd az Inventure WeCAN-USB meghajtó programját. Megjegyzés: Amennyiben a meghajtó program telepítése során hiba lépne fel, akkor navigáljon a [Program Files]\Inventure Tools\FMS Viewer\WeCAN Driver\ mappába (illetve, ahova előzőleg a programot telepítette), majd ott indítsa el CDM20824_Setup.exe telepítőt.
3.2 Az FMS Viewer indítása és leállítása 1. Csatlakoztassa a WeCAN-USB-t a számítógép egy szabad USB portjához 2. A WeCAN-USB-t a mellékelt kábel segítségével 3. A programot az asztalon található parancsikon segítségével indíthatja (FMS Viewer) 4. Nyomja meg a jobb sarokban található Start gombot 5. A program akkor működik megfelelően, ha a bal sarokban található folyamatsáv melletti felirat No communication … Received packets per sec.: X üzenetre változik 6. Az adatok fogadása a Stop gomb segítségével megállítható 7. Végül a programból a Close gomb megnyomásával léphetünk ki
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 7/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
3.3 Megjelenítési módok 3.3.1 Műszerfal nézet (dash display) Ez a nézet az alapvető információk grafikus megjelenítésére szolgál, mint a -
sebesség (km/h)
-
megtett út (km)
-
fordulatszám (rpm)
-
motor hömérséklet (°C)
-
tankszint (%)
-
gázpedál pozíció (%)
-
fékpedál állapot (be/ki)
-
kuplung pedál állapot (be/ki)
-
az összes felhasznált üzemanyag (L)
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 8/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
3.3.2 FMS adatok (FMS signals) Ebben a nézetben az összes bejövő FMS adatot tekinthetjük meg szöveges formában.
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 9/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
3.3.3 Esemény napló (Event log) Az eseménynapló segítségével a WeCAN-USB és a CAN buszon történő eseményekről tájékozódhatunk. Rendellenes működés esetén a tartalmából informálódhatunk a hiba okáról.
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 10/11
Inventure Autóelektronikai Kutató és Fejlesztő Kft. H-1124 Budapest, XII. Fürj utca 2. B.ép. 1.em.
3.3.4
Tel.: +36 (1) 381-0970 Fax: +36 (1) 381-0971
Grafikon megjelenítése (Graph display)
A grafikon segítségével különböző adatok változását tekinthetjük meg 10 másodperc, 1 perc és 10 perc részletességgel. A következő adatok elérhetőek grafikonon megjelenítve: -
sebesség a kerék alapján
-
tankszint
-
motor fordulatszáma
-
sebesség a tachográf alapján
-
motor hőmérséklete
A grafikon élő adatgyűjtését a graph is live jelölőnégyzet segítségével szabályozhatjuk.
Copyright © Inventure Kft. Minden jog fenntartva. jankysz_can_monitor_besz_2014
www.inventure.hu 11/11