[uBasic] Timer - zeitgesteuerte Events

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

Timer - zeitgesteuerte Events

Beitragvon msl » 14.07.2008, 12:47

Hallo,

hier ein Skript, mit dem man zu einer bestimmten Zeit ein Ereignis auslösen kann. Im Beispiel wird einfach ausgelöst.

Inwiefern das Skript langzeittauglich ist, kann ich nicht sagen. das müßte noch getestet werden.

Code: Alles auswählen
rem zeitgesteuerte Auslösung

@title Timer-Shoot
@param a Zeit (Stunden)
@default a 0
@param b Zeit (Minuten)
@default b 0
@param c Zeit (Sekunden))
@default c 0

z=(a*3600)+(b*60)+c

:time

x=get_day_seconds
y=x/60
h=y/60
s=x-(y*60)
m=y-(h*60)

print "aktuelle Uhrzeit"
print h, ":", m, ":", s

t=z-x

if t>0 then print "noch", t, "Sekunden"
if t=0 then goto "Shoot"
if t<0 then print "Prog. Zeit ist vorbei!"

sleep 900
cls

goto "time"

:Shoot
shoot
end



Mal sehen, welche Ideen sich daraus entwickeln? 8)

Gruß msl
Dateianhänge
timer.bas
zeitgesteuerte Events
(496 Bytes) 1400-mal heruntergeladen
Zuletzt geändert von msl am 24.10.2008, 19:03, insgesamt 1-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 piet » 29.07.2008, 14:41

Hallo!
Kann man die Zeitsteuerung noch zusätzlich mit einer Intervallsteuerung kombinieren?
Das könnte ich nämlich gerade gut gebrauchen :D

Gruß, Piet
piet
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 40
Registriert: 29.07.2008, 12:53
Kamera(s): Ixus 50, 70, 105, 700 und SX200IS
EOS1V, 5D, 1DmkIII

Beitragvon _c_ » 29.07.2008, 16:35

sowas?

- sollte funktionieren, hier tut's erstmal, hab aber nicht ausführlich getestet. Das Display braucht allerdings Saft, könnte man noch vorher ausschalten, leider sieht man dann aber nicht, wann die Photoserie beginnt. Nach einstellbarer Anzahl von Photos wird das Display abgeschaltet.
Das ganze kann man aber sicher auch noch besser an die individuellen Bedürfnisse anpassen.



Code: Alles auswählen
rem zeitgesteuerte Auslösung

@title Timer-Intervall
@param a Zeit (Stunden)
@default a 0
@param b Zeit (Minuten)
@default b 0
@param c Zeit (Sekunden))
@default c 0
@param d Anzahl Bilder (Faktor 100)
@default d 0
@param e Anzahl Bilder (Faktor 10)
@default e 1
@param f Anzahl Bilder (Faktor 1)
@default f 0
@param g Intervall (min)
@default g 0
@param q Intervall (sec)
@default q 1
@param k LCD aus nach x Bildern
@default k 3

z=(a*3600)+(b*60)+c

:time

x=get_day_seconds
y=x/60
h=y/60
s=x-(y*60)
m=y-(h*60)

print "aktuelle Uhrzeit"
print h, ":", m, ":", s

t=z-x

if t>0 then print "noch", t, "Sekunden"
if t=0 then goto "intervall"
if t<0 then print "Prog. Zeit ist vorbei!"

sleep 900
cls

goto "time"


:intervall
get_prop 105 x
u=x
sleep 500
t=g*60000+q*1000
if d<0 then let d=0
if e<0 then let e=0
if f<0 then let f=0
if t<1000 then let t=1000
s=d*100+e*10+f
print "Bild 1 von", s
shoot
for i=2 to s
  rem für a720 kann hier via USB das Display vorübergehend angeschaltet werden: o=get_usb_power
  if s<=(k*2) then goto "weiter"
  if i=(k+1) or l=1 then
    do
    click "display"
    get_prop 105 u
    until u=2
    l=0
  endif
  if i=(s-k+1) or o>0 then
    do
    click "display"
    get_prop 105 u
    until u=x
    l=1
    o=0
  endif
:weiter
  print "Warte", g, "min", q, "sec"
  print "Bild", i, "von", s
  sleep t
  shoot
next i

end
A720 IS. CHDK-SVN 0.9.8, revision 765 Bild
_c_
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 25.06.2008, 11:59

Beitragvon piet » 29.07.2008, 17:39

Hallo _c_ !
Danke für das Script! Ich teste gerade mit einer IXUS 70.
Soweit funktioniert das Script ganz gut nur muss das Display immer eingeschaltet bleiben. Ich würde aber gern einen Intervall erst in z.B. mehreren Stunden starten.... Wie kann ich das machen?
Bin über jede Hilfe dankbar!
Gruß, Piet
piet
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 40
Registriert: 29.07.2008, 12:53
Kamera(s): Ixus 50, 70, 105, 700 und SX200IS
EOS1V, 5D, 1DmkIII

