Changes

2,108 bytes added ,  13:27, 26 January 2022
Created page with "Виртуальное устройство"
<languages/>
===Example of description in XML===

<syntaxhighlight lang="xml" line>
<item addr="333:132" name="sensor" type="virtual" sub-type="sensor" dim="%" length="2"/>
<item addr="333:145" name="Text" type="virtual" sub-type="text" length="0"/>
</syntaxhighlight>

===Parameters===

{|class="wikitable"
|-
!Name!!type and variety!!description
|-
|sub-type||enum||sensor – virtual sensor<br><br>text – virtual sensor of text type (UTF8), length is to be equal to 0<br>long-text – virtual field of text type (UTF8), length is to be equal to 0<br>Devices that need script to track the status (see the example below the table):<br>lamp, dimer-lamp, rgb-lamp, jalousie, gate, gate120, jalousie120<br>prf – with formatted set of status, the description isbelow
|-
|length*||number||status size, bytes<br>0 – dynamic size (obvious for the elements of "sub-type=text" type)
|-
|dim||symbol||Symbol added to the end of virtual sensor value (for example, % or С)
|}
<nowiki>*</nowiki> – required fields

===Example of virtual device "lamp"===

<syntaxhighlight lang="xml" line>
<item addr="142:99" length="1" name="Lamp" sub-type="lamp" type="virtual"/>
</syntaxhighlight>

The processing of pressing in the script

<syntaxhighlight lang="cpp" line>
u8 state = 0;
V-ID/142:99 {
if (opt(0)==0xff){//pressing the element in the interface
if (state==0) state = 1;
else state = 0;
setStatus(142:99,state);//for correct displaying in the interface
}
}
</syntaxhighlight>

===Example of virtual device "dimmable lamp"===
<syntaxhighlight lang="xml" line>
<item addr="142:99" length="2" name="Lamp" sub-type="dimer-lamp" type="virtual"/>
</syntaxhighlight>

The script processing of stroke
<syntaxhighlight lang="cpp" line>
u8 state[2] = {0,0};
V-ID/142:99
{
if (opt(0)==0xff){
if (state[0]==0) state[0] = 1;
else state[0] = 0;
}else (opt(0)==0xfe){
state[0]=state[0];
}else {
state[0]=opt(0);
}

if(opt(1)==0xfe){
state[1]=state[1];
}else {
state[1]=opt(1);
}
setStatus(142:99,state);
}
</syntaxhighlight>
editor, translation-admin, translator
4,754

edits