[uBasic] SIXPACK - Ein erweitertes Remote Skript

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

SIXPACK - Ein erweitertes Remote Skript

Beitragvon gehtnix » 11.07.2008, 16:31

Hallo,

Nachtrag vom 23.2.09 Am Besten gleich zum Nachfolgescript Sevenup wechseln. Funktionen sind dort auch enthalten.

für den Remote Betrieb ein Skript mit neuen Funktionen :
Mit einer Menüsteuerung sollte es für den geübten Remote-Nutzer selbsterkärend sein.
Die Hauptfunktionen:

- Einzelfoto
- Intervall
- Ändern der Fotoqualität/Auflösung bei Intervall
- LCD-Abschaltung bei Intervall, wie schon gehabt
- Bei Intervall wählbares "Kamera aus"
- Zuschaltbares und steuerbares Remote Zoom bei Einzelfoto und Intervall

SIXPACK - Das Skript mit den Sechs Punkten - Daher der Name !

Die Tastensteuerung habe ich auf drei Möglichkeiten reduziert um sie einfacher zu gestalten.
Die Schaltwerte für den Taster (x,y) kann man sich im Skript nach seinen persönlich Eigenheiten anpassen.

Für die DIGIC III Nutzer:
Diese Werte von get_prop 181 auf 105 anpassen.
Und get_prop 23, get_prop 24 : Diese Werte müssen überprüft werden und gegebenfalls in den Parametern angepasst oder erweitert werden. Je nach Kameratyp. ..oder, oder...

Bei DIGIC III kann ich nicht mitmischen.

Code: Alles auswählen
rem SXIPACK - ein USB-Skript geschrieben von gehtnix für A610
rem Einzelfoto, Intervall+LCD Abschaltung und Wechsel der Bildgröße/Qualität,wahlweisem USB-Zoom und Kamera aus
@title SIXPACK
@param a Anzahl Bilder (Faktor 100)
@default a 0
@param b Anzahl Bilder (Faktor 10)
@default b 1
@param c Anzahl Bilder (Faktor 1)
@default c 0
@param d Intervall (min)
@default d 0
@param e Intervall (sec)
@default e 1
@param f Auflösung (0,1,2)
@default f 0
@param g Bildqualität (0,1,2,4,6)
@default g 0
@param h USB-Zoom 0=aus 1=ein
@default h 0
@param i LCD aus nach x Bildern
@default i 5
@param k Kamera aus 0=nein 1=ja
@default k 0

rem ---------- Schaltwerte für den Taster - individuell anpassbar -------
x=60
y=30
rem ---------- Korrektur für Zeitberechnung - Auslösung < 4 Sekunden - je nach Kamera -------
if e<4 then q=4 else q=e

rem ---------- Werte der Bildeinstellung -------
get_prop 23 l
get_prop 24 m

rem ---------- Menü ----------
:auswahl
while 1
  p=0
  cls
  print "******   MENÃœ   ******"
  print "Kurz   = Einzelfoto"
  print "Lang   = Intervallfoto"
  print "Länger = Exit Alt"
  do
   p=get_usb_power
  until p>0
  sleep 200
  cls
  if p>x then
    p=0
   exit_alt
  endif
  if p>y then
    p=0
   gosub "intervall"
   goto "auswahl"
  endif
  if p>0 then
    p=0
   gosub "einzelfoto"
  endif
wend
end

rem ---------- einzelfoto ----------
:einzelfoto
while 1
cls
print "Kurz   = Foto"
if h=1 then print "Lang   = Zoom"
print "Länger = zum Menü"
  do
   p=get_usb_power
  until p>0
  sleep 200
  cls
  if p>x then
    p=0
    goto "auswahl"
  endif
  if p>y and h=1 then
    p=0
    gosub "zoom"
  endif
  if p>0 then
    p=0
   shoot
  endif
wend
return

rem ---------- intervallfoto ----------
:intervall
cls
set_prop 23 f
set_prop 24 g
if h=1 then gosub "zoom"
get_prop 181 x
u=x
t=d*60000+e*1000
if a<0 then let a=0
if b<0 then let b=0
if c<0 then let c=0
if t<1000 then let t=1000
s=a*100+b*10+c
print "Gesamtzeit:", (d*60000+q*1000)*s/60000, "min", (d*60000+q*1000)*s%60000/1000, "sec"
sleep 1000
print "Bild 1 von", s
shoot
for j=2 to s
  if s<=(i*2) then goto "weiter"
  if j=(i+1) then
    do
    click "display"
    get_prop 181 u
    until (u=2 or u=3)
  endif
  if j=(s-i+1) then
    do
    click "display"
    get_prop 181 u
    until u=x
  endif
:weiter
  print "Warte", d, "min", e, "sec"
  sleep t
  print "Bild", j, "von", s
  shoot
next j
set_prop 23 l
set_prop 24 m
if k=1 then shut_down
return

