[Lua] Tag und Nacht Zeitraffer

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

Beitragvon DrMaex » 10.12.2008, 14:05

PhyrePhoX hat geschrieben:man könnte im chdk auch ne option einstellen dass bestimmte parameter wie display etc nach skript beenden wieder hergestellt werden. hm.

wo ist das genau?

Also ich habe es jetzt Probiert mit click"left" nach dem ersten Fokussieren, das geht solange gut bis die LCDOff-Routine aufgerufen wird, danach ist der Lock weg, er bleibt auch weg solange das Display aus ist :-(
es ist auch ohne CHDK nicht möglich, zumindest bei mir, den AF zu sperren wenn das Display aus ist.

über set_prop 11 habe ich es noch nicht probiert, aber ich vermute es wird das gleiche sein, außerdem habe ich kein solches case nicht für digic II gefunden. Bleibt nur noch die Variante ber die MF einstellung des CHDK.
Wie aktiviere ich den MF im Script?

press "shoot_half"
f=get_focus
click "print" <----- da fängt es schon an (wie komme ich in den ALT-modus) wie heisst diese Taste? Direct-print, print gibt es die überhaupt?

click" up" <------ um den MF zu aktivieren mit dem Multi=1

set_focus f

oder geht es einfacher?
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon DrMaex » 15.12.2008, 20:17

Guten Tag :-)
habe versucht das Script in Lua zu übersetzen....aber irgendwie habe ich einen Denk/Bedienungsfehler drin, kann sich das vielleicht einer anschauen?

Probleme:
1. am Anfang sollten die parameter für raw, Blitz und Display gespeichert werden, danach alle 3 ausgestellt. Im fall eines Abbruchs sollten sie wieder rückgesetzt werden, das passiert aber nicht..... nur das Display geht an...
2. die Funktion die die Zeit neu berechnen soll und diese einsetzen wird nicht aufgerufen..d.h. die maximale Belichtungszeit bleibt bei 1 sekunde....
hier ist der Code
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
funktionierende Version gibt es weiter unten

 
Erstellt in 0.005 Sekunden, mit GeSHi 1.0.8.9

wäre schön wenn mir jemand helfen könnte...
Zuletzt geändert von DrMaex am 18.12.2008, 01:28, insgesamt 1-mal geändert.
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon msl » 15.12.2008, 20:48

Auf die Schnelle kann ich nur folgendes feststellen:

zu. 1.

Der Flashzustand kann nur ausgelesen, aber nicht gesetzt werden. (Wenn ich mich nicht irre.)
Warum der Raw-Zustand nicht gesetzt, weiß ich jetzt nicht.

zu 2.

Mit click ("shoot_full") wird das nichts. Wenn Du die Verschlusszeiten so überschreiben willst, kannst Du das erst nach shoot_half machen.

Versuch mal generell mit Standardbefehlen zu arbeiten, wie z. B. get_flash_mode. Informationen dazu im Handbuch im uBasic-Teil. Die meisten Befehle sind identisch. Dann siehst Du auch, welche Befehle als get und set arbeiten.

Außerdem würde ich mich mal um das Timing kümmern. Bei Intervall-Aufnahmen sollte der Zeitabstand möglichst gleich sein.

Gruß msl
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 DrMaex » 15.12.2008, 22:43

die Zeitüberschreibung findet nach dem shoot_half statt. mein Gedankengang ist folgender

shoot_half
t=get_tv96
wenn t=1 sek, also der Fall eintritt an dem die Grenze der möglichen von der Kamera gesetzten Zeit erreicht ist, soll die Zeit neu ausgerechnet werden

also solange t<1sek normal fotografieren (normalshoot)
t=1 sek neu berechnen und fotografieren (calcshoot)

hat im uBasic funktioniert......
Das mit dem Blitz ist komisch(hatte im uBasic noch nicht drin), also Blitz wird abgeschaltet (Symbol im Canon OSD bleibt erhaltenwie er war) aber nicht wieder eingeschaltet. Ich werde es auf die Tasten umleiten und schauen
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon DrMaex » 16.12.2008, 13:36

