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