Konfiguratören


Konfiguratören används för att navigera och konfigurera i arbetsbänken.
Konfiguratören visar objekten i en volym. Objekten delas vanligen upp i två fönster, ett
till vänster och ett till höger, och hur uppdelningen görs beror på vilken typ av volym som
hanteras.

- För rotvolymer och subvolymer visas anläggningshierakin i det vänstra fönstret och
nodhierkin i det högra. Närmare bestämt visas toppobjekt av klassen $PlantHier i det vänstra
och toppobjekt av klassen $NodeHier i det högra.

- För directory volymen visas volymer i det vänstra fönstret och bussar och noder i det högra.
Även systemobjektet visas i det undre fönstret.

- För klassvolymer visas klasser i det vänstra fönstret och typer i det högra.

Med 'View/TwoWindow' kan man välja om man vill visa två fönster eller bara ett. Om endast ett
fönster visas kommer det varannan gång man aktiverar 'TwoWindows' att vara det vänstra fönstret
som visas och varannan gång det högra.

Med 'Edit/Edit mode' går man in i editerings mode, och palett med olika klasser dyker upp
till vänster. Man kan nu skapa nya objekt, flytta objekt, ändra värden på attribut mm.

Representation av volymer


Volymer kan lagras i olika format, i databas, i laddatafil eller i en textfil. Konfiguratören
kan visa en volym i alla dessa format och kan ha fyra olika representationer av volymer:

- db, en databas. Rotvolymer och subvolymer skapas och editeras i en databas. Innan man
kan starta runtimemiljön genererar man laddatafiler för volymerna. Laddatafilerne läses
in vid uppstart av runtimemiljön. db-representationen är editeringsbar.

- wbl, en textfil med filtyp .wb_load. Klassvolymer lagras som wbl, och rot- och subvolymer
kan dumpas på wbl-fil t ex vid uppgradering, för att sedan återladdas. wbl-representationen
är inte editeringsbar. Vid editering av klassvolymer överför man wbl-representationen till
en mem-representation, se nedan, för att därefter spara den som wbl igen.

- dbs, en laddatafil. Från rotvolymer, subvolymer och klassvolymer i db resp. wbl
representation skapas laddatafiler som används av runtimemiljön. Konfiguratören läser in
klassvolymernas dbs-filer för att tolka klasser, och rot och subvolymers dbs-filer för
att visa monterade volymer och kunna översätta referenser till externa objekt. dbs-
representationen är inte editeringsbar.

- mem, en volym som konfiguratören håller internt i minnet. Copy/Paste buffrar består t ex
av mem-volymer. Klasseditorn importerar klassvolymen, som ursprungligen finns som wbl, till
en mem-volym, eftersom mem-representatinen är editeringsbar.

Som vi ser ovan kan samma volym finnas både som databas och som laddatafil. När man startar
konfiguratören anger man en volym som argument. För denna volymen öppnas databasen, den
alltså representerad som en db, för övriga volymer i projektet öppnas laddatafilerna, dessa
finns representerade som dbs. Det här gör att man kan titta på övriga volymer i projektet,
och man kan lösa upp referenser till dem, men det är inte editeringsbara. Är databasen för
volymen låst, pga att någon annan har öppnat den, ges ett felmeddelande och laddatafilerna
öppnas istället för databasen.

I figuren nedan visas volymslistan, som öppnas från 'File/Open' i menyn. Det visar alla
volymer som är öppnade i konfiguratören. Vi kan se att databasen för rotvolymen
VolTrafficCross1 är öppnad, medan den andra rotvolymen, VolOpTrafficCross1 är öppnad som
laddadafil. Även klassvolymerna är öppnade som laddatafiler.


Om ingen volym anges som argument när man startar konfiguratören, öppnas direktory volymens
databas, och övriga volymer som dbs-volymer.


Navigera

