Štruktúra skriptu
Úvod
Skripty modulu „sysnapse „ používajú syntax JavaScript.
Aktuálne od verzie 1.
Zoznam tried, objektov a metód
-
Objekt: cms
-
Objekt: io_channel
- in_air_quality
- in_current
- in_frequency
- in_humidity
- in_level
- in_power
- in_pressure
- in_rain_gauge
- in_speed
- in_temperature
- in_twilight
- in_voltage
- in_wind_direction
- in_binary
- in_consumption
- in_state
- out_switch
- out_dimmer
- out_level
- out_voltage
- out_shutter
- out_switch_exe(
) - out_dimmer_exe(
) - out_level_exe(
) - out_voltage_exe(
) - Callback: events
- Objekt: variable
- Objekt: controller_variables
- log_info(
message ) - log_error(
message ) - log_warning(
message ) - setTimeout(
callback, time, . . . parameters ) - clearTimeout(
sn ) - setInterval(
callback, time, . . . parameters ) - clearInterval(
sn ) - Objekt: storage
-
Objekt: io_channel
- Objekt: console
- get_url(
url|options, callback ) - Objekt: sp
-
Objekt: modbus
- modbus(
i_sp ) - query(
device_address, code, register_address, data, callback[, timeout] ) - read_holding_UInt16LE(
device_address, register_address, callback[, timeout] ) - read_holding_UInt16BE(
device_address, register_address, callback[, timeout] ) - read_holding_FloatLE(
device_address, register_address, callback[, timeout] ) - read_holding_FloatBE(
device_address, register_address, callback[, timeout] )
- modbus(
Objekt: cms
V tomto objekte je zahrnutá štruktúra objektov a metód špecifické pre CMS systém
Objekt: cms.io_channel
Objekt “io_channel” združuje objekty typu vstupno-výstupných kanálov.
Príklad:
console.log(cms.io_channel.in_air_quality.io[1].value);
Zobrazí hodnotu IO kanála typu „in_air_quality“ v module „io“
Objekt: cms.io_channel.in_air_quality.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_current.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_frequency.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_humidity.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_level.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_power.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_pressure.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_rain_gauge.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_speed.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_temperature.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_twilight.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_voltage.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_wind_direction.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_binary.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_consumption.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.in_state.uid_module[num]
| Názov | Typ | Popis |
|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála |
| . |
premenná GET/ |
Informácia o aktuálnej korektonosti hodnoty IO kanála |
Objekt: cms.io_channel.out_switch.uid_module[num]
| Názov | Typ | Popis | ||||||
|---|---|---|---|---|---|---|---|---|
| . |
premenná GET/ |
Aktuálny stav | ||||||
| . |
metóda | Nastavý kanál
|
||||||
| . |
metóda | Vyčistí kanál
|
||||||
| . |
metóda | Prepne kanál
|
Objekt: cms.io_channel.out_dimmer.uid_module[num]
| Názov | Typ | Popis | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála | ||||||||||||
| . |
metóda | Nastavý kanál
|
Objekt: cms.io_channel.out_level.uid_module[num]
| Názov | Typ | Popis | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála | |||||||||
| . |
metóda | Nastavý kanál
|
Objekt: cms.io_channel.out_voltage.uid_module[num]
| Názov | Typ | Popis | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| . |
premenná GET/ |
Hodnota IO kanála | |||||||||
| . |
metóda | Nastavý kanál
|
Objekt: cms.io_channel.out_shutter.uid_module[num]
| Názov | Typ | Popis | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| . |
premenná GET/ |
Hodnota pozície IO kanála | |||||||||
| . |
premenná GET/ |
Hodnota rotácie IO kanála | |||||||||
| . |
metóda | Nastaví žalúziu do polohy.
|
|||||||||
| . |
metóda | Zastaví pohyb žalúie | |||||||||
| . |
metóda | Kalibrácia kanála |
Metóda: cms.io_channel.out_switch_exe()
Metóda: cms.io_channel.out_dimmer_exe()
Metóda: cms.io_channel.out_level_exe()
Metóda: cms.io_channel.out_voltage_exe()
Nasledovné metódy vykonávajú zápis IO kanálov do registrov zariadení.
Príklad:
cms.io_channel.out_switch.io[1].set();
cms.io_channel.out_switch.io[2].set();
cms.io_channel.out_switch.io[3].set();
let res=cms.io_channel.out_switch_exe();
Callback: cms.io_channel.events
Do premennej sa nastaví metóda „callback“ ktorá sa volá pri udalosti na IO kanáloch.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| plugin_uid | Identifikátor modulu |
| type | Typ IO kanálu |
| num | Číslo IO kanálu |
| event | Názov udalosti |
| value | Hodnota udalosti |
Príklad:
cms.io_channel.events=function(plugin_uid,type, num, event,value){
console.log(plugin_uid,type, num, event,value);
}
Objekt: cms.variable
Objekt pracuje s globálnymi premennými systému CMS
Metóda: cms.variable.get(name)
Vráti hodnotu premennej.
| Názov | Popis |
|---|---|
| name | Presný názov globálnej premennej |
Metóda: cms.variable.set(name,value)
Nastavý hodnotu premennej.
| Názov | Popis |
|---|---|
| name | Presný názov globálnej premennej |
| value | Hodnota premennej |
Metóda: cms.variable.on(name,callback)
Nastaví udalosť pre globálnu premennú.
| Názov | Popis | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| name | Presný názov globálnej premennej | ||||||||
| callback |
Metóda udalosti: (
|
Metóda: cms.variable.clear_on(name,sn)
Odstráni metódu udalosti.
| Názov | Popis |
|---|---|
| name | Presný názov globálnej premennej |
| sn | Sériové číslo udalosti |
Objekt: cms.controller_variables
Objekt pracuje s kontrolným prvkom skriptu.
Callback: cms.controller_variables.on
Do premennej sa nastaví metóda „callback“ ktorá sa volá pri udalosti kontrolného prvku.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| variable_name | Názov premennej kontrolného prvku |
| value | Hodnota kontrolného prvku |
Príklad:
cms.controller_variables.on=function(variable_name,value){
console.log(variable_name,value);
}
Metóda: cms.log_info(message)
Vytvorí log do záznamov CMS.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| message | Text správy záznamu ( |
Metóda: cms.log_error(message)
Vytvorí log do záznamov CMS.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| message | Text správy záznamu ( |
Metóda: cms.log_warning(message)
Vytvorí log do záznamov CMS.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| message | Text správy záznamu ( |
Príklad:
log_info("Test záznamu do CMS");
Metóda: cms.setTimeout(callback,time,...parameters)
Vytvorí spätné volanie po uplynutí časovača.
Zoznam argumentov metódy:
| Názov | Popis | ||||
|---|---|---|---|---|---|
| callback |
Metóda spätného volania: (
|
||||
| time | Hodnota časovača v ms ( |
Príklad:
let timer_sn=cms.setTimeout((arg1,arg2)=>{
console.log(arg1,arg2);
},1000,"argument1","argument2")
Metóda: cms.clearTimeout(sn)
Odstráni spätné volanie časovača.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| sn | Sériové číslo časovača |
Príklad:
let timer_sn=cms.setTimeout(()=>{},1000);
cms.clearTimeout(timer_sn);
Metóda: cms.setInterval(callback,time,...parameters)
Vytvorí spätné volanie po časovom intervale.
Zoznam argumentov metódy:
| Názov | Popis | ||||
|---|---|---|---|---|---|
| callback |
Metóda spätného volania: (
|
||||
| time | Hodnota intervalu v ms ( |
Príklad:
let interval_sn=cms.setInterval((arg1,arg2)=>{
console.log(arg1,arg2);
},1000,"argument1","argument2")
Metóda: cms.clearInterval(sn)
Odstráni spätné volanie intervalu.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| sn | Sériové číslo intervalu |
Príklad:
let interval_sn=cms.setInterval(()=>{},1000);
cms.clearTimeout(interval_sn);
Objekt: cms.controller_variables
Objekt pracuje s kontrolným prvkom skriptu.
Objekt: cms.storage
Obsah objektu uchovávaný v dlhodobej pamäti.
Príklad:
//zápis do pamäte
cms.storage={pouzivatelia:[{meno:"Martin", vek:23},{meno:"Brano", vek:24}]};
//čitanie z pamäte
let meno=cms.storage.pouzivatelia[0].meno;
console.log(meno);
Objekt: console
Objekt pre vypísanie informácií do konzoly scriptu.
Metóda: console.log(...arg)
Vypíše argumenty typu log do konzoly
Metóda: console.info(...arg)
Vypíše argumenty typu info do konzoly
Metóda: console.warn(...arg)
Vypíše argumenty typu warn do konzoly
Metóda: console.error(...arg)
Vypíše argumenty typu error do konzoly
Príklad:
console.log("Test argumentu 1","Test argumentu 2");
Metóda: get_url(url|options,callback)
Odošle dopyt pre odoslanie a získanie dát z URL.
| Názov | Popis | ||||||
|---|---|---|---|---|---|---|---|
| url | url adresa ( |
||||||
| options |
{ protocol:"http|https" } Ostatné podľa dokumentácie http. |
||||||
| callback |
Metóda udalosti: (
|
Príklad:
get_url({
hostname: 'www.google.com',
protocol: "http",
path: '/upload',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(postData),
}
},(data,err)=>{
console(data,err);
}
);
Objekt: sp
Objekt pre prácu so sériovým portom.
Metóda: sp.getdevices()
Vráti zoznam sériových zariadení.
Štruktura: name_1;
Príklad:
let xdevices=sp.getdevices();
let adevices=xdevices.split("|");
for(let device of adevices){
let parameters=device.split(";");
let name=parameters[0];
let device_sn=parameters[1];
let state=parameters[2];
console.log("Device: ",name,"SN: ",device_sn,"SATE: ",state);
}
Metóda: sp.open(options,callback)
Otvorí príslušný port na prácu a vytvorí inštanciu objektu.
Zoznam argumentov metódy:
| Názov | Popis | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| options |
Objekt parametrov:
|
||||||||||||
| callback |
Metóda udalosti: (
|
Príklad:
let xsp=sp.open({
device_sn:"a7a56bd92336995658b6b",
baudRate:115200
},(data)=>{
console.log("Prijaté dáta z portu: ",data);
}
);
xsp.send("Test");
Metóda: {sp.open}.send(data,callback)
Odošle dáta do sériového portu.
Zoznam argumentov metódy:
| Názov | Popis | ||||
|---|---|---|---|---|---|
| data | Dáta na odoslanie ( |
||||
| callback |
Metóda udalosti: (
|
Príklad:
let xsp=sp.open({device_sn:"a7a56bd92336995658b6b"});
xsp.send("Test",(res)=>{
if(res===false)console.log("Chyba pri odosielaní!");
});
xsp.close();
Metóda: {sp.open}.close()
Zatvorí príslušný port
Objekt: modbus
Objekt pre prácu s modbusom.
Metóda: modbus(xsp)
Vytvorí inštanciu pre prácu s modbusom.
Zoznam argumentov metódy:
| Názov | Popis |
|---|---|
| xsp | Inštancia sérového portu {sp. |
Príklad:
let xsp=sp.open({device_sn:"a7a56bd92336995658b6b");
let xmodbus=modbus(xsp);
Metóda: {modbus}.query(device_address,code,register_address,data,callback[,timeout])
Odošle dáta do sériového portu.
Zoznam argumentov metódy:
| Názov | Popis | ||||||
|---|---|---|---|---|---|---|---|
| device_address | Adresa zariadenia MODBUS ( |
||||||
| code | Kód funkcie MODBUS ( |
||||||
| register_address | Adresa registra MODBUS ( |
||||||
| data | Dáta MODBUS ( |
||||||
| callback |
Metóda spätného volania odpovede: (
|
||||||
| timeout | Časovač prerušenia v milisekundách ( |
Príklad:
let xsp=sp.open({device_sn:"a7a56bd92336995658b6b");
let xmodbus=modbus(sxp);
xmodbus.query(0x01,0x03,0x0001,Buffer.from([0x01,0x02,0x03]),(data,err)=>{
if(!err){
console.log(data);
}else console.error("Dopyt zlyhal");
})
Metóda: {modbus}.read_holding_UInt16LE(device_address,register_address,callback[,timeout])
Prečíta dáta z registra vo formáte UInt16LE
Zoznam argumentov metódy:
| Názov | Popis | ||||||
|---|---|---|---|---|---|---|---|
| device_address | Adresa zariadenia MODBUS ( |
||||||
| register_address | Adresa registra MODBUS ( |
||||||
| callback |
Metóda spätného volania odpovede: (
|
||||||
| timeout | Časovač prerušenia v milisekundách ( |
Príklad:
let xsp=sp.open({device_sn:"a7a56bd92336995658b6b");
let xmodbus=modbus(sxp);
xmodbus.read_holding_UInt16LE(0x01,0x0001,(data,err)=>{
if(!err){
console.log("Hodnota registra: ",data);
}else console.error("Dopyt zlyhal");
})
Metóda: {modbus}.read_holding_UInt16BE(device_address,register_address,callback[,timeout])
Prečíta dáta z registra vo formáte UInt16BE
Zoznam argumentov metódy:
| Názov | Popis | ||||||
|---|---|---|---|---|---|---|---|
| device_address | Adresa zariadenia MODBUS ( |
||||||
| register_address | Adresa registra MODBUS ( |
||||||
| callback |
Metóda spätného volania odpovede: (
|
||||||
| timeout | Časovač prerušenia v milisekundách ( |
Príklad:
let xsp=sp.open({device_sn:"a7a56bd92336995658b6b");
let xmodbus=modbus(sxp);
xmodbus.read_holding_UInt16BE(0x01,0x0001,(data,err)=>{
if(!err){
console.log("Hodnota registra: ",data);
}else console.error("Dopyt zlyhal");
})
Metóda: {modbus}.read_holding_FloatLE(device_address,register_address,callback[,timeout])
Prečíta dáta z registra vo formáte FloatLE
Zoznam argumentov metódy:
| Názov | Popis | ||||||
|---|---|---|---|---|---|---|---|
| device_address | Adresa zariadenia MODBUS ( |
||||||
| register_address | Adresa registra MODBUS ( |
||||||
| callback |
Metóda spätného volania odpovede: (
|
||||||
| timeout | Časovač prerušenia v milisekundách ( |
Príklad:
let xsp=sp.open({device_sn:"a7a56bd92336995658b6b");
let xmodbus=modbus(sxp);
xmodbus.read_holding_FloatLE(0x01,0x0001,(data,err)=>{
if(!err){
console.log("Hodnota registra: ",data);
}else console.error("Dopyt zlyhal");
})
Metóda: {modbus}.read_holding_FloatBE(device_address,register_address,callback[,timeout])
Prečíta dáta z registra vo formáte FloatBE
Zoznam argumentov metódy:
| Názov | Popis | ||||||
|---|---|---|---|---|---|---|---|
| device_address | Adresa zariadenia MODBUS ( |
||||||
| register_address | Adresa registra MODBUS ( |
||||||
| callback |
Metóda spätného volania odpovede: (
|
||||||
| timeout | Časovač prerušenia v milisekundách ( |
Príklad:
let xsp=sp.open({device_sn:"a7a56bd92336995658b6b");
let xmodbus=modbus(sxp);
xmodbus.read_holding_FloatBE(0x01,0x0001,(data,err)=>{
if(!err){
console.log("Hodnota registra: ",data);
}else console.error("Dopyt zlyhal");
})
Nenašli ste, čo ste hľadali?
Ak Vám v článku niečo chýba, alebo ste v ňom našli chybu, dajte nám o tom vedieť. Pomáhate nám tak zlepšovať naše produkty.