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)1

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

3.1. Š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.

3.2. 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 hodnoty
  • convertIndirectValue – na formátovanie hodnoty bunky v stĺpci typu objekt, ktorá referencuje nejaký iný objekt v systéme
  • convertValue – 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.

3.3. 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.

K zdieľaným zdrojom sa počítajú aj definície štruktúrovaných typov. Tie sa však načítajú vždy.

Napíšte komentár