Habe den Fehler gefunden, in der Funktion "calcshoot" haben bei get_propset die () gefehlt, deswegen wurde die Zeit nicht zugewiesen.
Blitz, Raw und LCD werden wie erwünscht bei Shoot_half rückgesetzt. Hatte das mit dem Blitz deswegen über die prop_cases probiert, weil ich dachte es sei nicht bekannt ob es nun RO oder RW Möglichkeiten besitzt, denn bei manchen Cases steht es explizit da und bei manchen steht nichts.

Das mit den Timings ist meiner Meinung nach nur bedingt in den Griff zu bekommen über die Erhöhung des ISO-Wertes ab einer bestimmten Verschlusszeit, was aber erhöhtes Rauschen zu Folge haben würde (ich mag kein Rauschen). Aber auch da kommt man unter umständen irgendwann aus dem Rhythmus......oder man hat unterbelichtete Bilder


offtopic: gibt es eine Möglichkeit den Quelltext in einem scrollbaren Fenster darzustellen, wie bei chdk.wikia.com?Sonst nimmt es recht viel Platz weg...


DrMaex
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon msl » 16.12.2008, 15:03

Ich meinte mit dem Timing eigentlich einen gleichmäßigen Zeitabstand zwischen den Bildern. Bisher werden die unterschiedlichen Verarbeitungszeiten der Bilder beim Abstand nicht beachtet.

Wenn Dein Skript soweit läuft, mach doch bitte mal einen Anhang mit der Skriptdatei. Und dazu das Skript komplett posten. Dann übernehme ich das in Skriptsammlung.

Bisher gibt es keine Möglichkeit, den Skripttext scrollbar zu machen.

Gruß msl
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

Tag und Nacht Zeitraffer

Beitragvon DrMaex » 18.12.2008, 01:23

Hier ist ein weiteres Intervall-Script. Die Besonderheit davon ist, dass es nicht nur für Aufnahmen am Tag zu gebrauchen ist sondern für alle(?) Lichtverhältnisse.
Da viele der Kameras nicht Länger als 1 Sekunde belichten wollen(obwohl sie könnten) muss dieses Manko durch das Berechnen und Einsetzen der tatsächlich benötigten Zeit ausgeglichen werden. Die Zeit wird dabei nach einer recht simplen Formel ausgerechnet:
EVgemessen=EVgesetzt-->das entspricht BV(Helligkeit) + SV(Empfindlichkeit) = AV(Blendenzahl) + TV(Verschlusszeit) --> BV+SV-AV=TV.
Es gibt zwar auch ein Projekt (Sunset) bei dem die ganze Sache etwas Komplizierter von statten geht, ich fand jedoch, dass bereits mit dieser Formel recht gute Trefferquote erzielt wird und bin deswegen nicht tiefer gegangen.

