[uBasic] Uhrzeit aus Skript setzen

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

Uhrzeit aus Skript setzen

Beitragvon jubi » 01.07.2010, 16:54

Hallo zusammen,

ich bin seit wenigen Wochen neu bei CHDK eingestiegen. Habe mir 2 Ixus 80 gekauft, um mit SDM Stereobilder zu machen. Bin bisher mit den Ergebnissen schon recht zufrieden.

Ich suche nun nach einer Möglichkeit die Uhrzeiten der beiden Kameras zu synchronisieren. Mir schwebt da ein Skript vor, das durch Dücken des USB-Auslösers auf beiden Kameras eine vorgegebene Zeit setzt.

Leider habe ich bis jetzt keine Möglichkeit gefunden, die Uhrzeit der Kamera skript-gesteuert zu setzen.

Kennt jemand eine Möglichkeit dies zu realisieren?

Gruß, Jubi
Ixus 80IS (1.01a)
jubi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 12
Registriert: 21.06.2010, 17:58
Wohnort: Langen

Beitragvon msl » 01.07.2010, 17:47

Hallo und herzlich willkommen,

es gibt keinen speziellen Befehl zum Setzen der Uhrzeit. Damit wird eine Realisierung schwierig.

Als evt. Möglichkeit könnte man die Tastatur-Prozedur zum Stellen der Uhrzeit per Skript emulieren. So ließen sich zumindest die Sekunden synchronisieren, wenn das Skript per USB-Fernauslöser in beiden Kameras parallel gestartet wird.

Vielleicht sind auch in der SDM-Version Möglichkeiten vorgesehen. Microfunguy hat ja eine Menge an zusätzlichen Befehlen integriert. Da kenne ich mich aber nicht aus. Zudem ist die SDM-Dokumentation nicht gerade üppig.

Gruß msl
■ "Hey you, don't tell me there's no hope at all. Together we stand, divided we fall."CHDK inside FAQCHDK-Neuigkeiten auf Twitter
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4512
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon jubi » 03.07.2010, 12:12

Vielen Dank an msl für die schnelle Antwort. Leider war ich in den letzten 2 Tagen anderweitig beschäftigt, so dass ich erst heute wieder dazu komme weiter zu testen.

Zunächst schade, dass es kein "set_time" Kommando oder ähnliches gibt, um die Zeit direkt zu setzen. Ich habe dann mal versucht, die Anregung von msl aufzugreifen und über die Emulation der Tastendrücke die Zeit im Menü der Kamera zu setzen. Das will mir aber nicht so richtig gelingen.

Gibt es ein vergleichbares Beispielskript, das via Tastenemulationen Einstellungen im Menü verändert?

Ich denke an Hand eines solchen Beispielskriptes würde ich am ehesten sehen, was ich verkehrt mache.

Gruß, Jubi
Ixus 80IS (1.01a)
jubi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 12
Registriert: 21.06.2010, 17:58
Wohnort: Langen

Beitragvon gehtnix » 03.07.2010, 12:48

jubi hat geschrieben:Gibt es ein vergleichbares Beispielskript, das via Tastenemulationen Einstellungen im Menü verändert?
Da ist mir nix bekannt.

Du willst die Zeit wegen was synchronisieren? Damit Du später die Bilder als Paar zuordnen kannst?
Geht das nicht auch über die Bilderzahl, also die Bildzahl zurücksetzen?
Dann weiß Du aber nicht welches Bild links/rechts ist Bild

Nimm ein Blatt Papier, Bleistift oder gleich Texteditor.
Kamera einschalten.

Dann klickst auf der Kamera die jeweilige Taste an und notierst die Taste oder trägst diese Taste jeweils in separate Zeile ein.

Dann im CHDK-Handbuch nachsehen ob der Name der Taste (runter=down, usw.) mit CHDK übereinstimmt.

Überall ein click davor, Taste noch mit "" ("Tastenname") versehen.

Am Ende ein end + eine Leerzeile, fertig.

Speichern und testen.

Wenn das klemmt dieses Skript hier einstellen.

NACHTRAG: Fällt mir doch gerade erst ein Bild, da gehtnix! Die Menütaste hat ja durch CHDK eine andere Funktion, Du kommst gar nicht an das Canon-Menü ran


gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Beitragvon gope » 03.07.2010, 14:03

