ŘÃdicà systém pro ovládánà klimatizace a vytápÄ›nà železniÄnÃch vozů
ŘÃdicà systém pro ovládánà klimatizace a vytápÄ›nà železniÄnÃch vozů ŘÃdicà systém pro ovládánà klimatizace a vytápÄ›nà železniÄnÃch vozů
Kapitola 5. Návrh softwaruInterface třídy cCommSlaveInterface aplikační vrstvy komunikace na straně jednotky v kupé je podstatnějednodušší, než na straně hlavní řídící jednotky. Je to způsobeno tím, že rozhraní nemusído programu poskytovat žádné informace o stavu měřených veličin, ani o komunikaci.Pokud přijde jakýkoliv požadavek od hlavní jednotky, samotný CommSlave informacepřebírá a nastavuje v ostatních modulech pomocí jejich vlastních getterů a setterů.cCommSlave(UartDriver *_driver, cServos *_servos, cSwitch *_posSwitch,cAutoRegulation *_regulation, cThermometer *_thermometer, cSys *_sys)Konstruktor třídy cCommSlave, ve kterém je předáván jak ukazatel na vytvořenouinstanci UART driveru, tak ukazatele na jednotlivé instance modulů z obr. 5.5.~cCommSlave() - Destruktor třídy cCommSlavevoid reset() - resetování počátečních hodnot a příprava pro start komunikacevoid start() - odstartování komunikacevoid loop() - metoda volaná z hlavní nekonečné smyčky programu. Zajišťuje příjempaketů, veškeré zpracování požadavků a následnou kompozici odpovědi zpět do hlavníjednotky68
Kapitola 6. Testování6 TestováníTestování je jedna z nejdůležitějších částí projektu a to z jednoho hlavníhodůvodu. Představa, že by se dalo rychle reagovat na vzniklý problém, pokud by byl vlakvzdálený několik set kilometrů, je nereálná. Jak už bylo řečeno, měl jsem na starostiz velké části vývoj komunikace. Testování komunikace lze rozdělit do několika na sebenavazujících fází:Testování PC – PCSoftware pro komunikaci jsem začal psát dříve, než byly k dispozici z výrobyprvní hotové jednotky. Vývoj tedy začal implementací zdrojového kódu pro platformuPC. Tato skutečnost se nedá považovat za nevýhodu, protože na PC si můžemejednodušeji krokovat program a kontrolovat výpisy. Nejprve bylo potřeba otestovatkompozici a parsování paketů navrhovaného protokolu. Test probíhal tak, že se parsera kompozer pustili programově „proti sobě“, ještě bez účasti jakékoliv komunikačnílinky. Náhodně vygenerovaná data v paketu tedy musela souhlasit po průchodu těmitovrstvami. Mezi jednotlivými pakety bylo také generováno určité množství náhodnýchdat, která simulovala rušení na komunikační lince. Následující fází byla implementaceaplikační vrstvy pro master a slave. Tady opět přistoupilo na řadu nejprve testovánípouze v rámci programu, bez účasti komunikační linky. Master se v nekonečné smyčcesnažil co nejrychleji kontaktovat slave a nastavoval mu nejrůznější parametry. Na tyse pak zpětně dotazoval a kontroloval, jestli souhlasí s požadovanými.Program běžel přibližně 12 hodin a bylo přeneseno bez chyby více jak 50 miliardpaketů. Potom již přišla na řadu komunikační linka RS232 a to jak pro testování pouzeparseru a kompozeru datových paketů, tak pro testování vrstvy master a slave. Principtestů byl stejný jako výše zmíněný. Tímto způsobem bylo přeneseno několik desítekmilionů paketů bez jediné chyby.69
- Page 26 and 27: Kapitola 3. Návrh hardwaruProcesor
- Page 28 and 29: Kapitola 3. Návrh hardwarunapěťo
- Page 30 and 31: Kapitola 3. Návrh hardwaruse prov
- Page 32 and 33: Kapitola 3. Návrh hardwaruLogické
- Page 34 and 35: Kapitola 3. Návrh hardwaruAnalogov
- Page 36 and 37: Kapitola 3. Návrh hardwaruObr. 3.1
- Page 38 and 39: Kapitola 3. Návrh hardwaruRS485Pos
- Page 40 and 41: Kapitola 3. Návrh hardwaru• Tepl
- Page 42 and 43: Kapitola 4. Komunikace4.2 Sběrnice
- Page 44 and 45: Kapitola 4. Komunikace4.2.3 Formát
- Page 46 and 47: Kapitola 4. Komunikace4.4.1 Fyzick
- Page 48 and 49: Kapitola 4. Komunikace4.5 Sběrnice
- Page 50 and 51: Kapitola 4. Komunikaceže master ne
- Page 52 and 53: Kapitola 4. Komunikace• Čtyřvod
- Page 54 and 55: Kapitola 4. KomunikaceKřídlová z
- Page 56 and 57: Kapitola 4. KomunikaceAdresa (1 byt
- Page 58 and 59: Kapitola 4. Komunikace• Teplota v
- Page 60 and 61: Kapitola 5. Návrh softwaru• Ří
- Page 62 and 63: Kapitola 5. Návrh softwaruStavový
- Page 64 and 65: Kapitola 5. Návrh softwaruCommVrst
- Page 66 and 67: Kapitola 5. Návrh softwaruneexistu
- Page 68 and 69: Kapitola 5. Návrh softwarubool get
- Page 70 and 71: Kapitola 5. Návrh softwaruModul re
- Page 72 and 73: Kapitola 5. Návrh softwaru5.2 Jedn
- Page 74 and 75: Kapitola 5. Návrh softwarujiž nen
- Page 78 and 79: Kapitola 6. TestováníTestování
- Page 80 and 81: Kapitola 7. Závěr7 ZávěrCílem
- Page 82 and 83: Kapitola 8. Seznam použité litera
- Page 84 and 85: Kapitola 9. PřílohyObr. 9.2: Kont
Kapitola 6. Testování6 TestováníTestování je jedna z nejdůležitějších částí <strong>pro</strong>jektu a to z jednoho hlavníhodůvodu. Představa, že by se dalo rychle reagovat na vzniklý <strong>pro</strong>blém, pokud by byl vlakvzdálený několik set kilometrů, je nereálná. Jak už bylo řečeno, měl jsem na starostiz velké části vývoj komunikace. Testování komunikace lze rozdělit do několika na sebenavazujících fází:Testování PC – PCSoftware <strong>pro</strong> komunikaci jsem začal psát dříve, než byly k dispozici z výrobyprvní hotové jednotky. Vývoj tedy začal implementací zdrojového kódu <strong>pro</strong> platformuPC. Tato skutečnost se nedá považovat za nevýhodu, <strong>pro</strong>tože na PC si můžemejednodušeji krokovat <strong>pro</strong>gram a kontrolovat výpisy. Nejprve bylo potřeba otestovatkompozici a parsování paketů navrhovaného <strong>pro</strong>tokolu. Test <strong>pro</strong>bíhal tak, že se parsera kompozer pustili <strong>pro</strong>gramově „<strong>pro</strong>ti sobě“, ještě bez účasti jakékoliv komunikačnílinky. Náhodně vygenerovaná data v paketu tedy musela souhlasit po průchodu těmitovrstvami. Mezi jednotlivými pakety bylo také generováno určité množství náhodnýchdat, která simulovala rušení na komunikační lince. Následující fází byla implementaceaplikační vrstvy <strong>pro</strong> master a slave. Tady opět přistoupilo na řadu nejprve testovánípouze v rámci <strong>pro</strong>gramu, bez účasti komunikační linky. Master se v nekonečné smyčcesnažil co nejrychleji kontaktovat slave a nastavoval mu nejrůznější parametry. Na tyse pak zpětně dotazoval a kontroloval, jestli souhlasí s požadovanými.Program běžel přibližně 12 hodin a bylo přeneseno bez chyby více jak 50 miliardpaketů. Potom již přišla na řadu komunikační linka RS232 a to jak <strong>pro</strong> testování pouzeparseru a kompozeru datových paketů, tak <strong>pro</strong> testování vrstvy master a slave. Principtestů byl stejný jako výše zmíněný. Tímto způsobem bylo přeneseno několik desítekmilionů paketů bez jediné chyby.69