Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

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 SmartWeb 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
languagejs
titleSkrátený zápis Unival hodnoty
123.456

Odpoveď zo Smart Web SmartWeb 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á.

Info

Ostatné atribúty nie sú v odpovedi zo Smart Web SmartWeb 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 typePopis 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

...

AtribútTyp hodnotyPovinnýPredvolená hodnotaPoznámka
typetextáno

valuepodľa typunie
nenastavený atribút automaticky znamená neplatnú hodnotu, nastavený platnú (ak príznak nie je preťažený v atribúte status)
valueTimecelé číslo (počet milisekúnd od epochy)nieaktuálny časčasová značka
valueTimesdvojrozmerné pole (riadok, stĺpec) celých čísel (počet milisekúnd od epochy)nieaktuálny časčasové značky hodnôt v štruktúre, len pre typ "record"
alarmTimecelé číslo (počet milisekúnd od epochy)nie
časová značka alarmu
alarmTimesdvojrozmerné pole (riadok, stĺpec) celých čísel (počet milisekúnd od epochy)nie
časové značky alarmov v štruktúre, len pre typ "record"
flagspole textov (vymenovaný typ Flag)niežiadny príznakpole uživateľských príznakov, možné hodnoty sú "A""P"
flagsSetsdvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ Flag)niežiadny príznakdvojrozmerné pole polí uživateľských príznakov hodnôt štruktúry, len pre typ "record"
limitStatustext (vymenovaný typ LimitStatus)nie"InLimit"limitný stav, možné hodnoty sú: "InLimit", "VeryLow", "Low", "High", "VeryHigh", "LimitsProblem"
limitStatusesdvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ LimitStatus)nie"InLimit"dvojrozmerné pole limitných stavov hodnôt štruktúry, len pre typ "record"
processAlarmStatustexto (vymenovaný typ ProcessAlarmStatus)nie"NoAlarm"stav alarmu procesu, možné hodnoty sú: "NoAlarm", "ToOn", "ToOff", "On", "Off", "Err", "Oscillate", "ErrCmdOn", "ErrCmdOff", "SwToTrans", "SwToOff", "SwToOn", "SwToErr", "SwTrans", "SwOff", "SwOn", "SwErr", "ErrZalCmdOff", "HL", "VHL", "LL", "VLL", "ToHL", "ToVHL", "ToLL", "ToVLL", "ErrWriteCmd", "Change", "A29", "A30", "A31", "SysPrAl"
processAlarmStatusesdvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ ProcessAlarmStatus)nie"NoAlarm"dvojrozmerné pole stavov alarmu procesov v štruktúre, len pre typ "record"
statuspole textov (vymenovaný typ Status)niepríznak "Valid"pole stavov, možné hodnoty sú: "Valid", "ProcAlarm", "NoAckPAlarm", "PrAlSilent", "Weak", "NoAckValue", "Transient", "Default", "Manual", "AlCrit", "Unknown"
statusSetsdvojrozmerné pole (riadok, stĺpec) polí textov (vymenovaný typ Status)niepríznak "Valid"dvojrozmerné pole stavov hodnôt štruktúry, len pre typ "record"
formattedValuetextnie
v atribúte sa vracia v odpovedi zo servera formátovaná hodnota objektu D2000, nemá význam pri volaniach RPC metód
structTypetextáno
meno štruktúry, len pre typ "record", povinný na každom type "record" posielanom do D2000
definitionobjekt D2RecordDefinition-
definícia Štruktúry, len pre typ "record", nastavený na každej hodnote s typom "record" vracanej z D2000
returnAstextnie
má význam len pri volaní RPC metód s výstupnými parametrami, definuje logický názov, pod ktorým bude vrátená výstupná hodnota
returnFieldspole textovnieprázdne polešpeciálny atribút definuje dodatočné návratové atribúty požadované klientom od servera, hodnoty sú popísané nižšie
returnTransformationobjekt ReturnTransformationnienulllen 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, hodnoty sú popísané nižšie

Optimalizácia obsahu vrátenej hodnoty Unival