Ich kann mich hier nur anschliessen: Mir auch kein Befehl bekannt, der auf Auslöserdruck die Uhrzeit der Cam auf einen Wert einstellt.
Aber - auch ich mache mit meinen zwei Ixus50 Stereobilder - man hat ja, wenn alles richtig eingestellt ist, immer eine gerade Anzahl Bilder, die man von den zwei Speicherkarten holt. Es ist doch unwichtig, welche Uhrzeiten die jeweiligen Paare habe. Und wenn ich will, dass sie die gleiche Exifuhrzeit haben, richtige ich mir das mit FixFoto und einem Script, das die Datum-Uhrzeiteinstellungen korrigiert.
Ich lasse mir die Bilder aufsteigend nach Datum/Uhrzeit anzeigen, nicht nach Namen; dann stimmt die Reihenfolge für die Bearbeitung mit SDM.
Ausserdem schaue ich beim Einschalten darauf, dass die beiden Cams gleiche Uhrzeiten anzeigen - und wenn einige Sekunden Differenz vorhanden sind, ich mache ja meine Stereoaufnahmen nicht im Sekundentakt, das bringt dann die Reihenfolge wirklich durcheinander.

Peter
Ixus 50 -
Und kaum macht man es richtig, funktionierts.
Benutzeravatar
gope
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 102
Registriert: 03.06.2008, 08:18
Wohnort: A-6900 Bregenz

Beitragvon gehtnix » 03.07.2010, 16:09

@gope,

links/rechts, wie bekommst Du das gewuppt? Oder spielt das keine Rolle?

gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Beitragvon gope » 03.07.2010, 16:32