Features:
    - LCD-Abschaltung nach X bildern. Es ist jedoch möglich in den Warteintervallen das Display mit der "Display"-Taste wieder für weitere X Bilder einzuschalten oder es mit einem weiteren Klick wieder auszuschalten.

    - Wird in der Pause zwischen den Bildern der Auslöser halb durchgedrückt steigt das Script kontrolliert aus. d.h alle Parameter die am Anfang des Scipts verändert wurden werden in den Zustand vor dem Script zurückgesetzt. Es ist die empfohlene Art dieses Script zu beenden.

    - RAW wird generell abgeschaltet, für Blitz gibt es die Modi "auto", "on" und "off". "Blitz aus" ist als Standard eingestellt. --->Danke an msl.

    - Desweteren ist es möglich eine LOG Datei im Ordner CHDK/LOGS zu erzeugen. Der Name der Datei beinhaltet das aktuelle Daten und Uhrzeit der Kamera (z.B log17122355.txt (17 Dec 23:55)). Es werden nicht die Ausgaben der Konsole protokolliert sondern tabellarisch(Excel-Kompatibel): die laufende Nummer (1,2,3,4...usw), die Verschlusszeit die Eingestellt wurde, der BV-Wert, der Batteriestand in Volt und die Uhrzeit zu der das jeweilige Foto geschossen wurde.

    -Es geht eine LED an, die signalisiert, dass sich die Kamera gerade zwischen 2 Auslösevorgängen befindet und für Tastendrücke empfänglich :-) ist. Dies passiert bei IXUS 80IS noch nicht. Zusätzlich blinkt die LED vor der nächsten Aufnahme 1/10 des Intervalls aber maximal 1.5 sekunden(keine Tastendrücke werden akzeptiert).

    -Die Bildgröße wird standardmäßig auf M2 gesetzt und Qualität auf "Normal" (beides einstellbar).
    -----> Danke an elektronikfreak.

    -Es ist möglich das Script nur in einer bestimmten Zeitspanne arbeiten zu lassen. Von.. - Bis..
    -->Beispiel



Es gibt 3 Versionen, einmal (VarTL.lua) für die, die das Display mit der "Display"- Taste ausschalten können(z.B. IXUS 80IS).Die zweite Version (VarTLNoVF.lua) ist für die, die das Display nur über die "Print"- Taste* auschalten können (vorher belegen) (NoVF= No View Finder)(z.B. IXUS 860IS) und eine dritte, bei das Display ausgeschaltet wird indem die Kamera zum EVF wechselt (VarTLEVF.lua)(z. B. S5IS) (Blitz Operationen sind bei der letzten Version Probeweise auskommentiert).

*Bemerkung:Leider ist es bis jetzt nicht möglich mit der "Print"-Taste das LCD dauerhaft auszuschalten. Bei jedem neuen Foto geht es an und bleibt an bis die Nachbearbeitung beendet wurde. Es ist also nur beim Warten zwischen den Fotos aus.....

WICHTIG: Läuft nur ab CHDK Version 0.9.3 Rev 681 !!


Benutzung: am besten IS abstellen, Rückblick abstellen(sonst geht Display immer wieder an), Script starten und da die nötigen Parameter anpassen.

Natürlich bin ich über Rückmeldungen froh, sei es eine Frage ein Problem, eine Fehlfunktion oder ein Verbesserungsvorschlag, auch was den Quelltext betrifft.

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[

@title VarTL

@param t Time to wait

@default t 5

@param d LCD-off after ... pics

@default d 5

@param w Countdown in sec

@default w 3

@param e Fixfocus

@default e 1

@param s EV-Shift x*(1/3EV)

@default s 0

@param u Flash 0=auto 1=on 2=off

@default u 2

@param q Quality (0,1,2)

@default q 2

@param r Pixel (0..4,6,8 )

@default r 3

@param l ..LOGS/logDATE.txt off/on

@default l 0

@param c Start

@default c 0

@param f End

@default f 23

]]




function lcd(lcdmode)

err=0

    repeat

        click ("display")

        sleep(10)

        err=err+1

    until get_display_mode()==lcdmode or err==20

    if err==20 then

        print("Disp op failed..")

        print("continue..")

    end

end

-------

function flash(n)

    if get_propset() == 2 then

        set_prop(143,n)

    else

        set_prop(16,n)

    end

end

-------

function countdown()

for h=1,w do

m=w-h+1

print ("countdown:",m,"secs")

sleep (940)

end

cls()

end

-------

function shooting()

check1=get_exp_count()

print ("Photo ",phc)  

press ("shoot_half")

    repeat

        until get_shooting() == true

    if phc==1 and ff==1 then

        set_aflock(1)

    end

z=get_tv96()

