Herunterladen Inhalt Inhalt Diese Seite drucken

IFTOOLS MSB-RS485-PLUS Handbuch Seite 211

Inhaltsverzeichnis

Werbung

bellen einfach als eine Liste von Schlüssel/Werte Paare.
Sie können eine einfache Tabelle erzeugen per:
1
days = { "Mon " , " Tue " , "Wed" , " Thu " , " F r i " , " Sat " , " Sun " }
2
f o r i =1 ,# days do
3
p r i n t ( days [ i ] )
4
end
Falls kein Index 'Schlüssel' angegeben wird verwendet Lua eine normale Indi-
zierung beginnend mit dem Wert 1. Im oberen Beispiel hat der erste Tabellen-
eintrag den Index 1, der letzte den Index 7.
In Zeile 2...4 wird über alle Tabelleneinträge iteriert (der Längen Operator #
liefert die Anzahl der Einträge) und die abgekürzten Wochentage ausgegeben.
Wir können die Indexe (Schlüsselwerte) auch ändern um eine Indizierung von
0 zu ermöglichen.
1
days = {
2
[ 0 ] = "Mon " ,
3
[ 1 ] = " Tue " ,
4
[ 2 ] = "Wed" ,
5
[ 3 ] = " Thu " ,
6
[ 4 ] = " F r i " ,
7
[ 5 ] = " Sat " ,
8
[ 6 ] = " Sun "
9
}
10
f o r i =0 ,# days do
11
p r i n t ( days [ i ] )
12
end
Dabei weisen wir explizit jedem Index (Schlüssel) 0...6 den entsprechenden
Wochentag als Wert zu. Die for Schleife in Zeile 10 beginnt nun mit 0, der
Längen Operator # liefert 6 (den letzten gültigen Index in der Tabelle).
Beachten Sie! Das Ergebnis des Längen Operators # kann abweichen, wenn
die Tabelle keine kontinuierlichen Indexe besitzt. Wir werden dies im Abschnitt
Tabellen auf Seite
Zurück zu unseren Beispiel der Digitaleingänge. Statt einer Funktion mit vielen
if...elseif erzeugen wir eine Tabelle und 'assoziieren' jeden Digitalwert
mit einem dazugehörigen Text (String).
I O S t a t e = {
[ 0 ] = "OFF" ,
[ 1 ] = "ON"
}
Unsere GetDigitStateText Funktion vereinfacht sich damit zu:
1
function G e t D i g i t S t a t e T e x t ( s t a t e )
2
l o c a l t b l = {
3
[ 0 ] = "OFF" ,
4
[ 1 ] = "ON"
5
}
6
r e t u r n t b l [ s t a t e ]
7
end
Wenn Sie die Funktion mit einem ungültigen Wert aufrufen, z.B. 2, wird der
Wert nil zurückgegeben, was unter Lua gleichbedeutend ist mit 'dies ist ein
ungültiger Wert'.
206
im Detail erörtern.
17.1. ERSTE SCHRITTE
199

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis