[Lua] Fotos bei schwachem Licht (Für 10-Bit-CHDK-Cams)

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Beitragvon Sinter » 11.03.2010, 11:04

Hallo miteinander,

ich bin leider erst heute wieder online, habe aber inzwischen das Skript um weitere Features ergänzt.

Zunächst vielen herzlichen Dank für Eure großartigen Tipps, die Befehlsneuerungen und die Testversionen. Es wäre ideal wenn sich das alles als realisierbar erweist. Ich werde das sehr gerne austesten und möglichst bald versuchen im Skript einzubauen.


Hier zum Download vorläufig eine neue erweiterte Version 0.4 von LowLight.lua, die jedoch noch nicht die neuen Befehle nutzt und auch noch kein Restore-Label verwendet.


NEU LowLight.lua Version 0.4:

Risikoverbleib wird nun auf 1/3-EV-Schritte genau angezeigt.

Meldungen optimiert.

Anspruchniveaukorrektur hinzugefügt. Sie ist in den Skriptparametern vom User schaltbar und auch im Umfang justierbar (in 1/3-Schritten bis +- 3 EV).

Warnung falls mehrdeutiger Tv-Apex=0 gemessen wird, da unter solchen Umständen derzeit evtl. noch zu dunkel belichtet wird. (Ein korrekter Lösungsansatz hierfür ist bereits angedacht und hoffentlich realisierbar.)

Herzlichen Dank und viele Grüße,
Sinter
Dateianhänge
LowLight__version_0_4.zip
Erweiterte Version 0.4 (noch ohne neue Befehle und noch ohne restore-Label)
(17.5 KiB) 355-mal heruntergeladen
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Meisterhaft!

Beitragvon Sinter » 11.03.2010, 13:48

Hallo CHDKLover,

Deine neuen Befehle funktionieren offenbar prächtig! Chapeau! Das scheint Dir traumhaft gelungen. Vielen herzlichen Dank!

In Deinem Beispielskript wird mir zwar bei Ausführung ein Fehler gemeldet,

uBasic:1 Unk stmt

was ich mir nicht ganz erklären kann,
aber ich habe Deine geänderten Code-Zeilen durchgesehen, übernommen und in das bestehende weiterentwickelte Skript integriert und dort funktioniert offenbar alles genau wie es soll.
Einzig habe ich noch im Skript ergänzt, dass es maximal 4 ISOBoost-Stufen gibt. Bei einem kurzen Test wollte das Skript ISOBoost8 (!) anwenden, welches es nicht gibt. Bei ISOBoost-Stufe 4 ist Schluss.
Daneben habe ich den Zeilenwert für die Konsole auf 12 gesetzt. Mit 13 lief mir die Zeile der Analogbrennweite in meinen Batteriestand und 12 Zeilen gehen genau auf wenn die Maximalmeldung kommt, dass der User ISO erhöhen soll.

Download der offenbar prima funktionierenden Version 0.5 unten.
Die Kommentarzeilen/Anleitungen muss ich noch korrigieren. Prinzipiell könnte ich ja die Dubletten der ISOBoost-Files nun auch wieder aus dem Curves-Hauptverzeichnis komplett draußen lassen und im Skript auf die ISOBoost-Kurven im Unterverzeichnis (!) ISOBOOST zugreifen. Versuch in Version 0.6 aber das klappt irgendwie noch nicht. Offenbar habe ich da noch etwas bei der Pfadangabe übersehen oder nicht berücksichtigt. (Zeile 365) Ich erkenne hier nur gerade nicht meinen entscheidenden Fehler.



Wie ich sehe hast Du neben den neuen Befehlen und dem Restore auch noch eine function für das Kopieren eines Files hinzugefügt. Kann/muss man darin den Pfad von src und dest absolut angeben, also beispielsweise als
A/CHDK/CURVES/ISOBOOST/IB4EV.CVF
oder ausschließlich relativ?

Diese function könnte mir nämlich wieder abseits von LowLight eine völlig andere Idee realisierbar machen, sofern ich nicht noch auf andere befürchtete Hindernisse treffe. Kann man denn unter Lua auch noch auf eine möglichst einfache Weise eine Datei mit einigen Zeilen ASCI-Text generieren und schließen (ähnlich wie die Log-Files)?
Also etwa im Skript eine Befehlsfolge in der Art:

