Unterschied bei PROPCASE_FOCUS_MODE und WIKI Beschreibung

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

Unterschied bei PROPCASE_FOCUS_MODE und WIKI Beschreibung

Beitragvon rudi » 14.03.2010, 16:48

Hallo,

es gibt einen Unterschied zwischen PROPCASE_FOCUS_MODE und der Beschreibung im WIKI.

PROPCASE_FOCUS_MODE sollte in PROPCASE_MANUAL_FOCUS umbanannt werden. Damit ebenfalls alle in diesem Zusammenhang stehenden Funktionen (CHDK und Scripts).

Ich habe das schon mal im Patch "trunk275_FOCUS_MODE_part1_patch.diff" vorbereitet.
Eine Testcompilierung über alle Kameras war erfolgreich.

Ein weiterer Patch (trunk275_FOCUS_MODE_patch.diff) beinhaltet alle Änderungen und neue Scriptfunktionen für lua und uBasic (getestet auf A590 - Propset2).

Funktion: get_focus_mode
    0:NORMAL; 1:MACRO; 4:MANUAL
    !nicht in PROPSET3! (getestet von Miata)
    3:INFINITY; 5:SUPER_MACRO
Funktion: get_focus_state
    >0 Fokus erfolgreich
    =0 Fokus nicht erfolgreich
    <0 manueller Fokus

Funktion: get_focus_ok
    0 nicht fokussiert
    1 fokussiert (bei (FOKUS_STATUS<>0) und (SHOOTING=1))

Anwendung:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
      -- warte auf erfolgreiche Fokussierung

      press("shoot_half")

      repeat

      until get_focus_ok()

      ...

      release("shoot_half")
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9


Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
      rem warte auf erfolgreiche Fokussierung

      press "shoot_half"

      do

      until get_focus_ok

      ...

      release "shoot_half"
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9


Alle Dateien für die vorgeschlagenen Änderungen und Testscripte im Anhang.

Das Konvertieren von CHDK-Patches für CHDK-DE könnte das Windows-Script focus_mode_replace.cmd erleichtern. Damit wurden alle Änderungen vorgenommen, die Grundlage für den Patch ...part1_patch.diff sind.

[EDIT]
Dake gehtnix für den Hinweis zu release für "shoot_half". Das ist weiterhin erforderlich.

In get_focus_mode kann 4:MANUAL in jedem Fall ausgewertet werden.
[/EDIT]

Gruß rudi
Dateianhänge
trunk275_FOCUS_MODE_patch.zip
alle Patches und Scripte
Basis: Trunk 275 CHDK-DE
aktualisiert: 2x
(11.55 KiB) 76-mal heruntergeladen
replace.zip
Windows Script zum Konvertieren
(39.13 KiB) 76-mal heruntergeladen
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 500
Registriert: 11.09.2009, 12:27
Kamera(s): A590IS_101B, SX260_100B

Beitragvon gehtnix » 14.03.2010, 22:55

Hi,

