Základy
Základní syntaxe skriptovacího jazyka TapHome — přiřazení, víceřádkové algoritmy, návratové hodnoty, proměnné, IF/ELSE, SWITCH, smyčky, NaN, komentáře, číselné literály a matematické/logické výrazy.
Přiřazení
Mu := Se + 2;Víceřádkový algoritmus
Každý řádek je oddělen středníkem.
Last := Current;
Current := 0;Návratová hodnota
- Výsledek posledního řádku kódu.
- RETURN(expression) ukončí provádění algoritmu a vrátí obsah uvnitř závorek.
(Co2 > 800) AND (Wind < 10);
equals:
RETURN((CO2 > 800) and (Wind < 10));Dočasná proměnná
Existuje pouze během jednoho spuštění skriptu.
VAR X := 5;IF klauze
Excel styl
IF(logical_expression, value_if_true, value_if_false);
IF(logical_expression, value_if_true);Víceřádkový styl
IF X < 5
RETURN(1);
ELSEIF X > 10
RETURN(3);
ELSE
RETURN(0);
ENDSWITCH
Testuje výraz vůči seznamu případů a vrací hodnotu prvního shodného případu, případně výchozí hodnotu, pokud žádný případ nevyhoví.
SWITCH(expression, case1, value1, [case2, ...], [value2, ...], default_value)Příklad:
SWITCH( MODBUSR(H, 168, UInt16),
0, 0,
0x0002, 1,
0x0004, 2,
0x0008, 3,
0x0010, 4,
0x0040, 5,
0x0800, 6,
NaN)
Smyčka
LOOP / WHILE … opakuje sled příkazů na základě zadané podmínky, dokud není podmínka splněna. CONTINUE … přeskočí provádění příkazů a pokračuje na další cyklus. BREAK … ukončí smyčku.
Příklad s podmínkou na začátku:
int i := 10;
while i > 0
i := i - 1;
if i > 5
continue;
else
break;
end
loopPříklad s podmínkou na konci:
int i := 10;
do
i := i + i;
loop while i < 10NaN (not a number) hodnota
NaN může být vrácena jako hodnota v případě, že skutečná hodnota není známa.
IF Temperature > 250
RETURN(NaN);Funkce ISNAN(expression) vrací TRUE, pokud výraz není číslo.
ISNULL
Vrací true, pokud je parametr NULL, jinak false. Používá se pro typy String a Bytearray. Příklad: pokud XML prvek nebyl nalezen, vrácená hodnota je NULL a výraz ISNULL je true.
Syntaxe funkce:
ISNULL(object)Sleep
Pozastaví skript na uvedený počet milisekund. Používejte jen ve velmi specifických případech.
SLEEP(5);Komentáře
Nový řádek začínající znakem #.
# commentČíselné literály
Hexadecimální čísla
Výrazy mohou také používat hexadecimální čísla. Je vyžadován prefix 0x a zbytek není citlivý na velikost písmen.
0x0A = 10
0xA0A0 (41120)
0xa0a0 (41120)Binární čísla
0b1010 = 10
0b10101010 (170)Matematické výrazy
+, -, *, /
(20.5 + 9.5) / 2 (15)Logické výrazy
AND, OR, !, =, !=, >, <
(!IsRaining OR (Wind>30))
MultiValueSwitchState != 2 (není rovno 2)