[uBasic] Susi2Stack - DOF-Stacking - Update XI

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

left

Beitragvon api » 05.10.2009, 17:32

Hi gehtnix !

Danke für die extra-Version! "Mit left auf macro" ist ja doch noch etwas komfortabler, als "vorher überlegen". :-)

Einmal "left" reicht allerdings nicht. Mit "left" wird erst mal das Menü für Macro/Normal/Berge aufgemacht. Mit nochmal "left" gehst du auf Macro - wenn du vorher auf Normal warst!

Dann muß eigentlich noch ein "set" hinterher, damit das Menü wieder verschwindet - oder 3 Sekunden warten, dann verschwindet es von selbst. Aber - ausprobiert - es geht auch ohne, weil die shoot-Taste hinter "neufok" das Menü parallel mit deaktiviert!

Also so dann:
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
        rem Menü für IXUS

        print " Fokus nicht OK !"

        print " Mit LEFT auf Makro"

        print " Mit anderer Taste"

        print " Fokus wiederholen"

        wait_click

            is_key k "left"

            if k=1 then click "left"

            if k=1 then sleep 200

            if k=1 then click "left"

            if k=1 then sleep 200

            if k=1 then l=1

            if k=1 then E=0

            if k=1 then g=50

            goto "neufok"
Erstellt in 0.006 Sekunden, mit GeSHi 1.0.8.9

Das ganze funktioniert allerdings nur, wenn man nicht gerade im Focusmodus "Berge" war...
Könnte man noch abfragen und ggf. nochmal "left" machen, aber dann haben wir wieder eine
"nested if"-Abfrage, oder...?

Gruß, api
Ixus970,FW1.00c --- 2009/2010:CHDK0.9.8-820 --- ab 12/2010:CHDK0.9.9-1004 --- ab 11/2012:CHDK1.1.0-2297
Benutzeravatar
api
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 58
Registriert: 21.09.2009, 09:46

Re: left

Beitragvon gehtnix » 05.10.2009, 17:49

api hat geschrieben:"Mit left auf macro" ist ja doch noch etwas komfortabler, als "vorher überlegen". :-)
Dachte ich mir doch auch.

api hat geschrieben:Einmal "left" reicht allerdings nicht.
Habe ich inzwischen auf entdeckt. Aber mit dem Shoot ist dann alles wieder OK.

api hat geschrieben:aber dann haben wir wieder eine "nested if"-Abfrage, oder...?
Habe ich extra drauf geachtet, sollte nicht sein. Also, Bergsicht einstellen und ausprobieren. Zwei mal 2x LEFT sollte gehen.

Jedenfalls ging es vorhin im Kopf :D

Skript Susi2Ixus ist aktualisiert, geht aber auch für die PS Serie und wird später wieder umbenannt zu Susi2Stack.

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Beitragvon api » 06.10.2009, 08:50

Hi !

Ich würde sagen, mit und ohne Berge geht nur, indem man den "Berge-Macro-Modus" abfragt und ggf. einmal mehr "left" setzt.
Einen "get_macro_mode" oder sowas ähnliches habe ich aber leider im Handbuch nicht gefunden.

Grüße,
api
Ixus970,FW1.00c --- 2009/2010:CHDK0.9.8-820 --- ab 12/2010:CHDK0.9.9-1004 --- ab 11/2012:CHDK1.1.0-2297
Benutzeravatar
api
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 58
Registriert: 21.09.2009, 09:46

Beitragvon fe50 » 06.10.2009, 11:44

Man kann viele Einstellungen scriptgesteuert abfragen...

http://chdk.wikia.com/wiki/PropertyCase
       und
http://chdk.wikia.com/wiki/Mode_dial_propcase_values

(sinnvoll - vor allem die Mode-Dial Werte - hauptsächlich für eigene Anpassungen, weniger für universelle Scripte)
◄"The grass was greener, The light was brighter"►  ◄fe50 home►  ◄TRAIL-Magazin►  ◄RTFM !►
Benutzeravatar
fe50
CHDK-Legende
CHDK-Legende
 
Beiträge: 1106
Registriert: 25.04.2008, 14:28
Wohnort: B'Württemberg
Kamera(s): Ixus50 101b, Ixus860 100c, SX10 101a

Beitragvon gehtnix » 06.10.2009, 13:30

api hat geschrieben:Ich würde sagen, mit und ohne Berge geht nur, indem man den "Berge-Macro-Modus" abfragt und ggf. einmal mehr "left" setzt.
Lade Dir die neue Version runter. Da habe ich mit "set" abgeschlossen. Du solltest, wenn der Fokus unscharf ist, ein weiteres mal umschalten können.

