Základy
Základná syntax skriptovacieho jazyka TapHome — priradenie, viacriadkové algoritmy, návratové hodnoty, premenné, IF/ELSE, SWITCH, slučky, NaN, komentáre, číselné literály a matematické/logické výrazy.
Priradenie
Mu := Se + 2;Viacriadkový algoritmus
Každý riadok je oddelený bodkočiarkou.
Last := Current;
Current := 0;Vrátená hodnota
- Výsledok posledného riadku kódu
- RETURN(expression) ukončí vykonávanie algoritmu a vráti výraz v zátvorkách
(Co2 > 800) AND (Wind < 10);
equals:
RETURN((CO2 > 800) and (Wind < 10));Dočasná premenná
Existuje len počas jedného vykonania skriptu.
VAR X := 5;IF klauzula
Excel štýl
IF(logical_expression, value_if_true, value_if_false);
IF(logical_expression, value_if_true);Viacriadkový štýl
IF X < 5
RETURN(1);
ELSEIF X > 10
RETURN(3);
ELSE
RETURN(0);
ENDSWITCH
Testuje výraz proti zoznamu prípadov a vráti hodnotu prvého zodpovedajúceho prípadu; ak žiadny nevyhovuje, vráti predvolenú hodnotu.
SWITCH(expression, case1, value1, [case2, ...], [value2, ...], default_value)Príklad:
SWITCH( MODBUSR(H, 168, UInt16),
0, 0,
0x0002, 1,
0x0004, 2,
0x0008, 3,
0x0010, 4,
0x0040, 5,
0x0800, 6,
NaN)
Slučka
LOOP / WHILE … opakuje sériu príkazov podľa zadanej podmienky, až kým sa táto podmienka nesplní. CONTINUE … preskočí vykonanie zvyšných príkazov v aktuálnom cykle a pokračuje ďalším cyklom. BREAK … ukončí slučku.
Príklad s podmienkou na začiatku:
int i := 10;
while i > 0
i := i - 1;
if i > 5
continue;
else
break;
end
loopPríklad s podmienkou na konci:
int i := 10;
do
i := i + i;
loop while i < 10NaN (not a number) hodnota
NaN sa môže vrátiť v prípade, že skutočná hodnota nie je známa.
IF Temperature > 250
RETURN(NaN);Funkcia ISNAN(expression) vráti TRUE, ak výraz nie je číslo.
ISNULL
Vráti true, ak je parameter NULL, inak false. Používa sa pre typy String a Bytearray. Príklad: ak sa XML element nenájde, návratová hodnota je NULL.
Syntax funkcie je:
ISNULL(object)Sleep
Pozastaví skript na daný počet milisekúnd. Používajte iba vo veľmi špecifických prípadoch.
SLEEP(5);Komentáre
Nový riadok začínajúci znakom #
# commentČíselné literály
Hexadecimálne čísla
Výrazy môžu interpretovať aj hexadecimálne čísla. Prefix 0x je povinný a zvyšok nie je citlivý na veľkosť písmen.
0x0A = 10
0xA0A0 (41120)
0xa0a0 (41120)Binárne čí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 (Not equal to 2)