bv=get_bv96()

    if z<=0 then

        calcshoot()

        print("shutter: ",y," sec")

        if logfile==1 then

            file=io.open("A/CHDK/LOGS/log"..namepart..".txt","a")

            file:write("\n",phc,"\t",y,"\t",bv,"\t",get_vbatt(),"\t",os.date("%X"))

            file:write("\t",get_temperature(0),"\t",get_temperature(1),"\t",get_temperature(2))

            file:close()

        end

        if get_propset()==2 then

            set_prop (262,g)

        else

            set_prop (69,g)

        end

    else

        if z>0      and z<=32   then y="0,8" howlong=1600   end --how long to sleep to let the cam work

        if z>32     and z<=64   then y="0,6" howlong=1200   end

        if z>64     and z<=96   then y="0,5" howlong=1000   end

        if z>96     and z<=128  then y="0,4" howlong=800    end

        if z>128    and z<=160  then y="0,3" howlong=600    end

        if z>160    and z<=192  then y="0,25"               end

        if z>192    and z<=224  then y="0,2"                end

        if z>224    and z<=256  then y="0,167"              end

        if z>256    and z<=288  then y="0,125"              end

        if z>288    and z<=320  then y="0,1"                end

        if z>320    and z<=352  then y="0,077"              end

        if z>352    and z<=384  then y="0,067"              end

        if z>384    and z<=416  then y="0,05"               end

        if z>416    and z<=448  then y="0,04"               end

        if z>448    and z<=480  then y="0,033"              end

        if z>480    and z<=512  then y="0,025"              end

        if z>512    and z<=544  then y="0,02"               end

        if z>544    and z<=576  then y="0,017"              end

        if z>576    and z<=608  then y="0,013"              end

        if z>608    and z<=640  then y="0,01"               end

        if z>640    and z<=672  then y="0,008"              end

        if z>672    and z<=704  then y="0,006"              end

        if z>704    and z<=736  then y="0,005"              end

        if z>736    and z<=768  then y="0,004"              end

        if z>768    and z<=800  then y="0,0031"             end

        if z>800    and z<=832  then y="0,0025"             end

        if z>832    and z<=864  then y="0,002"              end

        if z>864    and z<=896  then y="0,0016"             end

        if z>896    and z<=928  then y="0,0013"             end

        if z>928    and z<=960  then y="0,001"              end

        if z>960    and z<=992  then y="0,0008"             end

        if z>992    and z<=1024 then y="0,00063"            end

        if z>1024   and z<=1056 then y="0,0005"             end

        print("shutter: ",y," sec")

        if logfile==1 then

            file=io.open("A/CHDK/LOGS/log"..namepart..".txt","a")

            file:write("\n",phc,"\t",y,"\t",bv,"\t",get_vbatt(),"\t",os.date("%X"))

            file:write("\t",get_temperature(0),"\t",get_temperature(1),"\t",get_temperature(2))

            file:close()

        end

    end

   

    click ("shoot_full")

    if z<=128 then

        print("sleep: ",howlong/2," msec")  

        sleep(howlong-80)    --80msec, so the sleep time doesn't affect the interval and script wakes up before the cam is done

        print("end of sleep")

    else

        sleep(10)

    end



    repeat

        until get_shooting() == false

release ("shoot_half")



    if lc==lcdoff then

    sleep(1)

        lcd(2)

    end

check2=get_exp_count()

    if check2==check1 then

        repeat

            check2=get_exp_count()

        until check2~=check1

    end



   

    toblink=(((t*1000)/10)*1)

   

    if toblink>1500 then

        toblink=1500

    end

    if t>0 then

        set_led(7,1)

        r=get_tick_count()

        while stilltowait(r)>toblink and br~=1 do

            chill(stilltowait(r)-toblink)

        end

        if br~=1 then

        blinkled(toblink)

        end

        set_led(7,0)

    end



lc=lc+1

phc=phc+1

end

-----



function chill(waitforclick)



wait_click (waitforclick)

    if is_pressed "shoot_half" then

        br=1

    end



    if is_pressed "display" then

        if get_display_mode()==2 then

            lcd(0)

            lc=0

        else

            lcd(2)

            lc=0

        end

    end



