...
Základnou jednotkou výmeny dát medzi klientom aj D2000 systémom je typ Unival - zoskupujúci základné atribúty objektov v D2000. Nasledujúci príklad unival hodnoty v JSON formáte, reprezentuje hodnotu typu reálne číslo so stavmi Valid a Weak. stavom Valid.
Blok kódu |
---|
language | js |
---|
title | Príklad zápisu Unival hodnoty |
---|
|
{
"type": "real",
"value": 123.456,
"status": ["Valid"]
} |
Každý Unival hodnota má jasne definovaný typ pomocou atribútu type
. V prípade posielania Unival hodnôt do D2000 systému atribút type musí byť vždy definovaný. Výnimku tvorí iba možnosť keď namiesto objektového zápisu Unival typu, pošleme priamo hodnotu, v našom prípade 123,456. Tá je Smart Web serverom automaticky konvertovaná na typ "real"
, keďže sa jedná o hodnotu s desatinnou čiarkou (v prípade poslania reťazca by bol typ nastavený automaticky na hodnotu "text"
a celého čísla na hodnotu "int"
).
Blok kódu |
---|
language | js |
---|
title | Skrátený zápis Unival hodnoty |
---|
|
123.456 |
Odpoveď zo Smart Web servera, nikdy nechodí v tomto skrátenom zápise, ale v "objektovom" zápise s definovaným typom (atribút type
) a hodnotou (atribút value) ak je platná. Ostatné atribúty nie sú v odpovedi zo Smart Web servera implicitne vrátené kvôli optimalizácii, ale klient si ich vie vyžiadať cez špeciálny atribút returnAs
(popísaný nižšie). Atribút type
môže nadobúdať nasledovné hodnoty:
Hodnota atribútu type | Popis typu hodnoty |
---|
"nan" | žiadna |
"bool" | typ VBool |
"int" | celé číslo |
"real" | reálne číslo |
"station" | typ VStation |
"alarm" | typ VAlarm |
"process" | typ VProcess |
"time" | celé číslo (počet milisekúnd od epochy) |
"timespan" | reálne číslo (počet sekúnd) |
"text" | text |
"array" | pole objektov D2ApiValue |
"qval" | typ VQval |
"record" | dvojrozmerné pole (riadok, stĺpec) hodnôt |
Zoznam všetkých atribútov Unival objektu je vypísaný v nasledujúcej tabuľke:
Atribút | Typ hodnoty | Povinný | Predvolená hodnota | Poznámka |
---|
type | text | áno |
|
|
value | podľa typu | nie |
| nenastavený atribút automaticky znamená neplatnú hodnotu, nastavený platnú (ak príznak nie je preťažený v atribúte status) |
valueTime | celé číslo (počet milisekúnd od epochy) | nie | aktuálny čas |
|
valueTimes | dvojrozmerné pole (riadok, stĺpec) celých čísel (počet milisekúnd od epochy) | nie | aktuálny čas | len pre typ "record" |
alarmTime | celé číslo (počet milisekúnd od epochy) | nie |
|
|
alarmTimes | dvojrozmerné pole (riadok, stĺpec) celých čísel (počet milisekúnd od epochy) | nie |
| len pre typ "record" |
flags | pole textov (vymenovaný typ Flag) | nie | žiadny príznak |
|
flagsSets | dvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ Flag) | nie | žiadny príznak | len pre typ "record" |
limitStatus | pole textov (vymenovaný typ LimitStatus) | nie | "InLimit" |
|
limitStatuses | dvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ LimitStatus) | nie | "InLimit" | len pre typ "record" |
processAlarmStatus | pole textov (vymenovaný typ ProcessAlarmStatus) | nie | "NoAlarm" |
|
processAlarmStatuses | dvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ ProcessAlarmStatus) | nie | "NoAlarm" | len pre typ "record" |
status | pole textov (vymenovaný typ Status) | nie | príznak "Valid" |
|
statusSets | dvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ Status) | nie | príznak "Valid" | len pre typ "record" |
formattedValue | text | nie |
| v atribúte sa vracia formátovaná hodnota objektu D2000 zo servera, nemá význam pri volaniach RPC metód |
structType | text | áno |
| len pre typ "record", povinný na každom type "record" vstupujúcom do D2000 |
definition | objekt D2RecordDefinition | - |
| len pre typ "record", nastavený na každom type "record" vystupujúcom z D2000 |
returnFields | pole textov | nie | prázdne pole | špeciálny atribút definuje návratové atribúty požadované klientom od servera |
returnTransformation | objekt ReturnTransformation | nie | null | len pre typ "record" s jedným číselnym stĺpcom a rastúcimi časovými značkami hodnôt, obsahuje konfiguráciu spracovania (downscalingu) časového radu, vykonávanom na serveri pred posielaním odpovede klientovi, kvôli veľkému rozsahu dát |