I konfiguratören visas objekten i den aktuella volymen. Objekten ligger i en trädstruktur,
och objekt som har barn visas med en mapp, objekt utan barn med ett löv. För varje objekt
visas som default, dessutom objektets namn, klass och eventuell beskrivning (beskrivningen
hämtas från ett Description attribut i objektet).

Genom att klicka MB1 på en mapp, öppnas mappen och objektets barn visas. Är mappen redan
öppen stängs den. Man kan även öppna en map genom att dubbelklicka var som helst på raden
för objektet.

Vill man se innehållet i ett objekt klicka man med Shift/Klick MB1 på mappen eller lövet,
eller Shift/Dubbelklick MB1 var som helst på objektsraden. Nu visas objektets attribut,
och värdet på respektive attribut. Attributen markeras med olika figurer beroende på typ.

Bitmappar för olika typer av attribut


- Ett vanligt attribut markeras med en långsmal rektangel.

- En vektor markeras med en map och en stapel av attribut markeringar. Vektorn kan öppnas
genom att man klickar med MB1 på mappen eller dubbelklickar någonstans på attributraden.
Nu visas de olika elementen i vektorn.


- Ett attribut som refererar till ett annat attribut eller objekt, dvs av typen Objid eller
AttrRef, markeras med en pil som pekar på en fyrkant.

- Uppräkningstyper, Enum, markeras med en map med div långsmala rektanglar i. Genom att
klicka MB1 på mappen visas de lika alternativen i uppräkningstypen. Alternativen visas med
checkboxar med det valda alternativet markerat. Man kan även dubbelklicka med MB1 på
attributraden för att se alternativen.


- Masktyper, Mask, markeras på liknande sätt som Enum, och de olika bitarna visas med klick
MB1 på mappen, eller dubbelklick MB1 på attributraden.


- Attributobjekt, dvs attribut som innehåller datastrukturen för ett objekt, markeras
med en fyrkant med dubbellinje på ovansidan. Attributobjektet öppnas med klick MB1 på
fyrkanten, eller dubbelklick MB1 på attribut raden.

Ett objekt eller attribut väljs ut genom att man klickar med MB1 på det (dock inte på
mappen/lövet). Med Shift MB1 kan man välja ut fler objekt. Genom att dra med MB1 kan man
också välja ut flera objekt.


Ur ergonomisk synvinkel är det ofta bättre att navigera från tangenbordet. Man använder då
främst piltangenterna. Först måste man se till att fönstret har inmatings fokus genom att
klicka på det. Inmatnings fokus mellan vänster och höger fönster skiftas med TAB.

Men PilUpp/PilNer väljer man ut ett objekt. Har objektet barn öppnar man barnaskaran med
PilHöger, och stänger med PilVänster. Innehållet i objektet, dvs objektets attribut, visas
med Shift/PilHöger och stängs med PilVänster.

Attribut som är vektorer, enum, mask eller attributobjekt, öppnas med PilHöger och stängs
med PilVänster.

När man känner sig hemma i objektsträdet kan man sätta upp sig som 'advanced user'.
Ytterligare funktioner läggs då på piltangenterna. PilHöger på ett objekt visar t ex
attributen i objektet om det inte har några barn. Har det barn får man använda
Shift/PilHöger som förut.

Editera

Editering innebär att man skapar nya objekt, kopierar objekt, tar bort objekt eller ändrar
värde på attribut.

Skapa objekt

Man skapar ett objekt genom att välja ut objekts klass i paletten. Paletten är uppdelad i
mapparna Plant, Node och AllClasses. Under Plant finns de vanligaste klasserna i anläggnings
hierakin, och under Node finns de vanligaste i nodhierakin. Om klassen inte finns med här,
finns samtliga klasser åtkomliga under AllClasses. Här listas alla klassvolymer, och under
respektive volym, klasserna i volymen. Därefter klickar man med mittenknappen på blivande
syskon eller förälder till det nya objektet. Om man klickar på mappen/lövet på destinations-
objektet läggs det nya objeket som första barn, om kan klicka till höger om mappen/lövet
läggs det som syskon.

