Zwei Modi über Wahlschalter - Ixus970

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

Zwei Modi über Wahlschalter - Ixus970

Beitragvon api » 21.09.2009, 11:22

Hallo !

Dies ist mein erster Beitrag hier. Die Möglichkeiten von CHDK sind wirklich beeindruckend. Ich hoffe, damit das folgende Problem lösen zu können, habe aber nach Studieren der Anleitung und der Forumsbeiträge noch keine Lösungsmöglichkeit gefunden.

Die IXUS 970 hat vier Modi (Automatik, Manuell, SCN, Video), die man über ein Drehrad einstellen kann.

Ich würde gerne mit diesem Drehrad einen Modus haben, mit dem man große Bilder in guter Qualität mit Blitz machen kann und einen, in dem man kleine Bilder in "schlechter" Qualität und ohne Blitz machen kann - ohne, daß man beim Umschalten erst mühsam in den Menüs diese Einstellungen vornehmen muß.

Leider geht dies bei der IXUS 970 nicht, weil die eingestellte Bildgröße und -Qualtität dort immer für alle Modi gleichzeitig gilt. (Bei der IXUS400 war dies möglich, da wurde z.B. die Größe pro Modus gesondert gespeichert).

Würde dies mit CHDK gehen?

Im Handbuch habe ich bei der Beschreibung von Scripten schon mal was gefunden:

get_drive_mode Info Auslösemodus 0 einfach, 1 Dauer , 2 Timer DigicII, 3 Timer DigicIII

Aber eine Abfrage, welche Position das Drehrad hat, habe ich nicht gefunden.


Was kann ich da tun?


Viele Grüße,
Andreas
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 msl » 21.09.2009, 11:43

Hallo und Bild

Dein Wunsch ist realisierbar - mit einem Skript.

Direkten Zugriff auf das Wahlrad gibt es in der offiziellen CHDK-Version nicht. Bei der SDM-Version gibt es wohl die Möglichkeit. Der Zugriff ist aber nicht auch nicht notwendig.

Schau in die Lua-Skriptsammlung. Da gibt es ein Skript, das automatisch immer ein Foto mit und eins ohne Blitz macht. Dieses muss nun noch mit der Bildgrößensteuerung (get/set_resolution) erweitert werden. Wir haben Zugriff auf die Propcase-Variable, die die Bildqualität steuert. Damit lässt sich das auch per Skript steuern.

Gruß msl

P.S. Ich verschiebe das mal in die Bastelecke. Das ist kein Problem, das ist eine Aufgabe für CHDK. ;)
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 api » 21.09.2009, 17:39

Hallo !

Danke für die freundliche Begrüßung.

> Direkten Zugriff auf das Wahlrad gibt es in der offiziellen CHDK-Version nicht.
> Bei der SDM-Version gibt es wohl die Möglichkeit.

Uff. SDM? Aha: viewtopic.php?t=203&highlight=sdm
OK, soweit verstanden. :-)

> Der Zugriff ist aber nicht auch nicht notwendig.

Nicht? Wie schalte ich dann zwischen den beiden Modi um?

> Schau in die Lua-Skriptsammlung. Da gibt es ein Skript, das automatisch immer ein Foto mit und eins
> ohne Blitz macht. Dieses muss nun noch mit der Bildgrößensteuerung (get/set_resolution) erweitert
> werden. Wir haben Zugriff auf die Propcase-Variable, die die Bildqualität steuert. Damit lässt sich das
> auch per Skript steuern.

OK. Bildgröße über get/set_resolution, Qualität über die Propertycase-Variablen, den Zoom könnte man auch noch voreinstellen wie im Lua-Script "Auto-Zoom". Nur möchte ich ja nicht beide Fotos hintereinander machen, sondern mal von der einen Sorte welche, dann von der anderen Sorte welche.

Vielleicht muß man ja doch einen Menüpunkt verwenden? Ich habe allerdings noch nicht verstanden, wie man die Scripte, die man schreibt, eigentlich startet. Immer über das Script-Menü bzw. den Autostart?

> P.S. Ich verschiebe das mal in die Bastelecke. Das ist kein Problem, das ist eine Aufgabe für CHDK. ;)

OK. :-)

Viele Grüße,

Andreas
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 msl » 21.09.2009, 19:02

Hallo,

