TapHome

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

SWITCH

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)
SWITCH Example

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
loop

Příklad s podmínkou na konci:

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

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