da Ihr gerade so schön beieinander seid, was mach ich denn mit dem Patch (1 und 2 und cmd) und usw. :-`

Wollte gerade mal das Thema angehen.

Da hat doch einer sicherlich ein bisschen CPU Zeit übrig

gruß 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 rudi » 14.03.2010, 23:02

Hallo gehtnix,

um eine Version mit der CHDK-Shell zu erstellen, benötigst du nur die "trunk275_FOCUS_MODE_patch.diff".

Die anderen Dateien sind hauptsächlichst für msl, fe50 und CHDKLover gedacht, damit sie den Änderungsprozess nachvollziehen können.

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

Beitragvon gehtnix » 14.03.2010, 23:18

Hi,

da gehtnix :cry:
Patch geladen und dann zigmal mit y bestätigen?

    ========== D:\PROGRAMME\CHDK\SHELL\DE\TRUNK\TRUNK275\BIN\LOGS\ERR-A610-100E.TXT ==========

    In file included from kbd.c:1:
    ../generic/kbd.c: In function 'kbd_use_zoom_as_mf':
    ../generic/kbd.c:459: warning: implicit declaration of function 'shooting_get_focus_mode'
    gui.c: In function 'gui_kbd_process':
    gui.c:2390: warning: implicit declaration of function 'shooting_get_common_focus_mode'
    kbd.c: In function 'kbd_process':
    kbd.c:1350: warning: implicit declaration of function 'shooting_get_focus_mode'
    gui_osd.c: In function 'gui_osd_draw_state':
    gui_osd.c:1113: warning: implicit declaration of function 'shooting_get_common_focus_mode'
    luascript.c: In function 'luaCB_set_focus':
    luascript.c:332: warning: implicit declaration of function 'shooting_get_focus_mode'
    gui.o: In function `gui_kbd_process':
    gui.c:(.text+0x1d2a): undefined reference to `shooting_get_common_focus_mode'
    gui.o: In function `gui_draw_osd':
    gui.c:(.text+0x2322): undefined reference to `shooting_get_common_focus_mode'
    gui.c:(.text+0x243c): undefined reference to `shooting_get_common_focus_mode'
    kbd.o: In function `kbd_process':
    kbd.c:(.text+0x16e4): undefined reference to `shooting_get_focus_mode'
    gui_osd.o: In function `gui_osd_draw_state':
    gui_osd.c:(.text+0x1522): undefined reference to `shooting_get_common_focus_mode'
    luascript.o: In function `luaCB_set_focus':
    luascript.c:(.text+0x1db2): undefined reference to `shooting_get_focus_mode'
    ../platform/a610/libplatform.a(kbd.o): In function `kbd_use_zoom_as_mf':
    kbd.c:(.text+0x29c): undefined reference to `shooting_get_focus_mode'
    kbd.c:(.text+0x2f0): undefined reference to `shooting_get_focus_mode'
    collect2: ld returned 1 exit status
    D:\Programme\CHDK\Shell\gcc4\bin\gmake.exe[1]: *** [main.elf] Error 1
    gmake: *** [all-recursive] Error 1


gruß 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 rudi » 14.03.2010, 23:56

Hallo gehtnix,

na da stimmt was nicht. Ich habe das soeben selber probiert.

CHDK-Shell 2.71:
1. Kopie vom Trunk 275 erstellen (2 überlappte Rahmen neben dem aktuellen Build-Text). Sollte dein Trunk 275 durch den Patch kaputt sein, dann die Zip-Datei aus dem Archiv-Ordner auspacken. Es ist einfacher Kopien zu Patchen, da sie sich schnell löschen und neu erstellen lassen.
2. Mit Change den neuen Build-Ordner wählen.
3. Über "Source Tools -> Patch" den Patch "trunk275_FOCUS_MODE_patch.diff" einspielen. Es ist kein "Yes" erforderlich (mein Patch_LOG anbei).
4. Kamera auswählen.
5. Compile Selected

Fertig.

Gruß rudi
Dateianhänge
Patch_LOG.txt
Ausgabe beim Patchen
(12.69 KiB) 73-mal heruntergeladen
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 500
Registriert: 11.09.2009, 12:27
Kamera(s): A590IS_101B, SX260_100B

Beitragvon gehtnix » 15.03.2010, 00:14

Hi rudi,

alles wie Du beschrieben hast habe ich getan. Vorher diese zig Bestätigungen :roll:
Jetzt nochmal entzippt, jetzt nix mehr.

Nu ist alles Gut 8)

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 gehtnix » 15.03.2010, 00:50

Hi,

was rudi da gebaut hat, das schaut sehr gut aus! Und funktioniert auch sehr gut!

Anbei ein Skript zum Testen der Funktionen.

right=Normal, down=MF und left=Makro schalten

up ist für die Kameras mit Supermacro

Mit set wird "Fokus unendlich" bei der IXUS eingestellt.

Druck auf den Auslöser, Skript wird abgebrochen.

Eine IXUS ohne MF wird dann im Kreis laufen. Ebenso meine A610 mit einem Druck auf Supermacro. Das ist zunächst mal so OK.

Unter Optionen nicht vergessen y (S5 usw.) für die Tasten einzustellen.

Rückmeldungen reichlich erwünscht. A610 geht!

Propset II und II werden benötigt!

@rudi, für die nächsten düsteren Abendstunden im Dezember 2010.
Wenn man in Zeile 36 das endif löscht, so läuft das zunächst mal ohne Fehlermeldung durch. Dann folgt aber nach dem xten mal eine stack-Overflow Meldung.

gruß gehtnix
Dateianhänge
Fokus.bas
(741 Bytes) 85-mal heruntergeladen
Zuletzt geändert von gehtnix am 15.03.2010, 15:54, insgesamt 2-mal geändert.
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 rudi » 15.03.2010, 08:44

Hallo gehtnix,

da hast du eine sehr übersichtlich Routine zusammengestrickt.

gehtnix hat geschrieben:Eine IXUS ohne MF wird dann im Kreis laufen.
Nimm doch einfach einen Zähler, der nach 5 UNTIL-Durchläufen abbricht. Diesen kannst du vor GOTO "wait" noch abfragen und eine Fehlermeldung ausgeben lassen ("Parameter Fokus prüfen" oder "Funktion nicht möglich").
gehtnix hat geschrieben:düsteren Abendstunden im Dezember 2010
Das wird wohl nix, die hatten wir 2010 doch schon im Februar.

gehtnix hat geschrieben:Wenn man in Zeile 36 das endif löscht
Welche Fehlermeldung erwartest du und wo?

gehtnix hat geschrieben:Dann folgt aber nach dem xten mal eine stack-Overflow Meldung.
Bitte mache genauen Angaben (wo es jetzt auch im Handbuch steht!).

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

Beitragvon gehtnix » 15.03.2010, 15:56

Hi rudi,

mit dem fehlenden endif, kam da nicht in grauer Vorzeit eine Fehlermeldung? Wie die hieß weiß ich nicht mehr.

Da Skript habe ich aktualisiert, da fehlte der MF für die S5

Nimmt man in dem Skript in Zeile 45 nun endif raus, so kommt nach dem 5ten Click diese Meldung "uBasic: 30 If Stack Full"

Für die IXUS ist mit "set" der Fokus Unendlich belegt.

Mit einem Druck auf den Auslöser ist das Skript zu Ende. Die Kreisläufer dann einfach so abbrechen.

@rudi, "get_focus_mode = 2" , das finde ich in Deinem man_foc.bas nicht. Ist das so OK?

gruß 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 rudi » 15.03.2010, 21:11

Hallo gehtnix,

gehtnix hat geschrieben:fehlenden endif, kam da nicht in grauer Vorzeit eine Fehlermeldung?
Ja, aber nur wenn das ENDIF innerhalb eines nicht auszuführenden IF-ELSE-Blocks fehlt. Das hast du jetzt nicht gleich verstanden? Dann nochmal lesen oder sieh dir das Script im Anhang an.

gehtnix hat geschrieben:nach dem 5ten Click
Na klar, Stacktiefe laut Handbuch ist 4.

gehtnix hat geschrieben:"get_focus_mode = 2"
Den gibt es nicht. Siehe WIKI für deine A610 PropCase 11 bei DIGIT II.

Wie wäre es denn, wenn alle Nutzer die Tasten für MF, Makro usw. und Funktionen wie Super-Makro je Kammera in einer Tabelle z.B. im WIKI zusammentragen?

Gruß rudi
Dateianhänge
if_err.bas
(192 Bytes) 71-mal heruntergeladen
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 500
Registriert: 11.09.2009, 12:27
Kamera(s): A590IS_101B, SX260_100B

Beitragvon gehtnix » 15.03.2010, 23:28

Hi rudi,

OK das mit IF ist nun klar.

Und PropCase habe ich schon ganz verdrängt :shock:

Und nun, wie geht es weiter damit?

gruß 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 msl » 16.03.2010, 14:40

Ja, wie geht es weiter?

Wenn es nach mir geht, könnten die Änderungen sofort in CHDK-DE eingepflegt werden. Damit gehen wir dann aber auch endgültig getrennte Wege bezüglich internationaler CHDK-Version. Das sollte dann allen klar sein!

Scheinbar gibt es absolut kein Interesse an diesen Änderungen auf internationaler Ebene. Und ohne irgendeine positive Resonanz würde ich den Patch nicht einfach in die internationale Version einflegen. Auch wenn ich dort mittlerweile Schreibrechte habe.

Und hier ist die Resonanz ebenfalls nicht gerade riesig. Wahrscheinlich ist die Thematik nicht für jedermann überschaubar. Da sind wir dann aber wieder bei einem anderen Problem. Woher soll man wissen, ob das Thema verständlich ist, wenn sich keiner außer den üblichen Verdächtigen zu Wort meldet. Meldungen kommen dann erst wieder, wenn etwas (vermeintlich) nicht funktioniert.

Sollte es keine größeren Bedenken geben, werden wir die Umstellung für CHDK-DE in den nächsten Tagen vornehmen.

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: 4507
Bilder: 271
Registriert: 22.02.2008, 12:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Beitragvon Hamster.78 » 16.03.2010, 17:59

gehtnix hat geschrieben:Anbei ein Skript zum Testen der Funktionen.

right=Normal, down=MF und left=Makro schalten
Hallo zusammen, ich habe es nun hingekommen eine neue Version zu kompilieren. (wollte ebenso Patch1 noch mit einbinden :oops: )

Das Testscript Focus.bas schaltet wie angegeben.

@rudi: man_foc.bas gibt beim manuellen Fokus einen Status: manuell -2147483648 wieder
im Makro und Autofokus wird Status: fokussiert 1 FOKUS OK / KEIN FOKUS ausgegeben

@msl: ich kann nur für mich sprechen, ein Interesse ist schon vorhanden. Jedoch fehlen mir die Programmierkenntnisse diese Funktion auch sinnvoll einsetzten zu können.

gruß 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, 12:21
Wohnort: Sachsen / Chemnitz

Beitragvon rudi » 17.03.2010, 00:44

Hallo,

Hamster.78 hat geschrieben:im Makro und Autofokus wird Status: fokussiert 1 FOKUS OK / KEIN FOKUS ausgegeben
Kannst du das noch etwas aufdröseln? "fokussiert 1" und "KEIN FOKUS" dürften in der man_foc.bas nicht zusammen auftreten.

Ich habe heute eine ganze Weile mit einem Fehler beim Patchen unter der CHDK-Shell zugebracht. Die propset3.h wollte nicht gepatcht werden. Die Fehlersuche ergab, die Zeilen werden mit CR LF abgeschlossen. Eine Änderung auf nur LF behob das Problem. Könnt ihr das im Trunk mal ändern? Danke.

Bevor ich zum eigendlichen Thema zurückkomme noch ein Hoch auf gehtnix, der uBasic bis an die Grenzen des Machbaren ausnutzt. Die Subroutine "schalten" des Scriptes Fokus.bas besitzt im Grundsatz diese Form:
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
if y=2 and a=1 then

...

else

    if y=2 and a=5 then

    ...

    endif

else

...

endif
Erstellt in 0.002 Sekunden, mit GeSHi 1.0.8.9
Man beachte, dass die beiden ELSE sich auf das Ergebnis des ersten IF's beziehen. Da der IF-Stack erst beim letzten ENDIF bereinigt wird, funktioniert das auch noch. Darauf muss man erst mal kommen.
Die A590 braucht aber noch ein SLEEP zwischen DO und UNTIL. Ich habe weiterhin eine Möglichkeit hinzugefügt, welche nicht funktionierende Tasten erkennt.

Um dem CHDK eine Möglichkeit zu lassen und msl, CHDKLover sowie fe50 nicht so viel Arbeit beim Patchen zu machen, habe ich hier noch eine "goodwill"-Version.
Sie verfehlt aber eindeutig das Grundanliegen einer systemweiten korrekten Bezeichnung der PROPCASES.

Beschreibung:
PROPCASE_FOCUS_MODE wird beibehalten, entspricht WIKI|Propcase manual_focus
PROPCASE_REAL_FOCUS_MODE hinzugefügt, entspricht WIKI|Propcase focus_mode
PROPCASE_FOKUS_STATE hinzugefügt

lua/ubasic

Funktionen get_focus_mode
    0=Normal
    1=Manuell
    3=Unendlich
    4=Makro
    5=Super-Makro
0 und 1 bleiben aus Kompatibilitätsgründen bestehen. Dafür wird MAKRO auf 4 gelegt alle anderen/zukünftigen Werte werden aus WIKI|Propcase focus_mode direkt abgebildet.

Funktion get_focus_state
    >0 Fokus erfolgreich
    =0 Fokus nicht erfolgreich
    <0 manueller Fokus
Funktion get_focus_ok
    0 nicht fokussiert
    1 fokussiert (bei (FOKUS_STATUS<>0) und (SHOOTING=1))

Der Patch ist auf der A590 getestet und alle Propset-Versionen wurden Erfolgreich erstellt.

Gruß rudi
Dateianhänge
Fokus.bas
angepasstes Testscript
(890 Bytes) 68-mal heruntergeladen
trunk281_real_focus_mode.zip
Basis: Trunk 281
(3.22 KiB) 71-mal heruntergeladen
Zuletzt geändert von rudi am 17.03.2010, 10:10, insgesamt 1-mal geändert.
Benutzeravatar
rudi
CHDK-Spezialist
CHDK-Spezialist
 
Beiträge: 500
Registriert: 11.09.2009, 12:27
Kamera(s): A590IS_101B, SX260_100B

Beitragvon gehtnix » 17.03.2010, 01:48

Hallo,

jetzt habe ich nochmals das Test-Skript verändert.

Das do habe ich auf while geändert. So ruft man einfach die Funktion auf
Syntax: [ Download ] [ Verstecken ]
Benutze uBasic Syntax Highlighting
a=1

gosub "schalten"
Erstellt in 0.003 Sekunden, mit GeSHi 1.0.8.9
und wenn diese bereits eingestellt ist, dann wird sofort abgebrochen. Das spart die if-Abfrage vorher.

Weiterhin habe ich da noch so umgestellt, dass wenn eine Taste nicht belegt ist, der vorherige Fokus-Modus wieder eingestellt wird. Erspart dann Fragen da ja doch was geschaltet wurde ;)

gruß gehtnix
Dateianhänge
Fokus.bas
(1019 Bytes) 68-mal heruntergeladen
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: 0 Mitglieder und 2 Gäste