Typ D2000 Unival (zjednodušene iba unival) je pomerne podrobne popísaný v konfiguračnej príručke pre systém D2000. Z toho dôvodu bude jeho popis v tejto kapitole značne zjednodušený.
Unival predstavuje tzv. „value-time-quality" typ. To je taký, ktorý okrem hodnoty samotnej so sebou nesie aj informáciu o pôvode a kvalite hodnoty. V nasledujúcom texte sú označované ako atribúty unival-u. Najvýznamnejšie z nich sú:
- Platnosť hodnoty. Hodnota unival-u môže byť neplatná, nazývame ju tiež „invalidná", čo môže byť chápané aj ako neprítomnosť hodnoty. V prípade prístupu k databáze je neplatná hodnota ekvivalentom databázovej null hodnoty.
- Časová známka hodnoty. Definuje časový pôvod hodnoty – čas, kedy hodnota vznikla. Hodnoty v archíve sú zoradené podľa svojich časových známok.
V knižnici JAPI je Unival reprezentovaný rozhraním sk.ipesoft.d2000.base.UnivalValue
. Toto rozhranie je generické, pričom generický parameter definuje typ hodnoty v unival-e samotnej. Systém D2000 definuje 13 typov hodnôt, ktoré môže unival niesť. Pre každý z nich je v balíčku sk.ipesoft.d2000.base
definované rozhranie rozširujúce UnivalValue. Najčastejšie používané sú popísané v tabuľke:
Pomenovanie v D2000 (označenie typu v ESL) | Typ v JAPI | Popis |
---|---|---|
Logický (BOOL) | UnivalBool | 3-stavová logická hodnota s podporou kmitania medzi dvomi logickými stavmi (FALSE, TRUE, OSCILLATE) |
Celočíselný (INT) | UnivalInt | Celočíslená 32-bitová hodnota so znamienkom |
Reálny (REAL) | UnivalReal | Reálna hodnota v pohyblivej rádovej čiarke v dvojitej presnosti (64-bitov) |
Absolútny čas (TIME) | UnivalTime | Časová značka s presnosťou na milisekundy |
Relatívny čas (REAL)Typ D2000 Unival | UnivalTimespan | Dĺžka časového úseku s presnosťou na milisekundy |
Text (TEXT) | UnivalText | Unikódový textový reťazec |
Štruktúrovaný (RECORD) | UnivalRecord | Tabuľka |
Štruktúrovaný Unival
Štruktúrovaný unival je všeobecný typ, ktorý obsahuje údaje organizované vo forme tabuľky. Konkrétna inštancia so štruktúrovanou hodnotou je asociovaná s konkrétnou inštanciou objektu D2000 typu definícia štruktúry, ktorá definuje zoznam stĺpcov tabuľky. Každému stĺpcu prideľuje jednoznačný identifikátor, typ hodnôt a ďalšie vlastnosti. Riadky tabuľky predstavujú jednotlivé záznamy štruktúrovanej hodnoty. Každá bunka v tabuľke obsahuje hodnotu typu unival.
Zobrazovanie hodnoty D2000 objektov na UI podľa konfigurácie
V systéme D2000 je možné pre jednotlivé objekty nastaviť spôsob zobrazovania v používateľskom rozhraní (tradične predovšetkým v procese HI.exe). Využívajú sa k tomu nasledovné mechanizmy:
- Systémové texty – globálne definované číselníky, ktoré vymenovaným typom (logický, alarm, štvorstav, proces, stanica) definujú ich textovú reprezentáciu.
- Slovník – umožňuje lokalizovať aplikáciu definovaním prekladov do viacerých jazykov.
- Stavový text – Umožňuje definovať textové pomenovanie rôznym hodnotám objektu (číselné aj vymenované typy).
- Transformačná paleta – umožňuje definovať zarovnanie, počet zobrazovaných znakov pred a za desatinnou čiarkou, spôsob zobrazenia času a dátumu (pre číselné a časové typy).
V knižnici D2JAPI tieto mechanizmy označujeme pojmom „zdieľané zdroje" – „shared resources". Pretože ich definície môžu byť pomerne rozsiahle, knižnica ich po vytvorení spojenia načíta iba ak o to používateľ explicitne požiada v parametri interestSet pri volaní createSession2, napr.:
connector.createSession(this.arguments.getSessionParameters(), eventsListener, EnumSet.allOf(SharedResourceType.class)
Knižnica sťahuje a udržiava iba jednu kópiu zdieľaných zdrojov pre jeden JConnector, bez ohľadu na počet pripojených Session.
Na transformáciu hodnoty objektu slúžia inštancie triedy sk.ipesoft.d2000.d2japi.sharedResources.Convertor
, ktoré je možné získať volaním
Convertor convertor = session.createDictionaryConvertor();
Volanie vytvorí konvertor, ktorý bude využívať preklad do jazyka, ktorý je predvolený pre prihláseného používateľa. Následne je možné použiť volania:
convertCellValue
– na formátovanie hodnoty bunky štruktúrovanej hodnotyconvertIndirectValue
– na formátovanie hodnoty bunky v stĺpci typu objekt, ktorá referencuje nejaký iný objekt v systémeconvertValue
– na formátovanie skalárnych hodnôt všetkých ostatných objektov
Výsledkom je vždy text aj s informáciou o farbe textu a jeho pozadia.
Preklad textu, ktorý obsahuje slovníkové kľúče
Hore uvedená trieda Convertor pri formátovaní automaticky prekladá slovníkové kľúče. Je určená však predovšetkým pre formátovanie hodnôt objektov systému D2000 a niekedy je potrebné vykonať preklad lokálne uloženého textu. V takom prípade je možné získať samotný prekladač:
Convertor convertor = session.createDictionaryConvertor();
1 V ESL nie je pre relatívny čas samostatný typ, používa sa typ REAL.
2 K zdieľaným zdrojom sa počítajú aj definície štruktúrovaných typov. Tie sa však načítajú vždy.