Man kan även skapa objekt från popupmenyn. Välj ut en klass i paletten och öppna popupmenyn
genom att högerklicka på destinationsobjektet. Aktivera 'Create Object' och välj hur
det nya objektet ska läggas i relation till destinationsobjektet, före eller efter, eller
som första eller sista barn.

Konfiguratören i editeringsläge


Ta bort objekt

Objekt tas bort mha popmenyn. Klicka med högerknappen på objektet och aktivera
'Delete Object'.

Flytta objekt

Man kan även flytta objekt mha popupmenyn, men det är ofta enklare att använda musens
mittenknappen: välj ut det objekt som ska flyttas och klicka med mittenknappen på
destinationsobjektet. Om man klickar på mappen/lövet på destinationsobjektet läggs objektet
som första barn, annars som syskon.

Obs! Undvik att använda Cut/Paste för att flytta ett objekt, eftersom detta skapar en
kopia av objektet med ny objektsidentitet, och referenser till objektet kan förloras.
Man kan använda kommandot paste/keepoid för att behålla identiteten.

Kopiera objekt

Kopiering kan ske med copy/paste eller mha popupmenu.

- copy/paste. Välj ut det eller de objekt som ska kopieras och aktivera 'Edit/Copy' (ctrl/C)
i menyn. De utvalda objekten kopieras nu till en paste-buffert. Välj ut ett destinations
objekt, och aktivera 'Edit/Paste' (ctrl/V). Objekten i paste-bufferten läggs nu som syskon
till destinationsobjektet. Om man istället aktiverar 'Edit/Paste Into' (shift+ctrl/V)
läggs de nya objekten som barn till destinationsobjeketet. Om det kopierade objektet har
barn, kopieras även barnen av copy/paste.

- från popupmenyn. Välj ut det eller de objekt som ska kopieras, ta upp popmenyn från
destinationsobjektet, och aktivera 'Copy selected object(s)'. Man har här möjlighet att
välja hur de nya objekten ska läggas relativt destinationsobjektet, som första eller sista
barn, eller som nästa eller föregående syskon. Om de koperade objekten har ättlingar, och
även de ska kopiera aktiverar man 'Copy selected Tree(s)' istället.

Ändra namn på ett objekt

Namnet ändras genom att objektet väljs ut och 'Edit/Rename' (ctrl/N) aktiveras i menyn. Ett
inmatningsfält öppnas längs ner i konfiguratören där det nya namnet matas in. Ett objektsnamn
kan ha max 31 tecken.

Man kan även ändra namn genom att visa objektets attribut. När man är i editeringsläge visas
nu objektsnamnet främst bland attributen, och kan ändras pss som ett attribut.

Ändra värde på ett attribut

Välj ut det attribut som ska ändras, och aktivera 'Functions/Change value' (ctrl/Q) i menyn.
Ange de nya värdet i inmatningsfältet. Vill man avbryta inmatningen aktiverar man 'Change
value' igen.

Alla attribut är inte ändringsbara. Det beror på attributets funktion, om det ska datasättas
i utvecklingsmiljön, eller inte. De som är ändringsbara markeras med en pil.

Man kan även ändra värde på attribut från objektseditorn som öppnas från popupmenyn (Open
Object). Attribut som är av typen flerradig text, kan endast ändras från objekteditorn.

Som 'advanced user' kan man öppna inmatningsfältet med PilHöger, som ett snabbare alternativ
till 'Change value'.


Symbol fil


Symbol filen är en kommando fil som exekveras vid startup av konfiguratören. Det kan innehålla
definitioner av symboler och andra wtt kommandon. Här följer några exempel på användbara
kommandon.

Genväg till objekt i objektsträdet:

define rb9 "show children /name=hql-rb9"