Difference between revisions of "Formatted virtual/ru"
Jump to navigation
Jump to search
(Created page with "===Пример описания в XML===") |
(Created page with "Статус будет "Off", если 0 байт с маской 7 статуса 299:21 равен нулю, иначе Статус будет "On"") |
||
(9 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | === | + | ===Параметры=== |
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
|- | |- | ||
− | ! | + | !Название!!Тип и диапазон!!Описание |
|- | |- | ||
− | |iw|| | + | |iw||число;<br>1, 2, 3..||Ширина текстового поля |
|- | |- | ||
− | |back-rgba|| | + | |back-rgba||число;<br>0xRRGGBBAA||Настройка фона текстового поля. RR – насыщенность красного, 0..0хFF; GG – насыщенность зеленого, 0..0xFF; BB – насыщенность синего, 0..0xFF; AA – насыщенность фона, 0..0xFF |
|- | |- | ||
− | |text-rgb|| | + | |text-rgb||число;<br>0xRRGGBB||Настройка цвета текста. RR – насыщенность красного, 0..0хFF; GG – насыщенность зеленого, 0..0xFF; BB – насыщенность синего, 0..0xFF. |
|- | |- | ||
− | |title-rgb|| | + | |title-rgb||число;<br>0xRRGGBB ||RR – насыщенность красного, 0..0хFF; GG – насыщенность зеленого, 0..0xFF; BB – насыщенность синего, 0..0xFF |
|- | |- | ||
− | |prf|| | + | |prf||строка;||Описание статуса устройства.<br>Статус имеет формат sprintf.<br>Размер статуса не должен превышать 256 байт.<br>В устройстве хранятся только указанные данные, текст не сохраняется в статус. Подробное описание ниже. |
|} | |} | ||
− | ===prf | + | ===описание атрибута prf=== |
prf="prf('TEXT %[flags][wigth][.precision]type', STATUS)" | prf="prf('TEXT %[flags][wigth][.precision]type', STATUS)" | ||
− | *TEXT – | + | *TEXT – отображаемый неизменяемый текст; |
− | *flags, | + | *flags, with, precision, type — описание форматирования статуса, см. sprintf. |
− | *STATUS – | + | *STATUS – описание статуса |
− | **id() – | + | **id() – идентификатор устройства, u16 |
− | **subId() | + | **subId() — subId устройства, u8 |
− | **addr() | + | **addr() — адрес устройства, u32 |
− | **addrString() – | + | **addrString() – текстовый адрес устройства |
− | **statusStringHex() – | + | **statusStringHex() – строка состояния устройства в шестнадцатеричном виде. |
− | **statusString() – | + | **statusString() – строка со статусом устройства |
− | **statusString(u32 byteOffset = 0) – | + | **statusString(u32 byteOffset = 0) – строка со статусом устройства со смещением byteOffset |
− | **statusString(u32 byteOffset=0, u32 len=0) – | + | **statusString(u32 byteOffset=0, u32 len=0) – строка со статусом устройства со смещением byteOffset и длиной len |
− | **status() | + | **status() — статус устройства, i8 |
− | **status(u32 byteOffset = 0) | + | **status(u32 byteOffset = 0) — статус устройства со смещением byteOffset, i8 |
− | **statusU() | + | **statusU() — статус устройства, u8 |
− | **statusBit1Count() – | + | **statusBit1Count() – количество бит состояния(?) |
− | **statusRgb() | + | **statusRgb() — статус RGB, 0xRRGGBB |
− | **statusU16(u32 byteOffset=0) – | + | **statusU16(u32 byteOffset=0) – статус устройства, u16 |
− | **statusU32(u32 byteOffset=0) – | + | **statusU32(u32 byteOffset=0) – статус устройства, u32 |
− | **statusBit(u32 byteOffset=0, u32 bitOffset=0) – | + | **statusBit(u32 byteOffset=0, u32 bitOffset=0) – состояние бита состояния со смещением bitOffset, с байтовым смещением byteOffset, |
− | **statusBit(u32 bitOffset=0) – | + | **statusBit(u32 bitOffset=0) – состояние бита состояния со смещением bitOffset |
− | **statusBits(u32 byteOffset=0, u32 bitOffset=0, u32 len=0) – len | + | **statusBits(u32 byteOffset=0, u32 bitOffset=0, u32 len=0) – статус бита len, начиная с bitOffset байта byteOffset |
− | **statusBits(u32 bitOffset=0, u32 len=0) – len | + | **statusBits(u32 bitOffset=0, u32 len=0) – статус бита len, начиная с bitOffset |
− | **statusFloat() | + | **statusFloat() — дробный статус (status/250) |
− | **statusFloat() – | + | **statusFloat() – беззнаковая дробная часть состояния (status/250) |
− | **statusFloat2(u32 byteOffset=0) – | + | **statusFloat2(u32 byteOffset=0) – статус дробный (status/256) |
− | **statusFloat2U(u32 byteOffset=0) – | + | **statusFloat2U(u32 byteOffset=0) – беззнаковая дробь состояния (status/256) со смещением byteOffset |
− | **statusFloat(u32 byteOffset=0) – | + | **statusFloat(u32 byteOffset=0) – дробный статус (status/250) со смещением byteOffset |
− | **statusLevel() | + | **statusLevel() — уровень (например, диммер) |
− | **statusFloatString() – | + | **statusFloatString() – строка с дробным статусом (status/250) |
− | **statusFloatString(u32 byteOffset = 0) | + | **statusFloatString(u32 byteOffset = 0) — строка с дробным статусом (status/250) со смещением byteOffset |
− | **statusFloatString2() – | + | **statusFloatString2() – строка с дробным статусом (status/256) |
− | **statusFloatString2(u32 byteOffset=0) – | + | **statusFloatString2(u32 byteOffset=0) – строка с дробным статусом (status/256) со смещением byteOffset |
− | + | Также можно указать условия, например: | |
prf=" prf('Text%s', status(0)?'Yes':'No') | prf=" prf('Text%s', status(0)?'Yes':'No') | ||
− | + | если статус (0) равен true, будет отображаться "Text Yes", в противном случае отображается "Text No" | |
− | + | Или получить статус устройств. Например, есть штора 343:22 и лампа 299:1: | |
<syntaxhighlight lang="cpp" line> | <syntaxhighlight lang="cpp" line> | ||
Line 73: | Line 73: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Установка статуса для такого элемента следующая: setStatus(299:201,{134,"Text"}); | |
− | + | После установки статуса в текстовом поле будет отображаться следующее: | |
"Curtain is opening | "Curtain is opening | ||
Line 82: | Line 82: | ||
String Text" | String Text" | ||
− | "Curtain" | + | "Curtain" будет зависеть от статуса шторы, |
− | + | Статус будет "Off", если 0 байт с маской 7 статуса 299:21 равен нулю, иначе Статус будет "On" |
Latest revision as of 14:45, 26 January 2022
Пример описания в XML
1<item addr="100:245" back-rgba="0xff7100ff" iw-="1" length="5" name="aa" prf="prf('A: %d\10B: %ds dhjhfg hdfj dfhdfh', device(100, 247).status(0) $ 7, status(1))" sub-type="prf" text-rgb="0xffffff" title-rgb="0xff00" type="virtual"/>
Параметры
Название | Тип и диапазон | Описание |
---|---|---|
iw | число; 1, 2, 3.. |
Ширина текстового поля |
back-rgba | число; 0xRRGGBBAA |
Настройка фона текстового поля. RR – насыщенность красного, 0..0хFF; GG – насыщенность зеленого, 0..0xFF; BB – насыщенность синего, 0..0xFF; AA – насыщенность фона, 0..0xFF |
text-rgb | число; 0xRRGGBB |
Настройка цвета текста. RR – насыщенность красного, 0..0хFF; GG – насыщенность зеленого, 0..0xFF; BB – насыщенность синего, 0..0xFF. |
title-rgb | число; 0xRRGGBB |
RR – насыщенность красного, 0..0хFF; GG – насыщенность зеленого, 0..0xFF; BB – насыщенность синего, 0..0xFF |
prf | строка; | Описание статуса устройства. Статус имеет формат sprintf. Размер статуса не должен превышать 256 байт. В устройстве хранятся только указанные данные, текст не сохраняется в статус. Подробное описание ниже. |
описание атрибута prf
prf="prf('TEXT %[flags][wigth][.precision]type', STATUS)"
- TEXT – отображаемый неизменяемый текст;
- flags, with, precision, type — описание форматирования статуса, см. sprintf.
- STATUS – описание статуса
- id() – идентификатор устройства, u16
- subId() — subId устройства, u8
- addr() — адрес устройства, u32
- addrString() – текстовый адрес устройства
- statusStringHex() – строка состояния устройства в шестнадцатеричном виде.
- statusString() – строка со статусом устройства
- statusString(u32 byteOffset = 0) – строка со статусом устройства со смещением byteOffset
- statusString(u32 byteOffset=0, u32 len=0) – строка со статусом устройства со смещением byteOffset и длиной len
- status() — статус устройства, i8
- status(u32 byteOffset = 0) — статус устройства со смещением byteOffset, i8
- statusU() — статус устройства, u8
- statusBit1Count() – количество бит состояния(?)
- statusRgb() — статус RGB, 0xRRGGBB
- statusU16(u32 byteOffset=0) – статус устройства, u16
- statusU32(u32 byteOffset=0) – статус устройства, u32
- statusBit(u32 byteOffset=0, u32 bitOffset=0) – состояние бита состояния со смещением bitOffset, с байтовым смещением byteOffset,
- statusBit(u32 bitOffset=0) – состояние бита состояния со смещением bitOffset
- statusBits(u32 byteOffset=0, u32 bitOffset=0, u32 len=0) – статус бита len, начиная с bitOffset байта byteOffset
- statusBits(u32 bitOffset=0, u32 len=0) – статус бита len, начиная с bitOffset
- statusFloat() — дробный статус (status/250)
- statusFloat() – беззнаковая дробная часть состояния (status/250)
- statusFloat2(u32 byteOffset=0) – статус дробный (status/256)
- statusFloat2U(u32 byteOffset=0) – беззнаковая дробь состояния (status/256) со смещением byteOffset
- statusFloat(u32 byteOffset=0) – дробный статус (status/250) со смещением byteOffset
- statusLevel() — уровень (например, диммер)
- statusFloatString() – строка с дробным статусом (status/250)
- statusFloatString(u32 byteOffset = 0) — строка с дробным статусом (status/250) со смещением byteOffset
- statusFloatString2() – строка с дробным статусом (status/256)
- statusFloatString2(u32 byteOffset=0) – строка с дробным статусом (status/256) со смещением byteOffset
Также можно указать условия, например:
prf=" prf('Text%s', status(0)?'Yes':'No')
если статус (0) равен true, будет отображаться "Text Yes", в противном случае отображается "Text No"
Или получить статус устройств. Например, есть штора 343:22 и лампа 299:1:
1prf="string a[] ={'Closed', 'Open', 'Is closing', 'Is opening'}; prf('Curtain%s\10Data %d \10Status: %s\10 String%s',a[device(343:22)->status(0)], status(0), (device(299:21)->status(0) $7)?'On':'Off',statusString(1))"
Установка статуса для такого элемента следующая: setStatus(299:201,{134,"Text"});
После установки статуса в текстовом поле будет отображаться следующее:
"Curtain is opening Data 134 Status On String Text"
"Curtain" будет зависеть от статуса шторы,
Статус будет "Off", если 0 байт с маской 7 статуса 299:21 равен нулю, иначе Статус будет "On"