Форматирование виртуального устройства
Jump to navigation
Jump to search
Пример описания в 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"/>
Parameters
Name | type and variety | Description |
---|---|---|
iw | number; 1, 2, 3.. |
The width of text field |
back-rgba | number; 0xRRGGBBAA |
Text field background setting. RR – red saturation, 0..0хFF; GG – green saturation, 0..0xFF; BB – blue saturation, 0..0xFF; AA – background saturation, 0..0xFF |
text-rgb | number; 0xRRGGBB |
Text colour setting. RR – red saturation, 0..0хFF; GG – green saturation, 0..0xFF; BB – blue saturation, 0..0xFF. |
title-rgb | number; 0xRRGGBB |
RR – red saturation, 0..0хFF; GG – green saturation, 0..0xFF; BB – blue saturation, 0..0xFF |
prf | string; | Device status description. Status is formatted as sprintf. Status size should not exceed 256 bytes. Only specified data is stored in the device, the text is not kept in the status. Detailed description is below. |
prf attribute description
prf="prf('TEXT %[flags][wigth][.precision]type', STATUS)"
- TEXT – unchangeable text to be displayed;
- flags, wigth, precision, type – status formatting description, see sprintf.
- STATUS – status description
- id() – device id, u16
- subId() – device subId, u8
- addr() – device address, u32
- addrString() – device address textually
- statusStringHex() – device status string as hexadecimal notation
- statusString() – string with the device status
- statusString(u32 byteOffset = 0) – string with the device status with byteOffset offset
- statusString(u32 byteOffset=0, u32 len=0) – string with the device status with byteOffset offset and length len
- status() – device status, i8
- status(u32 byteOffset = 0) – device status with byteOffset offset, i8
- statusU() – device status, u8
- statusBit1Count() – number of status bit(?)
- statusRgb() – RGB status, 0xRRGGBB
- statusU16(u32 byteOffset=0) – device status, u16
- statusU32(u32 byteOffset=0) – device status, u32
- statusBit(u32 byteOffset=0, u32 bitOffset=0) – state of status bit with bitOffset offset, with byteOffset byte offset,
- statusBit(u32 bitOffset=0) – state of status bit with bitOffset offset
- statusBits(u32 byteOffset=0, u32 bitOffset=0, u32 len=0) – len bit status starting from bitOffset of byteOffset byte
- statusBits(u32 bitOffset=0, u32 len=0) – len bit status starting from bitOffset
- statusFloat() – status fractional (status/250)
- statusFloat() – status unsigned fractional (status/250)
- statusFloat2(u32 byteOffset=0) – status fractional (status/256)
- statusFloat2U(u32 byteOffset=0) – status unsigned fractional (status/256) with byteOffset offset
- statusFloat(u32 byteOffset=0) – status fractional (status/250) with byteOffset offset
- statusLevel() – level (for example, dimmer)
- statusFloatString() – string with status fractional (status/250)
- statusFloatString(u32 byteOffset = 0) – string with status fractional (status/250) with byteOffset offset
- statusFloatString2() – string with status fractional (status/256)
- statusFloatString2(u32 byteOffset=0) – string with status fractional (status/256) with byteOffset offset
It is also possible to specify the conditions, for example:
prf=" prf('Text%s', status(0)?'Yes':'No')
if status(0) is true "Text Yes" will be displayed, otherwise "Text No" appears
Or receive the devices status. For example, there is a curtain 343:22 and a lamp 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))"
Status setting for such an element is the following: setStatus(299:201,{134,"Text"});
After status setting in the text field the following will be displayed:
"Curtain is opening Data 134 Status On String Text"
"Curtain" will depend on curtain status,
"Status" will be "Off" if 0 byte with mask of 7 status 299:21 equals to zero, otherwise "Status" will be "On"