end

------

function blinkled(blinktime)

stat=1

    repeat

        stat=stat*-1

        if stat>0 then

            set_led(7,stat)

        end

        if stat<0 then

            set_led(7,0)

        end

    sleep(100)

    blinktime=blinktime-100

    until blinktime<=0

end



------

function calcshoot()

bv=get_bv96()

sv=get_sv96()

av=get_av96()

g=bv+sv-av

    if 0>=g     and g>-32   then    g=0     y="1"       howlong=2000 end --how long to sleep to let the cam work

    if -32>=g   and g>-64   then    g=-32   y="1,3"     howlong=2600 end

    if -64>=g   and g>-96   then    g=-64   y="1,6"     howlong=3200 end

    if -96>=g   and g>-128  then    g=-96   y="2"       howlong=4000 end

    if -128>=g  and g>-160  then    g=-128  y="2,5"     howlong=5000 end

    if -160>=g  and g>-192  then    g=-160  y="3,2"     howlong=6400 end

    if -192>=g  and g>-224  then    g=-192  y="4"       howlong=8000 end

    if -224>=g  and g>-256  then    g=-224  y="5"       howlong=10000 end

    if -256>=g  and g>-288  then    g=-256  y="6,3"     howlong=12600 end

    if -288>=g  and g>-320  then    g=-288  y="8"       howlong=16000 end

    if -320>=g  and g>-352  then    g=-320  y="10"      howlong=20000 end

    if -352>=g  and g>-384  then    g=-352  y="12,7"    howlong=25400 end

    if -384>=g  and g>-416  then    g=-384  y="16"      howlong=32000 end

    if -416>=g  and g>-448  then    g=-416  y="20"      howlong=40000 end

    if -448>=g  and g>-480  then    g=-448  y="25,4"    howlong=50800 end

    if -480>=g  and g>-512  then    g=-480  y="32"      howlong=64000 end

    if -512>=g  and g>-544  then    g=-512  y="40,3"    howlong=80600 end

    if -544>=g  and g>-576  then    g=-544  y="50,8"    howlong=10160 end

    if -576>=g              then    g=-576  y="64"      howlong=128000 end

   

    limit=-320

   

    if ev~=0 and g<=limit then  --possibility to add EV-shift at night in 1/3 Ev steps  -->enjoy with care (reason in the next comment line)

        g=g-(ev*32)    

            if g>limit      then    g=limit end --everything <10 sec will be 10 sek (increases the time when shutterspeed=10 sek) !!!

           

            if g==0     then    y="1"       howlong=2000 end --how long to sleep to let the cam work

            if g==-32   then    y="1,3"     howlong=2600 end

            if g==-64   then    y="1,6"     howlong=3200 end

            if g==-96   then    y="2"       howlong=4000 end

            if g==-128  then    y="2,5"     howlong=5000 end

            if g==-160  then    y="3,2"     howlong=6400 end

            if g==-192  then    y="4"       howlong=8000 end

            if g==-224  then    y="5"       howlong=10000 end

            if g==-256  then    y="6,3"     howlong=12600 end

            if g==-288  then    y="8"       howlong=16000 end

            if g==-320  then    y="10"      howlong=20000 end

            if g==-352  then    y="12,7"    howlong=25400 end

            if g==-384  then    y="16"      howlong=32000 end

            if g==-416  then    y="20"      howlong=40000 end

            if g==-448  then    y="25,4"    howlong=50800 end

            if g==-480  then    y="32"      howlong=64000 end

            if g==-512  then    y="40,3"    howlong=80600 end

            if g==-544  then    y="50,8"    howlong=10160 end

            if g==-576  then    y="64"      howlong=128000 end

    end

end

-----

function get_display_mode()

    if get_propset() == 2 then

        dm=get_prop(105)

    else

        dm=get_prop(181)

    end

    return dm

end



