Hallo msl,
Du definierst eine (Anmerkung: Lua Unter-)Funktion wait_click(). Diese ist aber schon als CHDK-spezifische Funktion vorhanden...
Vielen lieben Dank für diesen entscheidenden Hinweis!!!
Du hast natürlich völlig Recht damit, daß eine eigene definierte Unterfunktion in einem Lua-Skript niemals einen Namen bekommen darf, welcher bereits von CHDK-spezifischen Funktionen verwendet wird.
Nochmals Danke an Dich, weil ich diesen dämlichen Anfänger-Fehler von mir komplett übersehen hatte.
Im Anhang gibt es eine entsprechend korrigierte neue Beta-Version dieses Skriptes.
Mit dem bestehenden Konzept der Hauptschleife ist eine Tastaturabfrage nur schwer möglich...
Aus meiner Sicht müsste die Hauptschleife umgeschrieben werden...
Da vertust Du Dich m.E., weil bei aktiviertem MAN für die Voreinstellung "Display aus nach Bild-Nr" die Zeitspanne zwischen zwei Bildern in zwei Zeitbereiche aufgeteilt wird:
Im ersten Zeitbereich ist eine (aber bisher auch nur eine einzige!) Eingabe über Taste DISPLAY möglich, um das LCD entweder aus- oder wieder einzuschalten.
Im zweiten Zeitbereich wird dann abhängig vom Zeitpunkt eines erfolgten Tastendruckes auf DISPLAY (auch wenn dieser gar nicht erfolgt ist) die Zeit für den folgenden Sleep-Befehl ermittelt, damit die gewünschte Intervallzeit korrekt (falls überhaupt möglich) eingehalten werden kann.
Ich habe das eben an meiner S3 bei 6 sec Intervallzeit bei 7 Aufnahmen getestet und dabei mehrmals via Taste DISPLAY das LCD deaktiviert bzw. wieder aktiviert. Die vorgewählten 6 sec Intervallzeit wurden dabei stets exakt eingehalten völlig unabhängig davon, wie oft ich diese Funktion verwendet habe. Diese Resultate entsprechen auch exakt dem, was ich mir bei der Programmierung vorgenommen hatte.
Insofern sehe ich auch keinen Grund, die Hauptschleife zu ändern.
Allerdings könnte ich mein Skript zukünftig noch etwas "intelligenter" programmieren, indem ich für das Zeitfenster zwischen zwei Aufnahmen, was für Key-Abfragen zur Verfügung steht, statt bisher nur einer Key-Abfrage weitere Key-Abfragen zulasse, bis das Zeitfenster wieder zu ist.
Das wäre m.E. bspw. sinnvoll bei Intervallserien mit recht langen Intervallen, um zwischendurch "mal kurz" den Skriptstatus am LCD abzufragen und danach das LCD wieder auszuschalten, insbesondere während einer langen Pause zwischen zwei Aufnahmen, und das ggfs. sogar mehrfach. Da das Zeitfenster für solche Key-Abfragen bereits jetzt streng limitiert ist, kann man sich dabei auch nicht die vorgesehenen Intervallzeiten kaputtmachen.
Das Tüpfelchen auf dem i wäre dann eine (von mir noch zu programmierende) Funktion, welche den aktuellen Status Quo des Skriptes nach einer Reaktivierung des LCD anzeigt.Eine passende Programmierung dazu wird zwar eine schwierige Aufgabe für mich werden, klingt aber auch nach einer interessanten neuen Aufgabe für mich, um ein noch besserer Lua-Programmierer werden zu können.
EDIT 27.10.2014 um 20:00 UhrIch habe erste weitere Verbesserungen am Skript ausgeführt und die Konsolenausgaben optimiert.
Nach einem einem Wiedereinschalten des LCD wird nun automatisch die letzte Konsole angezeigt, und auch die Textausgabe für "Warte Intervallzeit ab..." wurde auf eine nach meinen Änderungen sinnvollere Skriptposition verschoben.
Liebe Grüße
Werner_O
Anbei die neue Test-Skriptversion (aktueller Stand: 27.10.2014 um 20 Uhr) :EDIT 28.10.2014 um 03:40 UhrBitte die neue Alpha-Skriptversion im nächsten Posting verwenden!