Beitragvon piet » 29.07.2008, 18:05

Hi,
ich weiss zwar nicht genau was ich jetzt anders gemacht habe aber es funktioniert jetzt so wie gedacht!

Danke und weiterhin viel Spass!

Piet
piet
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 40
Registriert: 29.07.2008, 12:53
Kamera(s): Ixus 50, 70, 105, 700 und SX200IS
EOS1V, 5D, 1DmkIII

Beitragvon _c_ » 29.07.2008, 19:57

Verwendest du eine externe Stromversorgung?
Wenn das Display an bleiben soll, dann eben so:

Code: Alles auswählen
rem zeitgesteuerte Auslösung

@title Timer-Intervall
@param a Zeit (Stunden)
@default a 0
@param b Zeit (Minuten)
@default b 0
@param c Zeit (Sekunden))
@default c 0
@param d Anzahl Bilder (Faktor 100)
@default d 0
@param e Anzahl Bilder (Faktor 10)
@default e 1
@param f Anzahl Bilder (Faktor 1)
@default f 0
@param g Intervall (min)
@default g 0
@param q Intervall (sec)
@default q 1

z=(a*3600)+(b*60)+c

:time

x=get_day_seconds
y=x/60
h=y/60
s=x-(y*60)
m=y-(h*60)

print "aktuelle Uhrzeit"
print h, ":", m, ":", s

t=z-x

if t>0 then print "noch", t, "Sekunden"
if t=0 then goto "intervall"
if t<0 then print "Prog. Zeit ist vorbei!"

sleep 900
cls

goto "time"


:intervall
sleep 500
t=g*60000+q*1000
if d<0 then let d=0
if e<0 then let e=0
if f<0 then let f=0
rem Mindestwartezeit hier kürzer:
if t<10 then let t=10
s=d*100+e*10+f
print "Bild 1 von", s
shoot
for i=2 to s
  print "Warte", g, "min", q, "sec"
  print "Bild", i, "von", s
  sleep t
  shoot
next i

end
A720 IS. CHDK-SVN 0.9.8, revision 765 Bild
_c_
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 25.06.2008, 11:59

Beitragvon piet » 29.07.2008, 21:53

Hi,
erstmal vielen Dank für Deine schnelle Hilfe!

Ich verwende keine externe Stromversorgung.
Vielleicht habe ich mich etwas unverständlich ausgedrückt....

Ich möchte das die Intervall-Aufnahme zu einer bestimmten Zeit startet (z.B. 4 Uhr). Bei meinen Testreihen hat es leider nicht immer funktioniert.
Nach getätigten Einstellungen (Startpunkt) im Script, hat leider die Aufnahme des Intervalls nicht gestartet. Das funktioniert wiederum nur wenn das Display eingeschaltet bleibt (ist aber so unbrauchbar wenn die Kamera noch 5 Stunden eingeschaltet bleiben muss bis zum Startpunkt der Aufnahme).
Habe ich vielleicht in den Einstellungen etwas übersehen?

-> Startpunkt festlegen (z.B. 4 Uhr)
-> Kamera schaltet sich um 4 Uhr ein und startet mit den Intervall-Aufnahmen
-> Display schaltet sich z.B. nach 5 Aufnahmen wieder ab (Stromsparen für lange Intervalle)
-> Intervall läuft laut Script durch

LG, Piet
piet
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 40
Registriert: 29.07.2008, 12:53
Kamera(s): Ixus 50, 70, 105, 700 und SX200IS
EOS1V, 5D, 1DmkIII

Beitragvon _c_ » 29.07.2008, 22:14

Du kannst das Skript ja den eigenen Bedürfnissen nach gestalten. Alle nötigen Skriptbefehle sind in den bereits geposteten Vorschlägen enthalten :-)

Aber ich sehe gerade, dass gehtnix das alles längst gecodet hat:
viewtopic.php?t=424

Probier das mal.
A720 IS. CHDK-SVN 0.9.8, revision 765 Bild
_c_
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 88
Registriert: 25.06.2008, 11:59

Beitragvon gehtnix » 30.07.2008, 16:02

Hi piet,

wozu muß das Display um 4 Uhr an sein? Es reicht doch wenn die Cam ab 4 Uhr Aufnahmen macht.
Mein Gedanke bei dem Script war sozusagen eine Alterantive zu dem Motion Detection zu schaffen denn hier muß das Display an sein. Und MD zieht Strom - gerade bei den Ixus wegen kleiner Akkus.

Und so schlummert die Cam vor sich hin, zählt brav die Sekunden, bis sie dann zu knipsen anfängt - ohne LCD. Und dann feuert sie solange Du es willst oder der Strom weg ist.
Bei ganz schnellere Reihenfolge Intervall auf 0 Sekunden stellen!

Wenn Du aber die Hummel beim Verlassen ihres Baus erwischen willst muß Du mit der Hummel eine Uhrzeit ausmachen, verstanden :D
Dann natürlich MD nehmen.