Skripte werden im <ALT>ernativen Modus über den Auslöser gestartet. Das Skriptmenü ist nur zur Auswahl der Skript-Dateien und Einstellung der Skript-Parameter notwendig. Gegebenenfalls kann auch ein Autostart programmiert werden. Das steht aber alles im Handbuch.

Mit der Einstellung hatte ich Dich missverstanden. Ich dachte, Du möchtest immer 2 Photos machen. Gut dann bleibt immer noch die Möglichkeit, per Skript umfangreichere Einstellarbeiten zu automatisieren.

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 api » 22.09.2009, 09:25

Hallo !

Danke für die Antwort.

msl hat geschrieben:Skripte werden im <ALT>ernativen Modus über den Auslöser gestartet.


Das heißt, es kann immer nur ein Script zur Zeit laufen?
Und läuft das Script dann *nur* im Alt-Modus - oder läuft es auch weiter, wenn man den Alt-Modus verläßt ?

msl hat geschrieben:Mit der Einstellung hatte ich Dich missverstanden. Ich dachte, Du möchtest immer 2 Photos machen. Gut dann bleibt immer noch die Möglichkeit, per Skript umfangreichere Einstellarbeiten zu automatisieren.


In der Lua-Referenz habe ich das Sample-Script für get_mode gefunden. Dort scheint man den aktuellen Modus der Kamera herauszubekommen. Dieser wiederum wird z.T. über das Wahlrad eingestellt (z.T. dann noch über das Drehkranz) . Damit hätte ich doch meine Wahlrad-Abfrage, oder?

Jetzt muß ich mir doch nur damit ein Autostart-Script schreiben, das ständig nachschaut, ob sich der Modus z.B. nach "M" geändert hat und dann z.B. auf "kleine Bilder, schlechte Qualität" umstellt. Kann das so gehen?

Viele Grüße,

Andreas
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 msl » 22.09.2009, 11:20

Hallo,

mit get_mode kannst Du nur abfragen, ein Setzen funktioniert nicht. Außerdem ist nicht ganz klar, ob dieser Befehl bei allen Kameras funktioniert, da die Modi-Tabellen noch nicht für alle Kameras stimmen.
jetzt muss ich mir doch nur damit ein Autostart-Script schreiben, das ständig nachschaut, ob sich der Modus z.B. nach "M" geändert hat und dann z.B. auf "kleine Bilder, schlechte Qualität" umstellt. Kann das so gehen?

In Prinzip ja.

Das heißt, es kann immer nur ein Script zur Zeit laufen?
Und läuft das Script dann *nur* im Alt-Modus - oder läuft es auch weiter, wenn man den Alt-Modus verlässt ?

Lies bitte das Handbuch und weiterführende Beiträge hier im Forum.

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 api » 22.09.2009, 16:07

Hallo !


An dieser Stelle erst mal ein fettes Dankeschön für die Unterstützung!

> mit get_mode kannst Du nur abfragen, ein Setzen funktioniert nicht.

Das Wählrad will ich ja auch nur abfragen.

> Außerdem ist nicht ganz klar, ob dieser Befehl bei allen Kameras funktioniert,
> da die Modi-Tabellen noch nicht für alle Kameras stimmen.

Das kann ich ja dann gleich mal testen und berichten.

> > Das heißt, es kann immer nur ein Script zur Zeit laufen?
> > Und läuft das Script dann *nur* im Alt-Modus - oder läuft es auch weiter,
> > wenn man den Alt-Modus verlässt ?
>
> Lies bitte das Handbuch
> und weiterführende Beiträge hier im Forum.

Das hatte ich eigentlich gemacht. Ansonsten versuche ich auch, Antworten im Forum zu finden.
Aber die passende Stelle steht im Handbuch nicht hinten bei den Scripten, sondern vorne, das hatte ich übersehen. Sorry. ;-)
Zitat:

> Mit der Print - Taste (blaue LED) wird in den <ALT>Modus (alternativer Modus) umgeschaltet, der
> notwendig ist, um die CHDK-Menüs zu erreichen und um Skripte auszuführen. In diesem Modus können
> keine Aufnahmen gemacht werden! Der Auslöser dient in diesem Modus als Starttaste für sogenannte
> Skripte, deren Funktionsweise in einem späteren Kapitel näher beschrieben wird. Der <ALT>Modus wird
> mit der Print - Taste auch wieder verlassen, dann können wie gewohnt Aufnahmen gemacht werden.