Hi. Ich nehme die Card der rechten/linken Cam, importiere alle Bilder mit der Windowsfunktion; beim Dialog gebe ich "Ixus_R" ein und für die linke "Ixus_L", dann haben alle Bilder die jeweilige Bezeichnung und eine Nummerierung. Wenn mehrere Tage zusammen kommen, wird eh automatisch für jeden Tag ein eigener Ordner angelegt. Die Nummerierung innerhalb dieser Ordner beginnt wieder jeweils mit 1, man muss also beim Zusammenkopieren aufpassen.
Die pack ich dann in ein gemeinsames Verzeichnis, damit ich der Pärchen beieinander habe (Sortierung "Exifdata/-time"; die linken und die rechten benenne ich mit FixFoto noch um in JJMMTT_Motiv_L/R und markiere das erste Paar
-> dann von FixFoto aus direkt SPM aufrufen und dort mit der Automatik die richtige Anordnung festlegen und ev. Abweichungen in der Helligkeit richten.
-> Abspeicherung der korrigierten Einzelbilder (ich schau meist noch im Anglyphenmodus, ob das Scheinfenster passt) in das Verzeichnis "Basisbilder".
Habe ich das, ruf ich wieder in FixFoto diesen Ordner auf und schau noch ein bisschen auf die Farben/Schärfe/etc
-> dann bau ich, wenn ich es denn haben will jeweils ein Paar mit aA" (FixFotos Funktion für die Montage mit einem Zwischensteg bei den Bildern) zu Kreuzblickbildern. Die verkleinere ich, weil die meisten zeige ich in der Fotocommunity auf 1000 px längste Seite - fertig.
Die Funktion "a" für den Zwischensteg habe ich mit der Hintergrundfarbe der FC belegt, sodass man auf deren grauem Hintergrund immer zwei getrennte Bilder sieht, die man fein anschauen kann.
Die Ursprungsordner mit den Originalbildern lösch ich weg, wenn der Stereoeindruck bei den bearbeiteten Bildern passt.

Arbeit gibt eigentlich nur ein gelegentlich vorkommender Fehler (dass nicht beide Cams auslösen, oder nicht synchron (hängt mit der Verwendung des Blitzes in der Automatik zusammen. Die eine Cam meint blitzen zu müssen, die andere nicht)).
Sicher dauert es etwas; aber ich bin ja bei der Bearbeitung nicht auf der Flucht, es eilt also nicht und mein Cafe wird regelmässig kalt, bis ich fertig bin; aber die Pfeife bleibt heiss. LACH.

Peter
Ixus 50 -
Und kaum macht man es richtig, funktionierts.
Benutzeravatar
gope
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 102
Registriert: 03.06.2008, 08:18
Wohnort: A-6900 Bregenz

Beitragvon jubi » 03.07.2010, 16:51

Ich habe jetzt herausgefunden, warum mein Skript zur Zeiteinstellung nicht funktionierte.

Typischer Anfängerfehler ! :oops: Ich hatte einen Abschnitt mit Beispiel-Code aus dem uBasic User Guide als Vorlage übernommen und dabei übersehen, dass die Button-Bezeichnungen nicht in normale double quotation marks, sondern in andere double quotes eingeschlossen waren.

Nachdem ich jetzt die richtigen Quotes benutze, funktioniert auch das Setzen der Uhrzeit mittels USB-Auslöser!

Über die Frage, ob es notwendig ist, die Uhren beider Kameras bei Stereoaufnahmen zu synchronisieren, kann man sicher diskutieren. Ich bin aber ein Anhänger möglichst sekundengenauer Zeiteinstellung, da dann einmal die Synchronisation mit einem GPS-Track ohne spezielle Anpassungen möglich ist und zum anderen, bei Benutzung mehrerer Kameras, die Bilder auch immer in der richtigen chronologischen Abfolge sortiert werden.

Vielen Dank an alle für die Anregungen

Gruß Jubi
Ixus 80IS (1.01a)
jubi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 12
Registriert: 21.06.2010, 17:58
Wohnort: Langen

Beitragvon gope » 03.07.2010, 16:56

Tag auch
Lässt du uns teilhaben an deinem Script, oder muss man es selbst neu erfinden, sollte man mal eine Zeitänderung(-Einstellung) in einem Script brauchen?

Peter
Ixus 50 -
Und kaum macht man es richtig, funktionierts.
Benutzeravatar
gope
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 102
Registriert: 03.06.2008, 08:18
Wohnort: A-6900 Bregenz

Beitragvon jubi » 03.07.2010, 17:20

gope hat geschrieben:Lässt du uns teilhaben an deinem Script, oder muss man es selbst neu erfinden, sollte man mal eine Zeitänderung(-Einstellung) in einem Script brauchen?


Hallo Peter,

klar werde ich das Skript noch zur Verfügung stellen. Ich wollte nur erst noch ein bisschen "Feintuning" machen.

Da hätte ich auch gleich noch 2 Fragen :

- Wie lange sollte ein Sleep zwischen den einzelnen Clicks bei der Navigation im Menü sein ?
Im Moment habe ich 400 ms genommen.

- Gibt es eine Übersicht, wie bei den verschiedenen Kameratypen die Menüs aufgebaut sind, so dass ich das Skript möglichst allgemeingültig halten kann?

Gruß Uwe
Ixus 80IS (1.01a)
jubi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 12
Registriert: 21.06.2010, 17:58
Wohnort: Langen

Beitragvon gehtnix » 03.07.2010, 17:47

Dann zittern wir bei dem 4:0 mal was hin :D

jubi hat geschrieben:Wie lange sollte ein Sleep zwischen den einzelnen Clicks
Sie sollte nicht zu kurz sein, die Kameratypen sind da ein wenig unterschiedlich. Kann man auch als Parameter hinterlegen, dann kann jeder selbst noch anpassen.

jubi hat geschrieben:Gibt es eine Übersicht der Menüs
Nein, nur Handbücher von Canon

Und Argentinien, die haben fertig, ein denkwürdiges Spiel!

gruss gehtnix Bild
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Beitragvon jubi » 03.07.2010, 18:59

Hallo,

im Anhang ist die aktuelle Version meines Skriptes zum Setzen der Uhrzeit. Zu beachten ist, dass es nicht möglich ist, eine bestimmte Uhrzeit zu setzen, sondern lediglich die Sekunden auf 0 zu setzen.

Das kann man bei einzelnen Kameras genauso gut manuell über die Menü-Steuerung machen, bei zwei Kameras lassen sich aber über einen Doppel-USB-Auslöser die Zeiten beider Kameras sekundengenau synchronisieren.

Vorgehensweise :

- Auf beiden Kameras ungefähr die gleiche Zeit einstellen.
- Auf beiden Kameras das Skript starten
- Warten bis auf einer bereitgestellten Funkuhr die eingestellte Zeit erreicht ist
und genau bei Erreichen der vollen Minute den USB-Auslöser drücken.
- Jetzt sind beide Kameras sekundengenau eingestellt.

Gruß Uwe
Dateianhänge
setclock.bas
Skript zum synchronen Setzen der Uhrzeit
(1.56 KiB) 42-mal heruntergeladen
Ixus 80IS (1.01a)
jubi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 12
Registriert: 21.06.2010, 17:58
Wohnort: Langen

Beitragvon gehtnix » 03.07.2010, 20:44

Hi Jubi,

jetzt bin ich aber schon arg ins Schleudern gekommen Bild
Und dann habe ich doch mal einen Blick ins CHDK-Handbuch geworfen Bild

Und klar doch, es geht der einfache Klick mit der Funktion aber eben auch dieses hier
<Variable> = is_key "<Taste>" (S. 86).

@msl, wäre angebracht hier noch einen Hinweis einzubauen dass mit dieser Version die ursprüngliche Tastenfunktion ausgehebelt wird.

Heute ist es aber auch gut möglich dass ich garnix raff :D

Zum Skript:
Er wäre noch angebracht die Funktion von den Parametern (position...) zu erklären. Ahnungslos wie ich heute nun mal bin habe ich das Skript laufen lassen. Das wirbelt mir dann blitzschnell andere Einstellungen durcheinander.

Zeile 38+39 könnte doch auch sleep d*2 heißen? Oder eins sleep ist zu viel.

Zeile 65 click "up", da hängst noch ein click "down" darunter, da bleibt es doch bei der aktuellen Minute. Sonst entfernen sich die Minuten doch jedesmal.

gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Beitragvon jubi » 04.07.2010, 00:10

Hallo gehtnix,

im Anhang die neue Version des Skripts. Der doppelte sleep ist nur noch ein einfacher,
die Beschreibung der Parameter sagt hoffentlich jetzt etwas mehr aus.

Zusätzlich überprüfe ich jetzt die Platform-ID und verweigere zunächst den Dienst bei nicht unterstützten
Kameratypen. Darüber kann sich der Anwender bei Bedarf hinwegsetzen (Param f).

Es wäre schön, wenn Leute, die das Skript testen, mir die P-ID ihrer Kamera mitteilen, falls das Skript funktioniert. Dann baue ich die P-ID auch als unterstützt ein.

Das Hochzählen der Minuten mache ich bewusst. Ich gehe davon aus, dass die aktuelle Zeit nicht weit
von der richtigen entfernt ist. Durch das Hochzählen der Minuten kann ich dann in Ruhe warten, bis ich mit der Funkuhr synchron bin, ohne vorher manuell die Uhrzeit umstellen zu müssen.

Gruß Uwe
Dateianhänge
setclock.bas
Uhrzeit synchronisieren
Version 20100703b
(1.98 KiB) 40-mal heruntergeladen
Ixus 80IS (1.01a)
jubi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 12
Registriert: 21.06.2010, 17:58
Wohnort: Langen

Beitragvon gehtnix » 04.07.2010, 02:20

Hi jubi,

also Funkuhren werden die wenigsten bei der Hand haben.

Habe soeben zufällig um 1:59 gestartet. Nach dem Zwischenstopp habe ich dann ein 1:00 gehabt :? Da hilft dann auch keine Funkuhr mehr.

@default c
Da fehlt ein Vorgabe-Wert im Skript

Tastensleep würde ich als Vorgabe auf 50 setzen. Mit Deinen 20 bin ich wieder im Untergehölz des Menüs gelandet. Das geht so fix dass man nicht mitbekommt was das verändert wird. Mit 50 ist man auf der sicheren Seite.

Bei den Positionen fände ich es geschickter wenn man die absolute Position angibt. Also nicht 1= 1x rechts Klick, sondern Position 2. Ansichtssache.

Mit der ID-Nr., Dein Ansinnen in Ehren, aber des wird nix, da kommt nix, vorallem sind zu wenige mit SDM unterwegs die das auch nutzen werden.

gehtnix
Bild
Benutzeravatar
gehtnix
CHDK-Legende
CHDK-Legende
 
Beiträge: 2406
Bilder: 8
Registriert: 17.04.2008, 13:42
Wohnort: München
Kamera(s): A610 100e+f + IXUS50 101b

Nächste

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: Exabot [Bot] und 2 Gäste