Ří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ů

support.dce.felk.cvut.cz
from support.dce.felk.cvut.cz More from this publisher
12.07.2015 Views

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

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!