Schlage neuen Befehl vor--> set_aflock()

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

Schlage neuen Befehl vor--> set_aflock()

Beitragvon DrMaex » 16.01.2009, 22:52

Hallo, ich habe da mal einen Vorschlag zu verkünden :-)
Ich schlage einem neuen Befehl "set_aflock()" vor.
Ein set_aflock(1) führt dazu, dass der Fokus blokiert wird (AFL), nur im Gegensatz zur canoneigenen Firmwarefunktion behält die Sperre ihre Wirkung auch nach Ausschalten des Displays.

Vorteile bei Zeitraffern:
    -kein Refokussieren bei Zeitrafferaufnahmen
    -Energieersparnis (IXUS 80 im Dauerlauf statt 3 Stunden +- 10 Mins -->4 Stunden 30 Mins)
    -schont die Mechanik(?)
    -keine Bildverschiebungen

Ich hab da schon mal was vorbereitet(Anhang)(Nur für Revison 679!), nur leider ist das momentan nur für die IXUS 80 (101a und 100c), da mir die Adressen für stubs_entry_2.S für die anderen Kameras fehlen.
Was sagen die Verwalter dazu?

p.s.
Gibt es eine Möglichkeit alle Firmwaredumps automatisch nach bestimmten Funktionen zu durchsuchen?
Dateianhänge
aflock.patch
(3.7 KiB) 299-mal heruntergeladen
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon msl » 16.01.2009, 23:56

Gute Arbeit und gute Idee. =D>

Wenn ich richtig informiert bin, gibt es im trunk unter Tools einen Signaturfinder finsig.c. Das können Dir aber PhyrePhoX und Co. bestimmt besser erklären.

Damit sich auch andere damit beschäftigen können, würde ich den Patch im Bugtracker als Feature-Wunsch vorstellen.

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 DrMaex » 17.01.2009, 00:33

erledigt https://chdk.kernreaktor.org/mantis/view.php?id=201

bin schon mehrmals über den signature finder gestolpert aber keine ahnung wie ich den anwende :-) habe es aber auch nicht wirklich probiert ehrlich gesagt :-)

EDIT: So, habe die sig_ref_*.txt für alle 5 Referenzdumps erzeugt, wie schaffe ich es automatisch die Daten aus den .txt Files in die jeweiligen stubs_entry' zu übertragen?
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon PhyrePhoX » 17.01.2009, 07:44

schöne sache das :)

http://chdk.wikia.com/wiki/Signature_finder
ich nehme an das hast du schon gefunden, wo genau kommst du jetzt nicht weiter?
du musst auf jeden fall von jeder firmware die primary.bin ins verzeichnis tun, damit ein gmake batch-zip bei jeder cam die stub neu anlegt.
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon DrMaex » 17.01.2009, 12:29

Also, ich habe ale primarys in den jeweiligen Ordner getan. In den tools Ordner die Referenzdumps und die txt files. Jetzt bin ich mir nicht sicher was zu tun.
Ich starte einfach CHDK-Shell und sage ihm er soll die Firmware für sd1100 Kompilieren. In der Eingabeaufforderung kann ich sehen wie der Compiler bis signatures_dryos.h kommt und dann stürzt er ab. ich klicke auf nicht senden(Fehlerberichterstattung von Windows) er räumt auf und erstellt die Log datei in der folgendes steht (gekürzte Fassung)
Code: Alles auswählen
========== C:\CHDK\COMPILING\TRUNK\TRUNK700\BIN\LOGS\ERR-IXUS80_SD1100-101A.TXT ==========

