Osnove
Osnovna sintaksa skriptnog jezika TapHome: dodjela, višeredni algoritmi, povratne vrijednosti, varijable, IF/ELSE, SWITCH, petlje, NaN, komentari, brojevni literali te matematički i logički izrazi.
Dodjela
Mu := Se + 2;Višeredni algoritam
Redci se odvajaju točkom sa zarezom.
Last := Current;
Current := 0;Povratna vrijednost
- Rezultat posljednjeg retka koda
- RETURN(expression) zaustavlja izvođenje algoritma i vraća sadržaj u zagradama
(Co2 > 800) AND (Wind < 10);
equals:
RETURN((CO2 > 800) and (Wind < 10));Privremena varijabla
Postoji samo tijekom jednog izvođenja skripte.
VAR X := 5;Naredba IF
Stil kao u Excelu
IF(logical_expression, value_if_true, value_if_false);
IF(logical_expression, value_if_true);Višeredni stil
IF X < 5
RETURN(1);
ELSEIF X > 10
RETURN(3);
ELSE
RETURN(0);
ENDSwitch
Uspoređuje izraz s popisom slučajeva i vraća odgovarajuću vrijednost prvog slučaja koji se podudara, a ako se nijedan ne podudara, vraća zadanu vrijednost.
SWITCH(expression, case1, value1, [case2, ...], [value2, ...], default_value)Primjer:
SWITCH( MODBUSR(H, 168, UInt16),
0, 0,
0x0002, 1,
0x0004, 2,
0x0008, 3,
0x0010, 4,
0x0040, 5,
0x0800, 6,
NaN)
Petlja
LOOP / WHILE … ponavlja niz naredbi dok je zadani uvjet ispunjen. CONTINUE … preskače preostale naredbe u trenutačnom ciklusu i nastavlja sa sljedećim ciklusom. BREAK … prekida petlju.
Primjer s uvjetom na početku:
int i := 10;
while i > 0
i := i - 1;
if i > 5
continue;
else
break;
end
loopPrimjer s uvjetom na kraju:
int i := 10;
do
i := i + i;
loop while i < 10Vrijednost NaN (nije broj)
NaN se može vratiti kao vrijednost kada stvarna vrijednost nije poznata.
IF Temperature > 250
RETURN(NaN);Funkcija ISNAN(expression) vraća TRUE ako izraz nije broj.
ISNULL
Vraća true ako je parametar NULL, inače false. Koristi se za vrste String i Bytearray. Primjer: ako XML element nije pronađen, povratna vrijednost je NULL.
Sintaksa funkcije je:
ISNULL(object)Sleep
Pauzira skriptu na zadani broj milisekundi. Koristite samo u vrlo posebnim slučajevima.
SLEEP(5);Komentari
Komentar je redak koji počinje znakom #.
# commentBrojevni literali
Heksadecimalni brojevi
U izrazima se mogu koristiti i heksadecimalni brojevi. Prefiks 0x je obavezan, a za ostatak nije važno jesu li slova velika ili mala.
0x0A = 10
0xA0A0 (41120)
0xa0a0 (41120)Binarni brojevi
0b1010 = 10
0b10101010 (170)Matematički izrazi
+, -, *, /
(20.5 + 9.5) / 2 (15)Logički izrazi
AND, OR, !, =, !=, >, <
(!IsRaining OR (Wind>30))
MultiValueSwitchState != 2 (Not equal to 2)