Open „A/CHDK/TEXT/Meldungen.txt“, 1
Print#1, „Text der ersten Zeile von File Meldungen.txt“
Print#1, „Text der zweiten Zeile.“
Print#1, „Text der dritten Zeile.“
Close 1



EDIT:
@msl: Auf console_redraw() habe ich jetzt vorerst noch verzichtet nachdem bei mir der Fehler lange nicht mehr aufgetreten ist.


Herzlichen Dank und viele Grüße,
Sinter
Dateianhänge
LowLight__Version _0_6__Zugriff_auf_Unterordner.zip
LowLight Version 0.6
Zugriff auf ISOBoost-Unterordner
(8 KiB) 342-mal heruntergeladen
LowLight_version_0_5.zip
Offenbar gut funktionierende LowLight Version 0.5
(17.27 KiB) 338-mal heruntergeladen
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon CHDKLover » 11.03.2010, 14:41

Hallo Sinter,
wenn ich nicht was grobes übersehen habe läuft bei mir die 0.6er Version. Ich hab nach dem Setzten der neuen Kurve mir mal den aktuelle gesetzten Kurvennamen zurückgeben lassen
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
print(get_curve_file())
Erstellt in 0.004 Sekunden, mit GeSHi 1.0.8.9
Der zeigte die richtige Kurve an. Sie wurde bei mir auch angewendet.
Welchen Fehler hast du genau festgestellt?

Zur Funktion zum kopieren einer Datei:
Die Pfade müssen Absolut angegeben werden!
Bsp:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
copyFile("A/CHDK/SCRIPTS/LowLight.lua","A/CHDK/SCRIPTS/LowLight2.lua")
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9


CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Korrekte Kurve, zu dunkles Ergebnis

Beitragvon Sinter » 11.03.2010, 15:25

Hallo CHDKLover,

vielen Dank für Deine Info.

Bei der 6-er-Version ist bei mir das Bild unterbelichtet. Das Skript läuft zwar ohne Fehlermeldung durch, ist aber im Bildergebnis falsch. Es geht auch so schnell, dass offenbar gar keine Tonwertkurve angewandt wird, sondern nur die normale Belichtung. Unter restore habe ich nun auch noch probehalber das Zurücksetzen herausgenommen um hinterher zu sehen, welche Kurve noch immer geladen ist. Die Kurve ist jeweils korrekt, aber war offenbar bei der Bildentwicklung nicht zur Anwendung gekommen.


Dein
print(get_curve_file())
habe ich auch gerade ausprobiert. Auch bei mir ist nach dem set_curve_file die korrekte Kurve geladen.


Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon CHDKLover » 11.03.2010, 15:49

Hallo Sinter,
bei mir geht es:
- Bild ist hell genug
- Bilderstellung dauert mit eingestellter Kurve relativ lange

Schau bitte nochmal nach ob du wirklich die Kurven im richtigen Verzeichnis liegen hast. Einfach mal in deinem Lieblingseditor unter öffnen folgendes als Dateinamen eingeben:
<Laufwerksbuchstabe>:\CHDK\CURVES\ISOBoost\IB1EV.CVF

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Mea culpa

Beitragvon Sinter » 11.03.2010, 17:56

Hallo CHDKLover,

mea culpa, Deine Annahme war absolut richtig. Der Tag ist gerettet! Vielen Dank!

Auf meiner SD-Karte sind zwar im CURVES-Ordner und seinen Unterordnern bei mir über 830 Files, allerdings war genau der ISOBoost-Unterordner noch nicht auf die aktuellen 5.3-Fileformate umgestellt. Das war noch eine Altlast meiner vielen Tests für mein SintersCurvePackage.

Dann werde ich übers Wochenende noch die restlichen nötigen Inhalte für restore() erledigen.


Hast Du bitte vielleicht noch einen Tipp für das offene Problem:

Kann man denn unter Lua auch noch auf eine möglichst einfache Weise eine Datei mit einigen Zeilen ASCI-Text generieren und schließen (ähnlich wie die Log-Files)?
Also etwa im Skript eine Befehlsfolge in der Art:

Open „A/CHDK/TEXT/Meldungen.txt“, 1
Print#1, „Text der ersten Zeile von File Meldungen.txt“
Print#1, „Text der zweiten Zeile.“
Print#1, „Text der dritten Zeile.“
Close 1

Ich bin mir nicht ganz sicher, ob das Dateihandling in Lua ähnlich einfach mit drei entsprechenden Befehlen funktioniert. Lua ist mir hier noch nicht vertraut und ich bin mir nicht sicher, ob ich hier das Referenzbuch richtig deute: Über io.write finde ich wenig in der Referenz und wie das zweite Argument von io.open lauten muss, bin ich mir nicht sicher.

Aber so ähnlich könnte ich es mir vorstellen:

io.open("A/CHDK/TEXT/Meldungen.txt", "r")
A/CHDK/TEXT/Meldungen.txt:io.write("Text der ersten Zeile von File Meldungen.txt“)
A/CHDK/TEXT/Meldungen.txt:io.write(„Text der zweiten Zeile.“)
A/CHDK/TEXT/Meldungen.txt:io.write(„Text der dritten Zeile.“)
io.close("A/CHDK/TEXT/Meldungen.txt")

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon naddel » 11.03.2010, 18:48

Hallo Sinter,

Das ist im Prinzip alles richtig, doch solltest Du Dir die Paramater zu io.open ansehen.
r heißt read also zum lesen öffen zum schreiben brauchst Du
w = write für Texte kannst Du auch wa = write ascii nehmen.

Zunächst mußt Du ein Filehandle erstellen und die Datei zum Schreiben öffnen

f=io.open("A/CHDK/TEXT/Meldungen.txt", "wa")

dann Deine Ausgaben machen
f:write("Text der ersten Zeile von File Meldungen.txt“)
Write macht aber keine Zeilenumbrüche weshalb Du sie selbst einfügen mußt.
Um mit mac kompatibel zu bleiben fügst du am Besten ein CR LF ein.
also
f:write("Text der ersten Zeile von File Meldungen.txt“,"\10\12")
das LineFeed (Windows Standard Ascii 12) Schreibung in LUA \12 kann in LUA auch \n (newline) geschrieben werden.

und zuletzt die Datei schließen
f:close()

Gruß naddel
Zuletzt geändert von naddel am 11.03.2010, 19:26, insgesamt 3-mal geändert.
S2 1.00f mit aktueller DE Version
Benutzeravatar
naddel
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 156
Registriert: 26.01.2009, 19:42
Kamera(s): G3 s2 ixusii

Vielen Dank

Beitragvon Sinter » 11.03.2010, 19:03

Hallo Naddel,

vielen Dank für Dein Feedback. Das bringt mich einen entscheidenden Schritt weiter. Das "r" hatte ich leichtsinnig übersehen. Es hätte mir auffallen müssen, dass es hier um write geht.

Jetzt muss ich nur noch demnächst ausprobieren, ob sich CHDK in einem kleinen Experiment wie erhofft verhält. Falls ja, dann könnte sich das für mich noch zu einer interessanten Sache entwickeln...

Viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon CHDKLover » 12.03.2010, 10:15

Hallo ihr,
ich hab die Veränderungen gerade in den trunk-de eingepflegt. Ein erstes Build mit den neuen Funktionen sollte heute Abend für jeden zur Verfügung stehen. Neu hinzugekommen ist noch der Befehl get_curve_state(), damit ist die Kurvensteuerung über LUA Skripts komplett.

Ich hab das Skript noch mal ein wenig verfeinert. Jetzt prüft es zu Beginn ob überhaupt alle abhängigen Dateien verfügbar sind. Die Fehlermeldung kann man sicher noch verbessern.

Außerdem sollte man noch mal eine Cleanup des Quellcodes durchführen. Da wollte ich jetzt nicht zu viel in deinem Skript rumfingern. Am besten man Schreibt die Bemerkungen immer hinter die Befehle außer man möchte die Funktion eines kommenden Blockes erklären.

CHDKLover
Dateianhänge
LowLight.lua
Skript läuft ab CHDK-DE-Version 268
(23.56 KiB) 351-mal heruntergeladen
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

Beitragvon msl » 12.03.2010, 13:58

Hallo Lowlight-Knipser,

ich habe das jetzt endlich mal testen können - natürlich mit den aktuellen Ergänzungen von CHDKLover.

Funktioniert alles wie beschrieben. Klasse Arbeit.Bild

Toll was vor allem Sinter aus der Möglichkeit, Tonwertkurven zu nutzen, herausholt. Es entwickelt sich so langsam zu einem Rundum-Sorglos-Paket. Dazu tragen natürlich auch die von CHDKLover neu integrierten Befehle sehr viel bei.

Gruß msl

Edit: Wer per mit dem PTP-Interface testen kann und will, für den stehen die neuen Befehle auch in meinem Branch zur Verfügung. Das Handbuch ist ebenfalls ergänzt.
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon msl » 12.03.2010, 15:26

Beim Skript-Studium ist mir noch eine Idee gekommen, mit der man 2 Parametereinstellungen einsparen kann. Dadurch wird das Skript auch Einsteiger-freundlich.

Die Angaben für analoge und digitale Brennweite lassen sich relativ einfach zuordnen, wenn man eine Tabelle zur Hand hat:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
function sel_cam_value()

    local camera = {}

    camera.a450 = {fl = 54, fle = 38}

    camera.a460 = {fl = 54, fle = 38}

    camera.a470 = {fl = 63, fle = 38}

    camera.a480 = {fl = 66, fle = 37}

    camera.a530 = {fl = 58, fle = 35}

    camera.a540 = {fl = 58, fle = 35}

    camera.a550 = {fl = 58, fle = 35}

    camera.a560 = {fl = 58, fle = 35}

    camera.a570 = {fl = 58, fle = 35}

    camera.a580 = {fl = 58, fle = 35}

    camera.a590 = {fl = 58, fle = 35}

    camera.a610 = {fl = 73, fle = 35}

    camera.a620 = {fl = 73, fle = 35}

    camera.a630 = {fl = 73, fle = 35}

    camera.a640 = {fl = 73, fle = 35}

    camera.a650 = {fl = 74, fle = 35}

    camera.a700 = {fl = 58, fle = 35}

    camera.a710 = {fl = 58, fle = 35}

    camera.a720 = {fl = 58, fle = 35}

    camera.a1000 = {fl = 62, fle = 35}

    camera.a1100 = {fl = 62, fle = 35}

    camera.a2000 = {fl = 64, fle = 36}

    camera.a2100 = {fl = 64, fle = 36}

    camera.d10 = {fl = 62, fle = 35}

    camera.e1 = {fl = 62, fle = 35}

    camera.g7 = {fl = 74, fle = 35}

    camera.g9 = {fl = 74, fle = 35}

    camera.g10 = {fl = 61, fle = 28}

    camera.g11 = {fl = 61, fle = 28}

    camera.s2is = {fl = 60, fle = 36}

    camera.s3is = {fl = 60, fle = 36}

    camera.s5is = {fl = 60, fle = 36}

    camera.s80 = {fl = 58, fle = 28}

    camera.ixusizoom_sd30 = {fl = 63, fle = 38}

    camera.ixusi7_sd40 = {fl = 63, fle = 38}

    camera.ixus30_sd200 = {fl = 58, fle = 35}

    camera.ixus40_sd300 = {fl = 58, fle = 35}

    camera.ixus50_sd400 = {fl = 58, fle = 35}

    camera.ixusW_sd430 = {fl = 58, fle = 35}

    camera.ixus55_sd450 = {fl = 58, fle = 35}

    camera.ixus700_sd500 = {fl = 77, fle = 37}

    camera.ixus750_sd550 = {fl = 77, fle = 37}

    camera.ixus60_sd600 = {fl = 58, fle = 35}

    camera.ixus65_sd630 = {fl = 58, fle = 35}

    camera.ixus800_sd700 = {fl = 58, fle = 35}

    camera.ixus75_sd750 = {fl = 58, fle = 35}

    camera.ixus85_sd770 = {fl = 62, fle = 35}

    camera.ixus100_sd780 = {fl = 59, fle = 33}

    camera.ixus90_sd790 = {fl = 62, fle = 35}

    camera.ixus850_sd800 = {fl = 46, fle = 28}

    camera.ixus950_sd850 = {fl = 58, fle = 35}

    camera.ixus860_sd870 = {fl = 46, fle = 28}

    camera.ixus870_sd880 = {fl = 50, fle = 28}

    camera.ixus970_sd890 = {fl = 66, fle = 37}

    camera.ixus900_sd900 = {fl = 77, fle = 37}

    camera.ixus120_sd940 = {fl = 50, fle = 28}

    camera.ixus960_sd950 = {fl = 77, fle = 36}

    camera.ixus110_sd960 = {fl = 50, fle = 28}

    camera.ixus990_sd970 = {fl = 66, fle = 37}

    camera.ixus200_sd980 = {fl = 43, fle = 24}

    camera.ixus980_sd990 = {fl = 77, fle = 36}

    camera.ixus70_sd1000 = {fl = 58, fle = 35}

    camera.ixus80_sd1100 = {fl = 62, fle = 38}

    camera.ixus95_sd1200  = {fl = 62, fle = 35}

    camera.sx1 = {fl = 50, fle = 28}

    camera.sx10 = {fl = 50, fle = 28}

    camera.sx20 = {fl = 50, fle = 28}

    camera.sx100is = {fl = 60, fle = 36}

    camera.sx110is = {fl = 60, fle = 36}

    camera.sx120is = {fl = 60, fle = 36}

    camera.sx200is = {fl = 50, fle = 28}



    local bi = get_buildinfo()



    sel_camera=camera[bi.platform]



    if sel_camera ~= nil then

        return true,sel_camera.fl, sel_camera.fle

    else

        return false

    end

end
Erstellt in 0.052 Sekunden, mit GeSHi 1.0.8.9
Die Funktion ist im angehängten Skript eingebaut und kann ab heute abend mit der aktuellen Version getestet werden.

Danke an CHDKLover für die Fleißarbeit (Tabelle schreiben) und das Checken der Logik.

Gruß msl

edit: Anhang gelöscht
Zuletzt geändert von msl am 17.03.2010, 16:53, insgesamt 2-mal geändert.
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon msl » 13.03.2010, 13:14

Das Skript hat mich nun endgültig vereinnahmt. Deshalb habe ich noch etwas daran herum gebastelt. Sinter möge mir verzeihen.

Als neue Funktion ist eine Rückschau dazu gekommen, die über die Parametereinstellung ein- und ausgeschaltet werden kann. Außerdem ist die Dauer einstellbar.

Dann habe ich die Plausibilitätsüberprüfung für die Parameter vereinfacht.

Dazu kommt dann noch die Zusammenstellung für das Skriptende. Das war etwas unübersichtlich. Außerdem habe ich damit begonnen, nicht benötigte Kommentare zu entfernen, damit das Skript einigermaßen überschaubar bleibt.

Download

Gruß msl

Edit: Überprüfung und Hinweis für nicht unterstützte 12Bit-Kameras hinzugefügt.
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Parallele Optimierungen

Beitragvon Sinter » 15.03.2010, 10:51

Hallo,

vielen herzlichen Dank für Eure rege Beteiligung. Das nenne ich Teamwork! Einige offene Dinge die bei mir noch in den TODOs sind habt ihr nun gelöst. Klasse!

Auch ich hatte offline übers Wochenende weiter am Skript gearbeitet, bzw. neue Features hinzugefügt. Beim neuen Tonwertkurvenauswahlalgorithmus musste nochmals eine Kleinigkeit geändert werden. Da hatte sich ein kleiner sehr unauffälliger Bug eingeschlichen. Zudem habe ich das Mehrdeutigkeitsproblem bei TvApex=0 nun hoffentlich gelöst und beseitigt.

Die vielen Kommentare sind für eine endgültige Version sicher weitgehend zu entfernen. Während der Entwicklung bin ich indes froh, wenn ich darin meine jeweiligen Überlegungen noch selbst nachvollziehen kann. Denn manche Kleinigkeiten erscheinen zunächst fragwürdig, sind jedoch für einen korrekten Skriptablauf zwingend notwendig. Nun gilt es wohl, beide Verbesserungen der Skripte zusammenzufügen.

LowLight.lua enthält hier noch nicht die aktuellsten Verbesserungen von Msl und CHDKLover, aber es ist nun (hoffentlich) in dieser neuen Version 0.9.2 fähig, mit Belichtungssituationen umzugehen, die eigentlich eine Belichtungszeit länger als 1 Sekunde benötigen, aber von der Kamera sonst (fälschlicherweise) auf 1 Sekunde begrenzt/unterbelichtet würden. Beispielsweise von Hamster sein unteres Bild.

Download von Version 0.9.2 unten. (Voraussetzung: CHDKLovers beide neuen Befehle in CHDK vorhanden)


Aktuelle Features:

Vom User optional eine Anspruchniveaukorrektur bzgl Belichtungszeit variabel justierbar (+- 3 EV) eingerichtet.
Vom User optional diese Anspruchniveaukorrektur an-/abschaltbar; Korrekturumfang bleibt gespeichert.
Vom User einstellbares ISOBoostStufen-Limit 1-4.
Risikoverbleib ganz exakt incl. 1/3-Schritte printen.
Diverse problematische Textformatierungen (Vorzeichen, Plural, etc.) weiter optimiert.
restore() vervollständigt und Befehlsaufruf nahe an das Ende gesetzt. Vorsichtshalber VOR ein
mögliches exit_alt(): done; aber ist Position korrekt? Würde auch bei exit_alt() ein restore() aufgerufen??
Mehrdeutigkeitsproblem gelöst/beseitigt: Problematisches TvApex-Fenster: Falls gemessener TvApex=0,
dann die Variable kamerawillbelichten aus gemessener Helligkeit errechnen da kameraseitig ein
möglicher TvApex=0 mehrdeutig (!) ist:
Falls kameraseitig TvApex=0 angegeben ist, so kann der wahre notwendige TvApex<0 liegen da Cam
maximal 1 Sekunde belichten mag und auch bei eigentlich notwendigen längeren Belichtungszeiten
nur TvApex=0 übergibt. Done, über Umwege gelöst.


Ich bin schon gespannt, wie sich demnächst das dreifach parallel verbesserte Skript verhält.

Viele Grüße,
Sinter
Dateianhänge
LowLight.lua
LowLight.lua Version 0.9.2 mit neuen Features und bereinigten Bugs. Die aktuellen Oprtimierungen von Msl und CHDKLover sind hier jedoch noch nicht eingepflegt.
(26.49 KiB) 358-mal heruntergeladen
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Alles zusammen

Beitragvon Sinter » 15.03.2010, 15:30

Hallo miteinander,

Eure Ergänzungen habe ich nun in mein aktuelles Skript eingepflegt, aber noch nicht getestet.
Jetzt muss ich mir erst noch die aktuelle CHDK-DE-Version runterladen damit auch get_curve_state() abgearbeitet werden kann.

Die Review-Funktion muss ich mir noch ansehen. Meine Cam hatte bereits früher ohne extra Review-Funktion ein normales kurzes Review gezeigt.

Download des aktuellen LowLight 0.9.3 unten.

Viele Grüße,
Sinter
Dateianhänge
LowLight.lua
LowLight.lua Version 0.9.3 incl. aller bislang existierender Features.
(29.68 KiB) 336-mal heruntergeladen
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Beitragvon CHDKLover » 15.03.2010, 16:26

Hallo Sinter,
bei mir funktioniert das Skript super!

Was mir noch aufgefallen ist, ein paar Vorschläge um das Skript noch Anwenderfreundlicher zu gestalten:
- Bei Berechnung des Bildes ist mein LCD schwarz, vielleicht könnte man den Prozess mit einer LED anzeigen, damit der User weiß ja hier passiert noch was.
- sehr viele Parameter: -vielleicht könnte man aus "Rückblick" und "Rückblick Zeit" einen Parameter machen: 0 ist Aus, !=0 ist Anzahl der Sekunden für den Rückblick
- Blitz bei Skriptstart abschalten und zum Schluss wieder auf den Anfangszustand setzten
- Überprüfung ob das CHDK-Build für das Skript neu genug ist

CHDKLover
A610 100e CHDK-DE: aktuelle Version
Benutzeravatar
CHDKLover
Super-Mod
Super-Mod
 
Beiträge: 878
Bilder: 8
Registriert: 12.09.2007, 18:25
Wohnort: Dresden
Kamera(s): a610 100e

VorherigeNächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 25 Gäste

cron