rem ---------- zoom ----------
:zoom
cls
print "Kurz   = Zoom in"
print "Lang   = Zoom out"
print "Länger = Fertig"
do
  do
   p=get_usb_power
  until p>0
  sleep 100
  if p>x then
    z=p
   p=0
   cls
  endif
  if p>y then
    p=0
    click "zoom_out"
    sleep 600
  endif
  if p>0 then
    p=0
    click "zoom_in"
    sleep 600
  endif
until z>x
return

end



Die Verbesserung von PhyrePhoX "until (u=2 or u=3)" ist oben bereits eingearbeitet, läuft bei mir.

Die Kommentarzeilen (rem) habe ich zur besseren Übersicht absichtlich drinnen gelassen. Diese Zeilen und die Leezeilen können aber gefahrlos gelöscht werden, und das Skript wird auch noch schneller.

Bitte Testen und bei einem etwaigen Fehler an eine Rückmeldung geben, natürlich nur für DIGIC II.
Anregnungen sind auch willkommen.

Und schon mit Juciphox getest, bisher alles anstandslos.

Möge die Übung gelingen!


gruß gehtnix
Zuletzt geändert von gehtnix am 23.02.2009, 11:56, insgesamt 3-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 msl » 11.07.2008, 18:07

Das sieht ja echt gut aus. 8)

Hier noch Werte für DigicIII:

Bildgröße 218 (1,2,3,4,6,8 ) für 23
Bildqualität 57 (0,1,2) für 24

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 gehtnix » 13.07.2008, 16:10

Hallo,

das kleine _c_ hatte noch die Idee das man das Skript auch dann nutzen sollte wenn man seinen USB-Taster vergessen hat. Das habe ich umgesetzt, und dazu mußte ich das Skript an einigen Stellen aber auch gewaltige umbauen. Das nur für den Skriptiker :)

Bei den Parametern schaltet man den USB-Taster aus und dann kann man über das Tastenrad und Set das ganze Menü steuern.

Im Menü dazu die Pfeile <>, soll besagen, Links oder Rechts und Zurück mit Set (dafür war kein Platz).

Code: Alles auswählen
rem SXIPACK - ein USB-Skript, für A610, Autor: gehtnix 
rem Einzel-/Intervall-Foto, LCD-Abschaltung, Wechsel der Bildgröße/Qualität,
rem Wahlweise USB-Zoom und Kamera aus, Steuerung über Tastatur Links, Set, Rechts
@title SIXPACK
@param a Anzahl Bilder (Faktor 100)
@default a 0
@param b Anzahl Bilder (Faktor 10)
@default b 1
@param c Anzahl Bilder (Faktor 1)
@default c 0
@param d Intervall (min)
@default d 0
@param e Intervall (sec)
@default e 1
@param f Auflösung (0,1,2)
@default f 0
@param g Bildqualität (0,1,2,4,6)
@default g 0
@param h USB-Zoom 0=aus 1=ein
@default h 0
@param i LCD aus nach x Bildern
@default i 5
@param n Kamera aus 0=nein 1=ja
@default n 0
@param r Ohne Taster 0=nein 1=ja
@default r 0

get_prop 23 l
get_prop 24 m

rem --- Werte für Taster
o=60
y=30

rem --- Korrektur Zeitberechnung-Auslösung < 4 Sekunden
if e<4 then q=4 else q=e

rem --- Menü
while 1
  cls
  print "******   MENÃœ   ******"
  print "Kurz < = Einzelfoto"
  print "Lang > = Intervallfoto"
  print "Länger = Exit Alt"
  gosub "taster"
  cls
  if p>o then exit_alt
  if p<o and p>y then gosub "intervall"
  if p<y and p>0 then gosub "einzelfoto"
  endif
wend

end

rem --- einzelfoto
:einzelfoto
do
  print "Kurz < = Foto"
  if h=1 then print "Lang > = Zoom"
  print "Länger = zum Menü"
  gosub "taster"
  cls
  if p<o and p>y and h=1 then
    gosub "zoom"
   p=0
   shoot
  endif
  if p<y and p>0 then shoot
until p>o
cls
return

rem --- intervallfoto
:intervall
set_prop 23 f
set_prop 24 g
if h=1 then gosub "zoom"
get_prop 181 x
u=x
t=d*60000+e*1000
if a<0 then let a=0
if b<0 then let b=0
if c<0 then let c=0
if t<1000 then let t=1000
s=a*100+b*10+c
print "Gesamtzeit:", (d*60000+q*1000)*s/60000, "min", (d*60000+q*1000)*s%60000/1000, "sec"
sleep 1000
print "Bild 1 von", s
shoot
for j=2 to s
  if s<=(i*2) then goto "weiter"
  if j=(i+1) then
    do
    click "display"
    get_prop 181 u
    until (u=2 or u=3)
  endif
  if j=(s-i+1) then
    do
    click "display"
    get_prop 181 u
    until u=x
  endif