Diese Version sollte auch bei der S/G-Serie gehen. Eventuell noch mit kleinen Fehlern.
Bei diesen Kameras muss dann der neue Parameter
    @param y Fokustaste Down=0/Left=1
    @default y 0
auf 1 gesetzt werden

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Beitragvon api » 06.10.2009, 15:09

Hi!
gehtnix hat geschrieben:
api hat geschrieben:Ich würde sagen, mit und ohne Berge geht nur, indem man den "Berge-Macro-Modus" abfragt und ggf. einmal mehr "left" setzt.
Lade Dir die neue Version runter. Da habe ich mit "set" abgeschlossen. Du solltest, wenn der Fokus unscharf ist, ein weiteres mal umschalten können.

Hm,...funktioniert das? Jein. :roll:
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
        wait_click

            is_key k "left"

            if k=1 then

                click "left"

                sleep 200

                click "left"

                sleep 200

                click "set"

                l=2

                E=0

                g=50

                goto "neufok"

            endif
Erstellt in 0.005 Sekunden, mit GeSHi 1.0.8.9

Den "SET" brauchste nicht. Das ging ja schon ohne.
Die zwei konstanten <click "left" und sleep 200> funktionieren nicht, wenn Du vorher focusmäßig im Berge-Modus warst. Dann wird damit nur auf den Normal-Modus umgeschaltet.

Aber: Eigentlich macht das nichts. Er focussiert dann nochmal und bekommt es wieder nicht hin - und dann kommt ja wieder die Abfrage "Focus nicht OK. Mit LEFT/DOWN auf Makro...". Und dann schaltet er wieder einen weiter - diesmal auf Macro - alles gut.

Also: Funktioniert doch, kannste so lassen! =D>

Andere Frage: Kannste bei der "mit SET weiter"-Abfrage, bevor es losgeht, auch eine Taste für Script-Abbruch einbauen? Könnte ja sein, daß man das Script doch nicht laufen lassen will (z.B. weil das Motiv weggelaufen ist)... :badgrin:

Grüße,
api
Ixus970,FW1.00c --- 2009/2010:CHDK0.9.8-820 --- ab 12/2010:CHDK0.9.9-1004 --- ab 11/2012:CHDK1.1.0-2297
Benutzeravatar
api
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 58
Registriert: 21.09.2009, 09:46

Beitragvon gehtnix » 06.10.2009, 16:17

api hat geschrieben:Den "SET" brauchste nicht. Das ging ja schon ohne.
Da dachte ich an das zweite Mal, aber richtig wird ja durch Shoot erledigt, kann raus.

api hat geschrieben:..... wenn Du vorher focusmäßig im Berge-Modus warst. Dann wird damit nur auf den Normal-Modus umgeschaltet.
Das war mir schon klar dass die Ixus-User da eventuell einmal mehr drücken müssen. Aber anders gehtnix.

api hat geschrieben:..... bevor es losgeht, auch eine Taste für Script-Abbruch einbauen? Könnte ja sein, daß man das Script doch nicht laufen lassen will (z.B. weil das Motiv weggelaufen ist)... :badgrin:
Kältspray auf Motiv und da gehtnix mehr weg Bild

Aber warte mal ........Bild mal kurz umgerührt und Bild it´s magic, jetzt geht es, einfach den Auslöser durchdrücken, wann und wo Du willst

Api, lösche bitte oben Deine IXUS-Versionen
Ich ebenso und dann aktualisieren wir mal ganz oben.

@Rudi, gerade gesehen, endif ist eins nach oben gewandert :oops:

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Beitragvon api » 06.10.2009, 17:27

Hi !
gehtnix hat geschrieben:Das war mir schon klar dass die Ixus-User da eventuell einmal mehr drücken müssen. Aber anders gehtnix.
machtnix :-)
gehtnix hat geschrieben:Kältspray auf Motiv und da gehtnix mehr weg Bild
Au ja. :badgrin:
gehtnix hat geschrieben:Aber warte mal........Bild mal kurz umgerührt und Bild it´s magic, jetzt geht es, einfach den Auslöser durchdrücken, wann und wo Du willst
Super! Jetzt ist es eine runde Sache! =D>
gehtnix hat geschrieben:Api, lösche bitte oben Deine IXUS-Versionen.
Ich ebenso und dann aktualisieren wir mal ganz oben.
OK. Der Download ist gelöscht. Die Codeschnipsel in den Beiträgen, aber nicht, oder?

