Herunterladen Inhalt Inhalt Diese Seite drucken

Wiederverwendung Von Code Mit Lua Modulen - IFTOOLS MSB-RS485-PLUS Handbuch

Inhaltsverzeichnis

Werbung

KAPITEL 17. SCHNELLEINSTIEG IN LUA
Die print Funktion ignoriert geflissentlich nil Argumente. Aber der Lua Inter-
preter wird einen Fehler generieren sobald Sie versuchen einen nil Wert weiter
zu verarbeiten, z.B. in einer mathematischen Funktion
p r i n t ( n i l )
> n o t h i n g
p r i n t ( math . s i n ( n i l ) )
Die Rückgabe eines nil Wertes wenn ein String erwartet wird, ist keine son-
derlich gute Idee. In den meisten Fällen wird das Resultat in einer anderen
Funktion weiter verarbeitet oder ist Teil einer String Operation. Im folgenden
Skript stoppt der Lua Interpreter die Ausführung mit dem Fehler: 'attempt to
concatenate a nil value' weil Sie keinen nil Wert an einen String anfügen kön-
nen.
p r i n t ( " IO1 = " . . G e t D i g i t S t a t e T e x t ( 2 ) )
Dieses Manko ist allerdings leicht zu korrigieren. Lua behandelt nil Werte wie
ein logisches false. Damit können wir unsere Funktion gegen ungültige Para-
meter absichern und immer einen gültigen String zurückgeben:
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 ] or " INVALID STATE"
7
end
Wir erweitern Zeile 6 mit einer ODER (or) Verknüpfung und geben entweder
einen gültigen Wert aus der Tabelle ODER (falls table[ state ] nil ist)
'INVALID STATE' zurück. Sie können natürlich auch einen beliebigen anderen,
z.B. leeren Rückgabe String wählen.
17.1.5

Wiederverwendung von Code mit Lua Modulen

Sie können eigene Funktionen natürlich immer per Copy & Paste dort einfügen,
wo Sie diese gerade brauchen. Es macht allerdings mehr Sinn Funktionen mit
ähnlichem Zweck in einem separaten Modul zusammenzufassen und in einer
eigenen Modul Datei als Bibliothek zu speichern.
Ein checksum Modul hierbei ist ein gutes Beispiel. Der in der Analyser Soft-
ware verwendete Lua Interpreter kommt mit einem eigenen checksum Modul
welches die gängigsten Algorithmen enthält. Gleichwohl gibt es eine Vielzahl
weiterer checksum Varianten, wie Module 256 in unserem vorherigen Beispiel,
die Sie evtl. in einem eigenen checksum Modul speichern möchten
Der Lua Skript Editor hilft Ihnen bei der Erstellung eines neuen Lua Moduls
mit einem entsprechenden Code Gerüst. Klicken Sie dazu im Editor das 'Neue
Skriptdatei' Icon in der Werkzeugleiste oder drücken Sie
In dem Skript Ersteller Dialog wählen Sie Skript für 'Module' und ersetzen den
vorgegebenen Dateiname mit mychecksums.msbtml. Klicken Sie 'OK' und
der Editor öffnet einen neuen Buffer (Tab) mit bereits eingefügtem Code Ge-
rüst.
4
Lua fasst alle mathematischen Funktionen in dem math Modul zusammen.
200
> bad argument #1 t o ' s i n '
> ( number expected , g o t n i l )
4
:
STRG
+
N
.

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis