![]()
Priročnik za uporabo orodja ObjectGEODE
SDL
Grafični editor se uporablja za rokovanje z grafičnimi opisi, ki jih dobimo iz tekstovnih opisov (.pr datoteke). Poleg grafičnega editorja za SDL lahko med editiranjem uporabljamo še program za sintaktično in semantično preverjanje in grafični editor za načrtovanje MSC.
Ko z "geodedit" poženemo program, se pojavi okno grafičnega editorja:
![]()
Okno je razdeljeno na naslednja področja:
Področje, namenjeno menijem
Paleta možnih ukazov v grafični obliki
Paleta možnih objektov
Delovno področje
Vrstica za sporočila
Simboli, ki so nam na razpolago:
(klikni za razlago)
![]()
(klikni za razlago)
![]()
Nov projekt pričnemo tako, da izberemo meni "File > New > System". Pojavi se vrstica "untitledX.sys" (X je zaporedna številka). To je datoteka, v kateri bo shranjen naš projekt. Z levim gumbom kliknemo na vrstico in jo označimo.
S "File > SaveAs" odpremo okno, v katerem izberemo direktorij in ime datoteke, ter jo z "OK" shranimo.
S "File > New > SDL" dodamo v projekt SDL datoteko, ki jo preimenujemo in shranimo enako kot smo to prej storili s projektom.
![]()
Glavni del SDL opisa je sistem. Zato ga izberemo med simboli ob levem robu in ga postavimo na ime datoteke v delovnem področju.
Pod imenom datoteke se pojavi simbol sistema. Simbol označimo in z "Edit > Content" odpremo okno, v katero vpišemo ime sistema.
![]()
Če nanj dvakrat kliknemo, se odpre novo okno, v katerem je okvir, označen s "system ime_sistema". Okvir preprosto povečamo tako, da ga primemo z desnim miškinim gumbom in ga raztegnemo do želene velikosti.
V sistem lahko najprej vnesemo blok. Ime bloka vpišemo kar v grafični simbol, ki se pojavi znotraj sistema.
![]()
Simboli, ki so nam na razpolago:
(klikni za razlago)
![]()
Če dvakrat kliknemo na blok, se le-ta spet odpre v novem oknu.
Sedaj lahko tvorimo proces tako, da najprej kliknemo na ikono procesa in nato na mestu, kamor želimo postaviti proces v blok. Podobno kot prej blok tudi proces poimenujemo.Potem, ko nanj dvakrat kliknemo, lahko končno pričnemo vnašati avtomat.
![]()
Simboli, ki so nam na razpolago:
(klikni za razlago)
![]()
Vsak avtomat se prične s simbolom Start, ki predstavlja začetno stanje avtomata. Ikone , ki so zatemnjene, trenutno niso na voljo, kar pomeni, da jih ne moremo vnesti v avtomat, vsaj ne za simbolom, ki je trenutno izbran v delovnem področju, ker sintaksa takega avtomata ne bi bila pravilna.
Startni simbol vnesemo tako, da najprej kliknemo na ikono, nato pa na mestu v diagramu, kamor jo želimo postaviti. Če je v diagramu izbran simbol, lahko naslednika vnesemo samo s klikom na ikono.
Za naš avtomat poleg začetnega definirajmo še dve stanji, dva vhodna signala in končno stanje.
![]()
NekSignal je ime signala, ki bo povzročil prehod avtomata iz Stanje1 v Stanje2. Pri ponovnem sprejemu signala se bo izvajanje končalo. Ker signal ne izvira v istem procesu, moramo do bloka, v katerem je proces, dodati kanal, po katerem potuje signal. Zato gremo s puščico "up":
![]()
na višji nivo v blok1 in še enkrat, da pridemo do Sistem1. Tukaj sedaj kliknemo na simbol "link". Kanal naredimo tako, da najprej kliknemo na rob sistema. Ko premaknemo miško, se prikaže črtkana črta, ki jo povežemo z robom blok1, in še enkrat kliknemo. Tako smo ustvarili kanal med okoljem in blok1. Kanal poimenujemo, v oklepaje pa vpišemo ime signalov, ki se bodo prenašali po kanalu. Ker rabimo samo signal proti blok1, spremenimo kanal v enosmernega. Zato označimo signal in z "Edit > Attributes" prikažemo njegove lastnosti. Odkjukamo opcijo "From ENV To blok1". Po potrditvi ima kanal samo še eno puščico.
![]()
Vse signale, ki jih uporabljamo, moramo definirati. To naredimo tako, da sistemu dodamo tekstovno okno (beli pravokotnik z zapognjenim robom). Vanj vpišemo: SIGNAL NekSignal;
![]()
Po kanalu lahko prenašamo signale, ki jih definiramo v oglatih oklepajih ob simbolu kanala. Zato vnesemo ime Nek_Signal, ki bo tako potoval po kanalu kanal1. Da ne pišemo po nepotrebnem istega imena večkrat, kopiramo tekst tako, da ga označimo in ga vnesemo na želeno mesto s srednjim miškinim gumbom.
Dodati moramo še povezavo oz. signalno pot od bloka blok1 do procesa proces1.
Ker smo že definirali kanal in ime signala, se, ko naredimo povezavo "link" med robom bloka blok1 in procesom proces1, avtomatsko odpre okno, v katerem izberemo kanal in signale, ki jih želimo prenašati po signalni poti. Ko v seznamu izberemo kanal, se izpišejo signali, ki jih le-ta vsebuje.
![]()
Ko pritisnemo "Insert", se označeni kanal poveže ("connect") na signalno pot. Vse signale vnesemo z "Insert All" ali pa samo posamezne z "Insert"; (signal sig je dodan samo za ilustracijo).
Signalno pot še preimenujemo in jo spremenimo v enosmerno, podobno kot smo to prej storili s kanalom.
![]()
Datoteko shranimo in s "Tools > Checker" odpremo okno za sintaktično preverjanje pravilnosti sistema (" SDL and MSC Checker ").
Priporičila za SDL in MSC specificirajo sintaktična in semantična pravila, ki jim mora model zadostiti. V ta namen uporabimo SDL in MSC preverjevalnik.
Če imamo več datotek ,želene označimo in z ikono levo zgoraj pričnemo preverjanje.
![]()
Če imamo srečo, dobimo naslednje sporočilo:
![]()
V primeru, ko imamo v SDL opisu napake, se z dvojnim klikom po vrstici, v kateri je napaka, vrnemo v grafični opis. Avtomatsko se označi element, v katerem ali blizu katerega je napaka. Ko vse napake popravimo, ponovimo preverjanje in pričnemo s simulacijo.
S "Tools > SDL Simulation Builder" poženemo simulator.
![]()
S prvo ikono levo zgoraj lahko še enkrat preverimo sintakso.
Druga ikona naredi .sim datoteko, ki se izvaja med simulacijo.
Tretja požene simulator (lahko traja nekaj sekund...).
![]()
V zgornjem oknu se izpisuje potek simulacije, v spodnjem pa so prehodi, ki so na voljo v trenutnem stanju in jih aktiviramo z dvojnim klikom. Pa dajmo...
![]()
Simulacija...
Na začetek.
Na indeks.