----

function get_resolution()

    if get_propset() == 2 then

        res=get_prop(218)

    else

        res=get_prop(24)

    end

    return res

end

----

function get_quality()

    if get_propset() == 2 then

        qua=get_prop(57)

    else

        qua=get_prop(23)

    end

    return  qua

end

----

function set_resolution(res)

    if get_propset() == 2 then

        set_prop(218, res)

    else

        set_prop(24, res)

    end

end

----

function set_quality(qua)

    if get_propset() == 2 then

        set_prop(57, qua)

    else

        set_prop(23, qua)

    end

end

----

function stilltowait(started)

now=get_tick_count()

rest=(t*1000+1)-(now-started)

return rest

end



--start script----------

lcdoff=d

ff=e

logfile=l

ev=s

from=c

until_=f





if logfile>1 then logfile=1 end

if logfile<0 then logfile=0 end

if t<0 then t=0 end

if lcdoff<1 then lcdoff=1 end

if ff>1 then ff=1 end

if ff<0 then ff=0 end

if u>2 then u=2 end

if u<0 then u=0 end

if w<0 then w=0 end

if q<0 then q=0 end

if q>2 then q=2 end

if r<0 then r=0 end

if r>8 then r=8 end

if from<0 then from=0 end

if from>23 then from=23 end

if until_<0 then until_=0 end

if until_>23 then until_=23 end

phc=1

lc=1



--backup LCD settings

dmback=get_display_mode()



--backup Flash settings

flback=get_flash_mode()



--backup RAW settings

rawback=get_raw()



--backup Resolution settings

resback=get_resolution()

qualback=get_quality()



--presets

if get_IS_mode()~=3 then

print("Turn IS off! ")

print("to prevent")

print("bad results")

sleep (2000)

end

cls()



if u==0 then

    if get_flash_mode()~=0 then

        flash(0)

        print("Flash \"auto\"")

    end

end

if u==1 then

    if get_flash_mode()~=1 then

        flash(1)

        print("Flash \"on\"")

    end

end

if u==2 then

    if get_flash_mode()~=2 then

        flash(2)

        print("Flash \"off\"")

    end

end

set_raw(0)

print("RAW is off")

set_resolution(r)

set_quality(q)

if dmback~=0 then

lcd(0)

end



if logfile==1 then

namepart=os.date("%d%m%H%M")

file=io.open("A/CHDK/LOGS/log"..namepart..".txt","a")

file:write("picnumber\tTV\tBV\tvoltage\tclock\toptic\tCCD\tBattery")

file:close()

end

--run-----

countdown()

j=get_jpg_count()

    if j>1 then

        repeat

        time_=tonumber(os.date("%H"))

            if from>until_ then

                if time_>=from and time_<=23 then

                    shooting()

                    j=get_jpg_count()

                elseif  time_>=0 and time_<=until_ then

                    shooting()

                    j=get_jpg_count()

                else

                    print(time_..":"..os.date("%M").." wrong time")

                    print("5 mins sleep")

                    chill(300000)

                end

            end

            if from<=until_ then

                if time_>=from and time_<=until_ then

                    shooting()

                    j=get_jpg_count()

                else

                    print(time_..":"..os.date("%M").." wrong time")

                    print("5 mins sleep")

                    chill(300000)

                end

            end

        until j==1 or br==1

    end



--restore settings of LCD,flash,RAW, resolution and quality and exit-----

set_aflock(0)

if get_flash_mode()~=flback then

    flash(flback)

end

set_raw(rawback)

set_resolution(resback)

set_quality(qualback)



if get_display_mode()~=0 then

    lcd(0)

end

if br==1 then

    print("script canceled...")

    if logfile==1 then

        file=io.open("A/CHDK/LOGS/log"..namepart..".txt","a")

        file:write("\nscript canceled\t\t\t\t",os.date("%X"))

        file:close()

    end

