...
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 a 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ĺpca | Typ 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 |
Atribút structType je textový a určuje meno objektu D2000 typu definícia štruktúry. Je povinné ho nastaviť pre každú štrukturovanú hodnotu, ktorá vstupuje do systému D2000.
| Blok kódu |
|---|
| language | js |
|---|
| title | Príklad posielanéj hodnoty typu štruktúra - definícia SD.ArrReal_Text, 2 stĺpce (_int, text), 3 riadky: |
|---|
|
{
"type": "record",
"structType": "SD.Arr_Real_Text",
"value": [[1, "One"], [2, "Two"], [3, "Three"]]
} |
| Blok kódu |
|---|
| language | js |
|---|
| title | Príklad vracanej hodnoty typu štruktúra - definícia SD.ArrReal_Text, 2 stĺpce (_int, text), 3 riadky: |
|---|
|
{
"type": "record",
"definition": {
"columnTypes": ["integer", "text"],
"columnNames": ["digit", "name"]
},
"value": [[1, "One"], [2, "Two"], [3, "Three"]]
} |