Gruß,
api
Ixus970,FW1.00c --- 2009/2010:CHDK0.9.8-820 --- ab 12/2010:CHDK0.9.9-1004 --- ab 11/2012:CHDK1.1.0-2297
Benutzeravatar
api
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 58
Registriert: 21.09.2009, 09:46

Beitragvon Belichter » 06.10.2009, 21:18

Hallo zusammen,

für die IXUS 970 IS scheint

PropCase #6 die Einstellung

Macro = 1
Normal = 0
Unendlich = 3

wiederzuspiegeln

bis dann
IXUS 970 IS 100b
Belichter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 170
Bilder: 11
Registriert: 21.05.2009, 09:21
Wohnort: Solingen
Kamera(s): ixus 970 IS 100b

Beitragvon api » 07.10.2009, 09:09

Hi gehtnix!

Da stimmt noch was nicht im Script bei der IXUS (Parameter Macro auf 0 oder 1, Parameter Focus auf 0 oder 1, beides egal):

Wenn der Focus beim ersten Focussieren fehlschlägt, dann kommt einmal die Meldung mit "click LEFT", bei Tastendruck auf "SET" (keinen Macromodus wählen) kommt dann die andere Meldung mit "click DOWN für Macro"! Die ist hier falsch. Man muß nochmal eine Taste drücken. Drücke ich SET (wieder keinen Macromodus wählen), dann focussiert er neu - ohne weitere Info! Da fehlt die Meldung "Kamera neu ausrichten"...
Wenn der Focus wieder fehlschlägt, Dann wieder die Meldung mit "click LEFT". Wenn ich wieder "SET" drücke, kommt nun korrekterweise die Meldung "Kamera neu ausrichten" und er versucht es erneut.
Und so weiter bis 5 mal.

Generell könnte die Meldung "Kamera neu ausrichten" ohne das zusätzliche "Focus nicht OK" kürzer sein.

Ich tippe, daß da irgendwo ein endif im Script fehlt...?
Die Zeile < if x=1 then goto "sprung2"> hat z.B. keins.

Daß beim ersten mal beide Menüs kommen, liegt wohl daran, daß hinter dem Menü der IXUS der Sprung zu :neufok hinter dem k=1 hängt, k hat jedoch bei nicht gewähltem Macromodus den Wert 0...

Grüße,
api
Ixus970,FW1.00c --- 2009/2010:CHDK0.9.8-820 --- ab 12/2010:CHDK0.9.9-1004 --- ab 11/2012:CHDK1.1.0-2297
Benutzeravatar
api
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 58
Registriert: 21.09.2009, 09:46

Beitragvon rudi » 07.10.2009, 11:50

Hallo,

ich glaube der Fehler liegt eher in der Fallunterscheidung zum Makromode. Wird bei der IXUS-Routine (Zeile 66 ff) nicht LEFT gedrückt, bleibt "l=0", das ist OK. Direkt danach werden die anderen Modelle behandelt und in Zeile 85 wird dazu "l" ausgewertet. Hieraus resultiert die beschriebene Fehlfunktion.
Man sollte besser die Modellunterscheidung erst nach Zeile 85 einbauen.

Zum Beispiel in dieser Form:
Code: Alles auswählen
if l=0 then
rem kein Makromode
  if x then
  rem Modelle mit DOWN-Taste
    .
    .
  else
  rem Modelle mit LEFT-Taste
    .
    .
  endif
else
  .
Bitte zur Zeit noch die REM-Zeilen nach IF-THEN und ELSE mit einbauen, wenn danach ein IF-Befehl kommt.

So sollte es gehen und der ELSE-Zweig wird für beide Modelle mit aktiviertem Makromode abgearbeitet.

Gruß Rudi
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 510
Registriert: 11.09.2009, 11:27
Kamera(s): A590IS_101B, SX260_100B

Beitragvon gehtnix » 07.10.2009, 12:55

Hallo,

wo fange ich nun an?

@api
Bitte mal diesen Block austauschen und probieren. Mit l wird gesteuert wo es hingeht wenn die Makromeldung erschienen ist.

Code: Alles auswählen
if S<>0 then goto "sprung1"
   release "shoot_half"
   Z=Z+1
   cls
   if x=1 then goto "sprung2"
   if x=o and l<>0 then goto "sprung2"
      rem Menü für IXUS
      print " Fokus nicht OK !"
      print " Mit LEFT auf Makro"
      print " Mit anderer Taste"
      print " Fokus wiederholen"
      l=2
      wait_click
         is_key k "left"
         if k=1 then click "left"
         if k=1 then sleep 200
         if k=1 then click "left"
         if k=1 then sleep 200
         if k=1 then l=1
         if k=1 then E=0
         if k=1 then g=50
      goto "neufok"
      
