TapHome

Podstawy

Podstawy składni języka skryptowego TapHome — przypisanie, algorytmy wieloliniowe, wartości zwracane, zmienne, IF/ELSE, SWITCH, pętle, NaN, komentarze, literały liczbowe oraz wyrażenia matematyczne i logiczne.

Przypisanie

Mu := Se + 2;

Algorytm wieloliniowy

Każda linia jest oddzielona średnikiem.

Last := Current;
Current := 0;

Zwracana wartość

  • Wynik ostatniej linii kodu
  • RETURN(expression) zatrzymuje wykonanie algorytmu i zwraca wartość podaną w nawiasach
(Co2 > 800) AND (Wind < 10);
equals:
RETURN((CO2 > 800) and (Wind < 10));

Zmienna tymczasowa

Istnieje w ramach pojedynczego wykonania skryptu.

VAR X := 5;

Klauzula IF

Styl Excel

IF(logical_expression, value_if_true, value_if_false);
IF(logical_expression, value_if_true);

Styl wieloliniowy

IF X < 5
  RETURN(1);
ELSEIF X > 10
  RETURN(3);
ELSE
  RETURN(0);
END

Switch

Testuje wyrażenie względem listy przypadków i zwraca odpowiednią wartość pierwszego dopasowanego przypadku, z wartością domyślną, jeśli żaden przypadek nie zostanie spełniony.

SWITCH(expression, case1, value1, [case2, ...], [value2, ...], default_value)

Przykład:

SWITCH( MODBUSR(H, 168, UInt16),
  0, 0,
  0x0002, 1,
  0x0004, 2,
  0x0008, 3,
  0x0010, 4,
  0x0040, 5,
  0x0800, 6,
  NaN)
SWITCH Example

Pętla

LOOP / WHILE … powtarza serię poleceń na podstawie określonego warunku, aż warunek przestanie być spełniony. CONTINUE … pomija wykonanie bieżących poleceń i przechodzi do kolejnego cyklu. BREAK … kończy pętlę.

Przykład z warunkiem na początku:

int i := 10;
while i > 0
    i := i - 1;
    
    if i > 5
        continue;
    else
        break;
    end
loop

Przykład z warunkiem na końcu:

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

Wartość NaN (not a number)

NaN może być zwrócone jako wartość w przypadku, gdy prawdziwa wartość nie jest znana.

IF Temperature > 250 
  RETURN(NaN);

Funkcja ISNAN(expression) ZWRACA TRUE, jeśli wyrażenie nie jest liczbą.

ISNULL

Zwraca TRUE, jeśli parametr jest NULL, w przeciwnym razie FALSE. Używana dla typów String i Bytearray. Przykład: jeśli element XML nie zostanie znaleziony, zwrócona wartość to NULL, więc ISNULL zwróci TRUE.

Składnia funkcji:

ISNULL(object)

Sleep

Usypia skrypt na określoną liczbę milisekund. Używać tylko w bardzo specyficznych przypadkach.

SLEEP(5);

Komentarze

Nowa linia zaczynająca się od znaku #

# comment

Liczby stałe

Liczby szesnastkowe

Wyrażenia mogą również interpretować liczby szesnastkowe. Prefiks 0x jest wymagany, dalsza część nie jest wrażliwa na wielkość liter.

0x0A = 10

0xA0A0   (41120)
0xa0a0   (41120)

Liczby binarne

0b1010 = 10

0b10101010   (170)

Wyrażenia matematyczne

+, -, *, /

(20.5 + 9.5) / 2    (15)

Wyrażenia logiczne

AND, OR, !, =, !=, >, <

(!IsRaining OR (Wind>30))
MultiValueSwitchState != 2 (Not equal to 2)