Hallo zusammen,
hier meine Analyse Funktionen für Motiventfernungen:
Diese drei Funktionen sind in /platform/KAMERA/wrappers.c definiert:
- Code: Alles auswählen
lens_get_focus_pos() = _GetFocusLensSubjectDistance()
lens_get_focus_pos_from_lens() = _GetFocusLensSubjectDistanceFromLens()
VxWorks: lens_get_target_distance() = _GetCurrentTargetDistance()
DryOS : lens_get_target_distance() = _GetFocusLensSubjectDistanceFromLens()
In DryOS steht die Funktion _GetCurrentTargetDistance() nicht zur verfügung und wird über /platform/generic/wrappers.c (Zeilen 1253-1258) durch _GetFocusLensSubjectDistanceFromLens() dargestellt.
Meiner Meinung nach fehlerhaft:
g11, s90 (alle DryOS) -> lens_get_target_distance()=0 obwohl _GetFocusLensSubjectDistanceFromLens() gültig ist.
Der Ordnung halber sei gesagt, dass lens_get_target_distance() in CHDK nicht verwendet wird.
Nicht schön formuliert ist lens_get_focus_pos_from_lens()=lens_get_target_distance() bei diesen Kameras:
A470, A2000, ixus80, ixus85, ixus90, ixus860, ixus960, ixus970 (alle DryOS)
Hier sollten wird zur üblichen Schreibweise lens_get_focus_pos_from_lens() = _GetFocusLensSubjectDistanceFromLens() zurückkehren.
Und dann haben wir noch die Kameras bei denen lens_get_focus_pos()=lens_get_focus_pos_from_lens()=lens_get_target_distance() ist:
A1000, ixus95, ixus100, ixus120, ixus200, ixus870, sx120 (alle DryOS)
Für diese Kameras müssen die Funktionszeiger für GetFocusLensSubjectDistance und GetFocusLensSubjectDistanceFromLens (stubs_entry.S) überprüft und getestet werden.
Für die sx120 hat der Signaturfinder die benötigten Adressen gefunden, daher ist im Anhang eine Testversion.
Gruß rudi