else

    print("card is full...")

    if logfile==1 then

        file=io.open("A/CHDK/LOGS/log"..namepart..".txt","a")

        file:write("\ncard is full\t\t\t\t",os.date("%X"))

        file:close()

    end

end

sleep(1000)

if get_display_mode()~=dmback then

lcd(dmback)

end



 
Erstellt in 0.046 Sekunden, mit GeSHi 1.0.8.9


Edit:
Stand 27.05.09
Eine "Zeitschaltuhr" wurde eingeführt. -->Beispiel

Stand 21.05.09
Dank msl ist jetzt keine Anpassung der Taste für den Blitz mehr notwendig. Wird jetzt über Property Case erledigt. Danke!

Stand von 4.05.09
Elektronikfreak hat das Script um ein sehr nützliches Feature ergänzt--> Einflussnahme auf die Auflösung und Qualität der Fotos. Selbstverständlich wird beides nach Beenden wiederhergestellt.

Stand von 1.02.09
Es wurde eine Schwelle eingeführt ab der die Belichtungskorrektur greift. Zur Zeit 10 sek (Variable "limit" im TV96 format). Wenn die Belichtungskorrektur hoch genug ist, bestimmt diese Schwelle gleichzeitig die maximale Belichtungszeit, denn alles was größer als die Schwelle ist wird abgeschnitten-->Beispiel

Stand vom 25.01.2009 01:00
Ab jetzt besteht die Möglichkeit ab dem Zeitpunkt, wenn das Script die Zeiten ausrechnet eine Belichtungskorrektur einzufügen in 1/3 EV Schritten. Falls sich Werte kürzer als 1 Sekunde ergeben wird dennoch 1 Sekunde belichtet.

Nach dem Auslösen ein Sleep() eingefügt der plötzliches Stoppen im Script verhindern soll. Zusätzlich auf set_aflock() umgestellt (mindestens Version 0.9.3 rev 681 wird benötigt, sonst Fehler, weil der Befehl unbekannt ist). Anzahl der geloggten Parameter wurde erhöht (Spielerei)

Bitte bei Fehlern bescheid sagen.
Dateianhänge
VarTLNoVF.lua
(11.11 KiB) 664-mal heruntergeladen
VarTLEVF.lua
(10.87 KiB) 631-mal heruntergeladen
VarTL.lua
(10.83 KiB) 3329-mal heruntergeladen
Zuletzt geändert von DrMaex am 27.05.2009, 12:07, insgesamt 26-mal geändert.
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon Babul » 18.12.2008, 01:50

jop, auf der a720 laeufts wunderbar, die idee mit der led als "bereitschaftsindikator" ist sehr gut. ich vermisse noch eine funktion, die die led z.b. 3 sekunden vor der aufnahme blinken laesst...
ich werde das script jetzt mal mit serienaufnahmen aergern :)
Benutzeravatar
Babul
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 79
Registriert: 07.08.2008, 18:39
Wohnort: Lindenfels

Beitragvon msl » 18.12.2008, 11:22

Kann mich Babul nur anschließen. 8)

Sicherlich könnte man diverse Kleinigkeiten anders machen. Das wäre aber nur Kosmetik. Das Skript macht genau das, was es soll.

Ich habe es in die Skriptsammlung aufgenommen. Wenn Du also etwas veränderst, dann editiere bitte den Beitrag oben von Dir und mache keine neuen Anhänge, sondern tausche den Anhang aus. Das geht beim nachträglichen Editieren. Sonst fehlt der Bezugspunkt zur Skriptsammlung.

Es wäre nicht schlecht, wenn das Skript mal noch durch andere Kameratypen getestet wird. Das scheint für viele aber ein Problem zu sein. Es ist eine kleine Mühe und hilft bei Weiterentwicklung.

Das mit der LED-Steuerung scheint bei der Ixus80 noch nicht richtig integriert zu sein. Da wäre eine Meldung im Bugtracker sicherlich hilfreich.

Gruß msl
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 DrMaex » 18.12.2008, 18:31

