TapHome

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);
END

SWITCH

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)
SWITCH Príklad

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
loop

Príklad s podmienkou na konci:

int i := 10;
do
    i := i + i;
loop while i < 10

NaN (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)