Also laufen Scripte nur im ALT-Modus.

Ausprobiert mit dem Defaultscript: Es läuft im ALT-Modus vor sich hin, bei Verlassen des ALT-Modus ist es nicht mehr zu sehen, beim Wiedereinstieg in den ALT-Modus ist es wieder da und läuft noch - scheinbar hält es aber an, solange man nicht im ALT-Modus ist. Scripte werden also im Normalmodus angehalten? :roll:

Das hieße dann aber auch, daß mein "Wahlschalter-Überwachungsscript" außerhalb des ALT-Modus ebenfalls anhält und somit nichts überwachen kann. Oder hält das default-Script nur wegen der print-Ausgabe an ?!


Viele Grüße,

Andreas
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 msl » 22.09.2009, 20:58

Hallo,

Ja, wenn Du den <ALT>-Modus verlässt, wird ein Skript immer unterbrochen. Es gibt dafür auch einen Skript-Befehl zum definierten Verlassen. Schaltest Du wieder in den <ALT>-Modus, läuft das Skript weiter.

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

get/set_prop

Beitragvon api » 23.09.2009, 16:00

Hi !

Also, so wirklich kann das dann wohl nicht funktionieren. Ich werde mich wohl mit einem "Einstellen von
Parametern per Script" begnügen müssen. Wobei man das ja dann auch gleich von Hand machen kann und nicht wirklich ein Script dafür braucht.

> Schau in die Lua-Skriptsammlung. Da gibt es ein Skript, das automatisch immer ein
> Foto mit und eins ohne Blitz macht. Dieses muss nun noch mit der Bildgrößensteuerung
> (get/set_resolution) erweitert werden. Wir haben Zugriff auf die Propcase-Variable,
> die die Bildqualität steuert.

get_resolution / set_resolution gibt es laut LUA-Doku leider unter LUA nicht.

Die Befehle set_quality und set_resolution gibt es nur im "MoreBest" build. Also kann ich dafür
nicht die standard-Version von CHDK verwenden. Richtig?

Direktes Ändern der Property_case-Variablen mit dem LUA-Befehl set_prop hat den Nachteil, daß dann die eingestellten Werte nicht angezeigt werden. Beispielweise knipst die Kamera bei ausgeschaltetem Blitz nach Aufruf dieser Function

Code: Alles auswählen
function enter_flash_mode(n)
   if get_propset() == 2 then -- Digic III
      set_prop(143,n) -- Flash Mode (0,1,2 = flash auto, flash on, flash off)
   else
      set_prop(16,n) -- Flash mode (0,1,2 = flash auto, flash on, flash off)
   end
end


tatsächlich mit Blitz, obwohl die Original-Canon-Anzeige immer noch das "noflash"-Sysmbol auf dem Display anzeigt. Das gleiche mit Größe und Qualität. Steht ja auch so in der Doku zu propcase.


Also: Werte von Hand einstellen bleibt wohl leider die einfachste Möglichkeit. Aber trotzdem Danke für die Infos!


Viele Grüße,

Andreas
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 CHDKLover » 23.09.2009, 16:39

Hallo api,
ich sehe dein Vorhaben zur Zeit leider auch so problematisch wie du. Mir ist auch keine direkte Möglichkeit bekannt, um Auflösung, Auslösemodi,... einzustellen und zusätzlich das Canon eigene OSD zu aktualisieren.
Die Befehle set_quality und set_resolution (nur in uBasic definiert) werden intern auch nur auf ein "shooting_set_prop(PROPCASE_RESOLUTION, <Value>);" umgesetzt. Somit würden dir die Befehle nicht weiterhelfen.
Was man wissen sollte ist, dass das JuciPhoX Build gleich dem MoreBest Build ist, welches die Grundlage für das heutige CHDK ist.

Einzige Lösung, die mir spontan einfallen würde, währe das CHDK so zu erweitern, dass bei jedem Moduswechsel ein zuvor definiertes Script ausgeführt wird. Dieses high level Script könnte durch Auswertung von Modus und der restlichen Konfigurationen eine Tastenfolge abspielen, die die gewünschten Einstellungen vornimmt.

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


Zurück zu Code-Ecke

Wer ist online?

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