In file included from finsig.c:29:
signatures_dryos.h:3058: `func_sig_AllocateMemory_2' undeclared here (not in a function)
signatures_dryos.h:3058: initializer element is not constant
signatures_dryos.h:3058: (near initialization for `func_list[1].sig')
signatures_dryos.h:3058: initializer element is not constant
signatures_dryos.h:3058: (near initialization for `func_list[1]')
signatures_dryos.h:3059: initializer element is not constant
signatures_dryos.h:3059: (near initialization for `func_list[2]')
signatures_dryos.h:3060: initializer element is not constant
signatures_dryos.h:3060: (near initialization for `func_list[3]').
.
.
.
.
C:\chdk\compiling\gcc\bin\gmake[1]: *** [finsig.o] Error 1
gmake: *** [all-recursive] Error 1


Irgendwas übersehe ich, aber was.....
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon PhyrePhoX » 17.01.2009, 13:14

das mit finsig und gensig ist wirklich etwas komisch, hab auch ne weile gebraucht mich da reinzufuxen.

kannst du mir die adressen der 5 ref dumps sagen? dann kann ich es auch mal ausprobieren.

was ich häufig vergesse, ist ein Newline an jede datei anzustellen die ich anfasse. könnte auch ne fehlerquelle sein.
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon DrMaex » 17.01.2009, 13:27

hier sind die txt files.... die Funktionen sind jeweils am Ende und heissen "DoAFLock" und "UnlockAF"
Dateianhänge
sig_ref_vxworks_3.txt
(341 Bytes) 279-mal heruntergeladen
sig_ref_vxworks_2.txt
(1.11 KiB) 256-mal heruntergeladen
sig_ref_vxworks_1.txt
(2.99 KiB) 278-mal heruntergeladen
sig_ref_dryos_2.txt
(631 Bytes) 273-mal heruntergeladen
sig_ref_dryos_1.txt
(2.33 KiB) 278-mal heruntergeladen
Zuletzt geändert von DrMaex am 17.01.2009, 13:40, insgesamt 1-mal geändert.
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon PhyrePhoX » 17.01.2009, 13:35

danke!

gleich zuallererst: in der sigrefdryos1.txt fehl am ende ne newline. das *könnte* schon ausschlaggebend sein.
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon DrMaex » 17.01.2009, 13:37

die Newlines habe bei den Dateien im CHDK Shell Ordner angefügt (wir sprechen doch von einem Zeilenumbruch oder? also Enter drücken :-))das sind Dateien vom Desktop. Irgendwie will das Ding trotzdem nicht...
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon PhyrePhoX » 17.01.2009, 13:48

so, was bei mir geholfen hat:

habe die ref firmware für die a570 1.00e erstellt. danach wurde alles schön angelegt.

dann habe ich die firmware für sd1100-100c erstellt - mit den fehlermeldungen von dir. das hab ich einfach nochmal kompiliert, dann ging es. jetzt musst du die refdumps entfernen und kannst ein gmake batch-zip machen.
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon DrMaex » 17.01.2009, 13:53

PhyrePhoX hat geschrieben:so, was bei mir geholfen hat:

habe die ref firmware für die a570 1.00e erstellt. danach wurde alles schön angelegt.

dann habe ich die firmware für sd1100-100c erstellt - mit den fehlermeldungen von dir. das hab ich einfach nochmal kompiliert, dann ging es. jetzt musst du die refdumps entfernen und kannst ein gmake batch-zip machen.


also dein vorgehen: chdk-shell öffnen, ggf trunk berichtigen-->a570 100e auswählen-->compile selected

hab es so probiert und der Compiler stürzt an der selben stelle ab....
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon PhyrePhoX » 17.01.2009, 14:02

hier mal der patch. nach dem einspielen das patches müssten theorethisch die adressen für alle kameras gefunden werden (wenn die primary.bin im verzeichnis liegt beim kompilieren).

leider funktionieren die adressen, die er für die s3is findet, nicht. mal weiterfriemeln.
Dateianhänge
af_lock.patch
(20.76 KiB) 280-mal heruntergeladen
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon DrMaex » 17.01.2009, 14:21

so also das Kompilieren der sd1100 klappt. was auch immer du da gezaubert hast--> danke!. Als als nächstes werde ich dann alle kompilieren und einen Patch erzeigen der einfach die entsprechenden nstubs schon einträgt. Gehe dann solange einkaufen, ich vermute es dauert ein Weilchen.....


also für die Adressen würde ich im Moment nicht die Hand ins Feuer legen :-) es schien mir zwar alles logisch zu sein (auch heute Morgen) aber heisst ja noch lange nicht dass es richtig ist :-)
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Beitragvon PhyrePhoX » 17.01.2009, 14:42

also auf der s3is klappts wie gesagt nicht, es passiert einfach nichts wenn man den befehl ausführt.
auf der a620 klappt es insofern, dass etwas passiert - sie stürzt ab :D
Benutzeravatar
PhyrePhoX
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 490
Registriert: 04.07.2008, 21:31

Beitragvon DrMaex » 17.01.2009, 15:42

das sind aber keine guten Nachrichten :-) Hatte ich da mehr Glück als Verstand mit meiner IXUS, dass es auf Anhieb gepasst hat? :-)

wichtig: hast du den Befehl nach dem shoot half aufgeführt?
Ich teste es immer mit meinem Tag und Nacht Zeitraffer Script mit der Änderung:

function shooting()
check1=get_exp_count()
print ("Photo ",phc)
press ("shoot_half")
repeat
until get_shooting() == true
if phc==1 and ff==1 then
set_aflock(1) <<<<<<<<<<<<<<< hier ist die änderung (phc=photocounter, ff=fixfocus)
end

p.s. hab auch ne logging Funktion drin ;-) du hast ja mal nach so etwas gesucht um Vergleiche zwischen Kameras zu machen.

EDIT: So, hab einen Patch für die Revision 680 erstellt.

Zum testen habe ich die Sources für rev680 runtergeladen entpackt,gepatcht und für meine UXUS kompiliert. Alles klappt, inklusive Ausführen des Befehls auf der Kamera.

@PhyrePhoX kannst du vielleicht bei Gelegenheit einen Blick auf die Adressen werfen ?
Dateianhänge
VarTLAFL.lua
(7.74 KiB) 269-mal heruntergeladen
aflock(allcams)rev680.patch
(71.23 KiB) 287-mal heruntergeladen
Canon IXUS 80 IS 1.01A
ixus80_sd1100-101a-0.9.8-760
Galerie
DrMaex
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 148
Registriert: 04.12.2008, 22:48
Wohnort: BW

Nächste

Zurück zu Code-Ecke

Wer ist online?

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