Kvôli minimalizácii prenášaných dát Unival objekty štandardne na výstupe z D2000 obsahujú len atribút type value (ak je hodnota platná). V prípade potreby ostatných rozširujúcich atribútov hodnoty, ktoré poskytuje systém D2000, je možné pri volaní nastaviť atribút returnFields a v ňom vymenovať požadované atribúty. Hodnota atribútu returnFields má formát poľa textov. Prípustné hodnoty sú v nasledujúcej tabuľke.

...

Kotva
implicitConversion
implicitConversion
Implicitná konverzia jednoduchých JSON typov na

...

Unival hodnotu

Pre zjednodušenie práce cez API rozhrania je možné ako vstupné hodnoty do systému D2000 používať aj jednoduché typy namiesto objektov typu Unival. Takéto hodnoty majú automaticky nastavený príznak platnosti, čas vzniku na aktuálny čas a ostatné príznaky nadobúdajú ich predvolenú hodnotu.

Typ formátu JSONZodpovedajúci typ UnivalPoznámka
boolean"bool"
number"bool"Ak je cieľový typ v D2000 BOOL. Čísla sú interpretované podľa poradia v type VBool.
number"int"Ak je cieľový typ v D2000 INT. Ak bolo zadané reálne číslo, tak bude zaokrúhlené na celé.
number"real"Ak je cieľový typ v D2000 REAL.
number"time"Ak je cieľový typ v D2000 TIME. Pozor: Číslo je interpretované ako počet sekúnd od 1972-01-01 00:00:00 UTC, nie ako počet milisekúnd od epochy.
string"text"

Kotva
returnAs
returnAs
Definovanie vrátených hodnôt z RPC metód

Atribút returnFields definuje logický názov výstupného parametra požadovaného klientom od servera.

Image Added

 Na obrázku je znázornený príklad volania metódy SimpleSum klientom. Prvé dva parametre sú jednoduché JSON typy ktoré su implicitne konvertované na správne Unival hodnoty. Tretí parameter je výstupný a klient definuje v atribúte returnAs, logický názov pod ktorým mu bude výstupná unival hodnota vrátená, v tomto prípade je to logický názov "vysledok".

Kotva
returnFields
returnFields
Optimalizácia obsahu vrátenej hodnoty Unival

Kvôli minimalizácii prenášaných dát Unival objekty štandardne na výstupe z D2000 obsahujú len atribút type value (ak je hodnota platná). V prípade potreby ostatných rozširujúcich atribútov hodnoty, ktoré poskytuje systém D2000, je možné pri volaní nastaviť atribút returnFields a v ňom vymenovať požadované atribúty. Hodnota atribútu returnFields má formát poľa textov. Prípustné hodnoty sú v nasledujúcej tabuľke.

Hodnota v poli returnFieldsVypĺňané atribúty v odpovedi zoservera
"AlarmTime"alarmTime, alarmTimes
"Flags"flags, flagsSets
"LimitStatus"limitStatus, limitStatuses
"ProcessAlarmStatus"processAlarmStatus, processAlarmStatuses
"Status"status, statusSets
"ValueTime"valueTime, valueTimes
"FormattedValue"formattedValue

Unival typu štruktúra ("record")

Hodnota typu štruktúra má svoje hodnoty a atribúty uložené ako dvojrozmerné pole (riadok, stĺpec). Hodnoty nadobúrajú typ podľa definície štruktúry v systéme D2000. Nepoužíva rozširujúce atribúty alarmTime, flags, limitStatus, processAlarmStatus, status a valueTime. Namiesto nich používa atribúty alarmTimes, flagsSets, limitStatuses, processAlarmStatuses, statusSets, valueTimes, ktoré sú dvojrozmerným poľom a prvky majú rovnaký typ ako pôvodné atribúty. Ďalšími atribútmi používanými len pri štruktúrach sú definition structType. Atribút definition (objekt D2RecordDefinition) je vždy automaticky nastavený na všetkých štruktúrovaných hodnotách, ktoré vystupujú zo systému D2000. Tento atribút popisuje názvy stĺpcov a ich typy v štrukturovanej premennej. Typy stĺpcov v štruktúre sú zjednodušenou verziou typov Unival.

Typ stĺpcaTyp hodnoty
"bool"typ VBool
"integer"celé číslo
"real"reálne číslo
"time"celé číslo (počet milisekúnd od epochy)
"timespan"reálne číslo (počet sekúnd)
"text"text
"object"podľa typu referencovaného D2000 objektu

...