:weiter
  print "Warte", d, "min", e, "sec"
  sleep t
  print "Bild", j, "von", s
  shoot
next j
set_prop 23 l
set_prop 24 m
if n=1 then shut_down
return

rem --- zoom
:zoom
cls
print "Kurz < = Zoom in"
print "Lang > = Zoom out"
print "Länger = Fertig"
do
  gosub "taster"
  if p>o then goto "sprung1"
  if p<o and p>y then click "zoom_out"
  if p<y and p>0 then click "zoom_in"
  sleep 600
:sprung1
until p>o
cls
return

rem --- taster
:taster
  p=0
  if r=1 then
    gosub "ohnetaster"
    goto "sprung2"
  endif
  do
    p=get_usb_power
  until p>0
:sprung2
return

rem --- ohnetaster
:ohnetaster
:wait
wait_click
  is_key k "left"
    if k=1 then p=y/2
    if k=1 then goto "sprung3"
  is_key k "right"
    if k=1 then p=((o-y)/2)+y
    if k=1 then goto "sprung3"
  is_key k "set"
    if k=1 then p=o+10
    if k=1 then goto "sprung3"
goto "wait"
:sprung3
k=0
return



Und wie gehabt, die DIGIC III Nutzer müssen die Prop-Werte umsetzen.
Bitte Testen, bei Fehlfunktionen eine PN an mich.

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

Fagen zum Sixpackcode

Beitragvon flyingschorsch » 27.12.2008, 11:23

Hallo an gehtnix,

ich bin hier noch recht neu, Camera IXUS 80IS......Script funktioniert einwandfrei.
Frage: was bewirkt
get_prop 23 l
get_prop 24 m

Was stellt man mit "param f Auflösung (0,1,2)" ein,
und was mit "param g Bildqualität (0,1,2,4,6)"

alles andere war klar.

danke Schorsch
IXUS 80IS
flyingschorsch
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 21
Registriert: 25.12.2008, 12:10
Wohnort: Nähe Burghausen/OBB

Beitragvon msl » 27.12.2008, 11:38

Frage: was bewirkt
get_prop 23 l
get_prop 24 m


Mit Propertycase 23 liest man die Bildqualität aus und mit 24 die Bildgröße, so wie sie in der Kamera eingestellt wurden.

Was stellt man mit "param f Auflösung (0,1,2)" ein,
und was mit "param g Bildqualität (0,1,2,4,6)"


Das bezieht sich wieder auf die Einstellmöglichkeiten Deiner Kamera.
Auflösung 0, 1, 2 = superfein, fein, normal (Bildqualität)
Bildqualität 0, 1, 2, 4, 6 = L M1 M2 M3 S (Bildgröße)

Damit besteht die Möglichkeit, im Skriptablauf andere Einstellungen zu benutzen, als im normalen Gebrauch.

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

Danke

Beitragvon flyingschorsch » 27.12.2008, 11:50

danke für die Info.

Gruß schorsch
IXUS 80IS
flyingschorsch
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 21
Registriert: 25.12.2008, 12:10
Wohnort: Nähe Burghausen/OBB

Beitragvon spacemace » 23.02.2009, 10:55

Hallo,
kann mir jemand einen Tipp geben? Bei mir gibts Probleme bei der Display-Abschaltung (IXUS 40).
Das Skript funktioniert einwandfrei bis zu dem Punkt, an dem das Display abgeschaltet wird. Sieht so aus, als würde das Skript ständig den Modus wechseln, ohne dass es zu einer Abschaltung kommt.

Gruß, Matthias
Canon IXUS 40 1.00K
spacemace
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 11
Registriert: 11.11.2008, 20:27
Wohnort: Nürnberg

Beitragvon gehtnix » 23.02.2009, 11:51

spacemace hat geschrieben:...Das Skript funktioniert einwandfrei bis zu dem Punkt, an dem das Display abgeschaltet wird. ..


@spacemace

versuche mal den Nachfolger Sevenup.

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 spacemace » 23.02.2009, 15:52

Da ist das genauso. Das Skript schaltet nur zwischen den beiden Display-Modi hin und her.
Der Display wird nicht deaktiviert.
Canon IXUS 40 1.00K
spacemace
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 11
Registriert: 11.11.2008, 20:27
Wohnort: Nürnberg

Beitragvon gehtnix » 23.02.2009, 15:59

Die Canon-Einstellung, Menü und dann "Rückblick" auf Aus setzen.


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 spacemace » 23.02.2009, 16:00

Haha, hab die Lösung: Rückblick ausschalten. Sonst versucht das Skript, den Displaymodus während des Abspielens zu ändern - und da gibt es kein Aus-Status. Weswegen dieses Skript dann hängen bleibt.

Da war wohl jemand schneller ;-)
Canon IXUS 40 1.00K
spacemace
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 11
Registriert: 11.11.2008, 20:27
Wohnort: Nürnberg


Zurück zu Code-Ecke

Wer ist online?

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