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);
ENDSwitch
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)
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
loopPrzykład z warunkiem na końcu:
int i := 10;
do
i := i + i;
loop while i < 10Wartość 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 #
# commentLiczby 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)