Habe versucht die blinkende LED am Ende des Warteintervalls einzufügen. Die LED blinkt 1/10 des des Warteintervalls, jedoch nur maximal 1.5 sekunden im 0.1 Sekunden Takt (in dieser Zeit werden keine Klicks mehr ausgewertet). Außerdem habe ich die Formattierung der Log-Funktion angepasst. (man muss eine 0 vor einem Bruch anhängen damit Excel es nicht als Datum interpretiert, die Null dürfte jetzt nur vor den Brüchen erscheinen und nicht überall).
Auf der IXUS scheint es zu gehen, kann es bitte jemand auf einer anderen Kamera unterprüfen?

@msl
Wenn alles passt dann tausche ich die alte Version im oberen Beitrag

EDIT: Anhang gelöscht
Zuletzt geändert von DrMaex am 19.12.2008, 14:50, insgesamt 1-mal geändert.
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon msl » 18.12.2008, 19:06

Prima. Blinken funktioniert. =D>

Ich hoffe, dass dieses hervoragende Skript auch mal von anderen getestet wird.

Gruß msl
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 CHDKLover » 18.12.2008, 19:35

Hallo DrMaex,
schön, dass du dich so hinter das Script klemmst! =D>
Ich habe gerade mal auf meiner a610 (DIGICII) getestet, aber leider ohne den gewünschten Erfolg. Durch meine ersten zarkhaften Debugversuche habe ich festgestellt, dass z in shooting() bei mir einen negativen Wert hat und somit wird y nicht gesetzt und bleibt "nil". Vielleicht hilft es dir weiter um den Bug zu identifizieren.

Gruß 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

Beitragvon DrMaex » 18.12.2008, 20:19

CHDKLover hat geschrieben:Hallo DrMaex,
schön, dass du dich so hinter das Script klemmst! =D>
Ich habe gerade mal auf meiner a610 (DIGICII) getestet, aber leider ohne den gewünschten Erfolg. Durch meine ersten zarkhaften Debugversuche habe ich festgestellt, dass z in shooting() bei mir einen negativen Wert hat und somit wird y nicht gesetzt und bleibt "nil". Vielleicht hilft es dir weiter um den Bug zu identifizieren.

Gruß CHDKLover

Macht ja auch Spass irgendwie :-)

Geht es von Anfang an schief oder erst im Dunkeln? Hab das Entscheidungskriterium im Shoot() von z==0 zu z<=0 verändert, probier es mal bitte aus.


EDIT: Anhang gelöscht
Zuletzt geändert von DrMaex am 19.12.2008, 14:50, insgesamt 1-mal geändert.
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon CHDKLover » 19.12.2008, 14:16

Hallo DrMaex,
hab gerade noch mal mit deinem Skript herumgespielt. Ist echt ein super Skript!!!
Jetzt funktioniert es auch hervorragend bei mir, nur eine Kleinigkeit musste ich noch hinzufügen, da sonst mein Display nicht von automatisch aus ging:
nach
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
release ("shoot_half")

        if lc==lcdoff then
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9
muss ich bei meiner Kamera noch kurz Warten
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
sleep(1)
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9
Aber sonst funktioniert es einwandfrei. =D>

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

Beitragvon DrMaex » 19.12.2008, 19:09

Es freut mich sehr, dass das Script so positiv ankommt, hoffentlich läuft es stabil genug so, dass die Freude nicht zu früh getrübt wird.
Möchte mich an dieser Stelle natürlich auch bei allen Testern bedanken, die die Kompatibilität zu den anderen Kameras unterstützen. Genauso die Scripter die mir bewusst oder auch unbewusst durch das Veröffentlichen ihrer Scripte geholfen haben, so, dass man schneller sieht wie manche Sachen erledigt werden können und wie manches überhaupt funktioniert.


DrMaex
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

VorherigeNächste

Zurück zu Code-Ecke

Wer ist online?

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

cron