Hilferich für uns alle wäre es wenn Du mal in Deinem Profil hinterlegst mit was Du unterwegs bist.

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 piet » 30.07.2008, 22:42

Hi,
ich habe das Script bereits auf der Kamera, muss nur noch getestet werden.
Es hört sich aber sehr gut an. Alle anderen Scripte werden damit dann überflüssig sein.

Als nächstes werde ich mir mal die MD-Geschichte ansehen.

OT: Ich bin von dem CHDK so begeistert und habe auch schon den ein oder anderen Kumpel damit "infiziert"
Was ich damit aus der IXUS 70 herausholen kann ist einfach unglaublich.

- DANKE -

Piet
IXUS 50 (FW 1.01A) --> Infrarot
IXUS 70 (FW 1.01B und 1.02A)
IXUS 105 -> warten auf CHDK
IXUS 700 (FW 1.01A) --> PTP Test
SX200IS (FW 1.00D)

CHDK: 0.9.9-1005
CHDK-DE: 1.1.0-515
piet
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 40
Registriert: 29.07.2008, 12:53
Kamera(s): Ixus 50, 70, 105, 700 und SX200IS
EOS1V, 5D, 1DmkIII

Beitragvon piet » 31.07.2008, 11:03

Hallo,
ich bin gerade am Testen mit der Sevenup-Version.
Dabei ist mir aufgefallen, dass ich nach dem Starten des Intervalls das kleine Menü-Auswahlfeld nur mit dem ausgeschalteten USB-Taster bedienen kann (>> für Intervall entspricht Blitztaste an Ixus70).
Intervall-Aufnahme startet wie im Serienbild-Modus also ohne Beachtung der eingestellten Intervallzeiten....
Da die Ixus mit einer DigiIII-CPU ausgestattet ist, habe ich die get_prop-Werte von 181 auf 105 geändert.
Habe ich vielleicht etwas übersehen?
LG, Piet


Beispiel aus meinem Test:

Lade Skript....
Skript-Verzögerung(.1s) 0
Autostart 0
Fernsteuerung (USB) 0
-----------Aktuelles Skript--------------
SEVENUP
-----------Skript-Parameter--------------
Anzahl Bilder (Faktor100) 0
Anzahl Bilder (Faktor10) 2
Anzahl Bilder (Faktor1) 0
Intervall (min) 0
Intervall (sec) 5
Auflösung 0
Bildqualität 0
USB-Zoom 0
LCD aus nach x Bildern 2
Kamera aus 0
Bearbeitungszeit 1/100 1
USB-Taster aus=1 1
Start-Timer 0
Start um x Uhr 12
Start um x Minuten 30
IXUS 50 (FW 1.01A) --> Infrarot
IXUS 70 (FW 1.01B und 1.02A)
IXUS 105 -> warten auf CHDK
IXUS 700 (FW 1.01A) --> PTP Test
SX200IS (FW 1.00D)

CHDK: 0.9.9-1005
CHDK-DE: 1.1.0-515
piet
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 40
Registriert: 29.07.2008, 12:53
Kamera(s): Ixus 50, 70, 105, 700 und SX200IS
EOS1V, 5D, 1DmkIII

Beitragvon gehtnix » 31.07.2008, 17:33

@piet
piet hat geschrieben:nur mit dem ausgeschalteten USB-Taster bedienen kann

Ich nehme mal an Du hast keinen USB-Taster. Dann sind Deine Einstellungen so richtig.

piet hat geschrieben:habe ich die get_prop-Werte von 181 auf 105 geändert. Habe ich vielleicht etwas übersehen?


Das sind die Werte die Du tauschen mußt. Also zwei zu wenig geändert.

23, 24, 181 -> DigicII

57, 218, 105 -> DigicIII

piet hat geschrieben:Start-Timer 0
Start um x Uhr 12
Start um x Minuten 30

Nur noch eine allgemeine Anmerkung: 12 und 30 stehen in der Voreinstellung so zusagen in der Mitte. +/- gleich weit zu 0.

Ich habe keine Ixus!
Drück doch einfach was da steht! Laß doch den Blitz sein Blitz sein! Die Taste sollte für den Blitz tot sein wenn das Script geladen ist!

Wenn das nicht tut versuchen wir mal mit Deiner Blitz-Taste folgendes:
Erstmal Datei kopieren. Dann Datei in Editor, kannste ja eh!
Im Script taucht unten das auf: "rem --- ohnetaster".
Darunter findest Du dann diese Zeilen:
is_key k "right"
if k=1 then P=((O-Y)/2)+Y

In der oberen tauscht das "right" mit "set" aus.
Datei speichern dann auf Karte usw. probieren ob es jetzt mit der SET-Taste geht!
Kann nichts passieren, ein Versuch ist es Wert.

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


Zurück zu Code-Ecke

Wer ist online?

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