:sprung2   
   if l=o then
         print " Fokus nicht OK !"
         print " Mit DOWN auf Makro"
         print " Mit anderer Taste"
         print " Fokus wiederholen"
         l=2
         wait_click
            is_key k "down"
            if k=1 then click "down"
            if k=1 then sleep 200
            if k=1 then E=0
            if k=1 then g=50
            if k=1 then l=1
      else
         print "    Fokus nicht OK"
         print " Kamera neu ausrichten"
         print "Ich wiederhole den Fokus"
         print "     zum", Z; ". mal"
   endif
   if Z=5 then goto "restore"
   sleep 3000
   goto "neufok"
:sprung1


@Rudi
Weiter will ich nicht umbauen weil....

@Belichter
Es scheint nicht nur so, dem ist so. Da gehört dann auch noch #133 dazu.

Und an ALLE adressiert :

Ich habe da mal ein kleines Testprogramm gestrickt. Unter Parameter nur noch angeben wo die Fokustaste liegt.

Da kann man dann mit
Code: Alles auswählen
print "right = normal"
print "down  = manual"
print "left  = macro"
print "up    = supermacro"
print "set   = ende"
die verschiedenen Modi anwählen.
Sollte die get_prop nicht stimmen läuft er im Kreis (supermacro) oder der Modus ist falsch. Daher auch die Ausgabe auf Konsole.

Download vom Skript

Bitte reichlich testen, auch die S- und G-User


gruß gehtnix
Zuletzt geändert von gehtnix am 17.11.2009, 19:36, insgesamt 2-mal geändert.
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Beitragvon api » 07.10.2009, 14:19

Hi !
gehtnix hat geschrieben:Bitte mal diesen Block austauschen und probieren. Mit l wird gesteuert wo es hingeht wenn die Makromeldung erschienen ist.

==> ubasic 262 parse error, nachdem ich die erste Abfrage auf dem Schirm hatte und SET gedrückt habe. Erst wird noch focussiert, dann der parse-Error.

Eingebaut habe ich den Codeblock so (vorher zwei Leerzeilen, dahinter eine):
Code: Alles auswählen
[...]
if get_propset=1 then get_prop 67 S
if get_propset=2 then get_prop 18 S


if S<>0 then goto "sprung1"
   release "shoot_half"
   Z=Z+1
   cls
   if x=1 then goto "sprung2"

[...]

   sleep 3000
   goto "neufok"
:sprung1

get_focus G
sleep 100

[...]

Fehlt vielleicht doch noch ein endif??

Gruß,
api
Ixus970,FW1.00c --- 2009/2010:CHDK0.9.8-820 --- ab 12/2010:CHDK0.9.9-1004 --- ab 11/2012:CHDK1.1.0-2297
Benutzeravatar
api
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 58
Registriert: 21.09.2009, 09:46

Beitragvon gehtnix » 07.10.2009, 16:23

Hallo,

gehtnix?

Das war von mir nicht vorgesehen, habe da mit heißer Nadel gestrickt.

Lösung gibt es aber nur wenn ich mal über propset.bas Rückmeldung bekomme. ;)

gehtnix hat geschrieben:Bitte reichlich testen, auch die S- und G-User
Das habe ich zwar nicht sonderlich hervorgehoben, man könnte meinen es wäre nur an Belichter adressiert. Ist oben jetzt deutlicher hervorgehoben.

Und noch eine spezielle Frage:
Nur Kameras mit 128 Zoomstufen haben das Super-Makro?

gruß gehtnix
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 12:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS990 IS

Beitragvon Hamster.78 » 07.10.2009, 18:41

gehtnix hat geschrieben:Lösung gibt es aber nur wenn ich mal über propset.bas Rückmeldung bekomme. ;)
Hallo gehtnix,

na dann will ich einmal den Anfang machen 8)
bei meiner SX100 DIGIC III kommt folgendes beim propset.bas raus

Code: Alles auswählen
right  get_prop 6 = 0   get_prop 133 = 0   (normal)
left   get_prop 6 = 1   get_prop 133 = 0   (macro)
down   get_prop 6 = 4   get_prop 133 = 1   (manual)


gruß & Danke
Hamster Bild
◄ SX100 v100c ◄ Samsung NX10

CHDK DEThe Canon Camera Hackers Manual schon gelesen?
Benutzeravatar
Hamster.78
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 318
Registriert: 24.01.2009, 11:21
Wohnort: Sachsen / Chemnitz

VorherigeNächste

Zurück zu Code-Ecke

Wer ist online?

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