Hallo CHDK-Freunde,
da sich immer mehr für die Skriptsprache Lua interessieren, soll hier eine Möglichkeit gegeben werden, grundsätzliche Informationen und Hilfestellungen zu sammeln.
Lua ist eine mächtige und relativ einfache Sprache. Einfach deshalb, weil Lua mit sehr wenigen Befehlen auskommt und die Definition von Variablen unkompliziert ist. Lua lässt sich mit benutzerdefinierten Funktionen erweitern. So sind auch alle CHDK-spezifischen Funktionen benutzerdefinierte Funktionen, die im CHDK bereits vordefiniert wurden.
Die Grundlegende Funktionsweise von Lua sollte man sich mit Hilfe der Lua-Referenz aneignen.
Lua-Version 5.2 (verwendet in chdkptp, englisch) => http://www.lua.org/manual/5.2/
Lua-Version 5.1 (verwendet in CHDK, deutsch) => http://lua.coders-online.net/?contentID=1
Lua für Einsteiger (deutsch) => http://lua.gts-stolberg.de/
Programmieren in Lua, erste Ausgabe (englisch) => http://www.lua.org/pil/contents.html
Die CHDK-spezifischen Lua-Funktionen bauen auf den CHDK-uBASIC-Befehlen auf. D.h., grundsätzlich sind fast alle uBASIC-Befehle auch in Lua anwendbar. Man muss nur die Lua-Syntax beachten. Zusätzlich gibt es eine Reihe von Funktionen, die ausschließlich für Lua in das CHDK integriert wurden.
Im deutschen CHDK-Handbuch findet man im Kapitel uBASIC alle Skriptfunktionen, die für uBASIC und Lua nutzbar sind. Im Kapitel Lua werden alle Funktionen gelistet, die nur für Lua gelten oder abweichend zu uBASIC in Lua benutzt werden. Außerdem gibt es auf CHDK.wiki eine sehr gute Referenz zu den Skriptbefehlen.
http://chdk.wikia.com/wiki/CHDK_Scripti ... rence_Page
Lua-Skripte werden als einfache Text-Dokumente mit der Dateiendung .lua abgespeichert. Deshalb kann ein Lua-Skript mit jedem beliebigen Texteditor erstellt werden. Es wird aber ein professioneller Editor empfohlen, der in der Lage ist, die Syntax von Programmiersprachen zu erkennen und den Code dadurch farblich zu kennzeichnen (Syntax-Highlighting), z.B. Notepad++.
Für Notepad++ gibt es auch eine kleine Entwicklerumgebung, mit der man CHDK-Lua-Skripte testen kann. Diese Testumgebung ist in der Lage, Skripte grundsätzlich auf Syntaxfehler zu prüfen und Skripte aus dem Editor heraus Lokal oder auf der Kamera zu testen. Beim lokalen Test stehen nicht alle kameraspezifischen Funktionen zur Verfügung.
viewtopic.php?f=7&t=2973
Um die Skripte auf der Kamera zu testen, ist eine PTP-Verbindung notwendig. Die Einrichtung dieser Verbindung wird beim Projekt ptpCamGui ausführlich beschrieben:
viewtopic.php?f=7&t=2207
Mit ptpCamGui können Lua-Skripte ebenfalls getestet werden. Dazu besitzt das Programm eine Lua-Konsole.
Viel mächtiger ist aber der PTP-Klient chdkptp. Dieser Klient ist selbst in großen Teilen in Lua geschrieben. Der Klient gestattet das Ausführen von Lua-Skripts. Dabei wird zwischen lokalen und auf der Kamera ausgeführten Skripts unterschieden.
viewtopic.php?f=7&t=2699
Und nun noch ein paar Links, die sich mit CHDK-spezifischen Skripttechniken beschäftigen.
viewtopic.php?f=7&t=1594
viewtopic.php?f=7&t=3077
http://chdk.wikia.com/wiki/Lua/Lua_Reference
Weitere Hilfestellungen zu Lua allgemein und CHDK-spezifisch sind an dieser Stelle willkommen. Das ist sicherlich auch ein guter Platz, um allgemein über Lua-Skripttechniken zu diskutieren.
Gruß msl