Probleme bei der Verwendung von get_propset / set_prop

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

Probleme bei der Verwendung von get_propset / set_prop

Beitragvon c_joerg » 21.08.2014, 07:52

Hallo,

gerade als Neuling hat man das Problem, das einige Scripte nicht so wie erwartet funktionieren.
Auch hier im Forum liest man immer wieder davon.

Die meisten Probleme die ich hatte, waren auf get_propset/set_prop zurückzuführen.
Auch nach einem halben Jahr falle ich immer wieder darauf rein…

get_propset gibt eine Identifikation der Kameramodelle.
set_prop setzt Systemvariablen.

Meine S110 liefert bei get_propset den Wert 5.

Nun stehen in etlichen Scripten, auch bei den Beispielen, Zeilen wie diese:


Code: Alles auswählen
function set_resolution(set_size)
   if get_propset() == 1 then
      set_prop(24,set_size)
   else
      set_prop(218,set_size)
   end
end


Hier wird z.B. die Systemvariable für die Auflösung gesetzt.
Die Systemvariable für die Auflösung hat bei den verschiedenen Kameramodellen die folgenden Werte:

propset 1 => 24
propset 2 => 218
propset 3 => 220
propset 4 => 222
propset 5 => 222
propset 6 => 221


Läuft das Script nun auf meiner Kamera, dann bleibt das Script stehen, weil auf eine falsche Systemvariable geschrieben wird. Das Beispiel stammt vermutlich aus einer Zeit, in der es nur 1 und 2 gab.
Man sollte also beim Ausführen von Scripten immer darauf achten, ob solche Befehle im Script vorhanden.

Eine Möglichkeit, die Befehle allgemeingültig zu halten, ist diese:

Code: Alles auswählen
proptable=require "propcase"
.
.
.
function set_resolution(set_size)
   set_prop(proptable.RESOLUTION,set_size)
end


In diesem Fall kann man auch direkt
Code: Alles auswählen
set_resolution


verwenden. Es gibt aber vermutlich nicht für jede Systemvariable eine Funktion.


Wer ist eigentlich für die Pflege der Script auf der Kamera zuständig? Zumindest diese sollte diesbezüglich angepasst werden. Eventuell auch nur durch eine Ausgabe am Anfang, das es nur bei 1 und 2 funktioniert.



Grüße Jörg
c_joerg
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 456
Registriert: 14.08.2014, 06:50
Wohnort: Bremen
Kamera(s): S110 103a
S45
2 * G1X 101a, 100e
G9xII 1.00c,
SX230 101a
SX50hs 100c
EOS M3 101a
EOS M100 100a

Re: Probleme bei der Verwendung von get_propset / set_prop

Beitragvon msl » 21.08.2014, 13:50

Hallo,

generell lässt sich das Problem, wie du selbst schon geschrieben hast, in Lua mittels der Bibliothek propcase.lua, die für jede Kamera automatisiert generiert wird, umschiffen.

Will man spezielle Variablen nutzen, die nicht in der Bibliothek enthalten sind, kommt man um eine bedingte Programmierung nicht herum, wenn das Skript für unterschiedliche Kameras angeboten werden soll. Dabei unterscheiden sich Propset 2 bis 6 nur unwesentlich (Ab bestimmten Variablen verschiebt sich das System um zwei bzw. eine Position). Propset 1 ist eine andere Sache. Das gehört zu den alten VxWorks-Kameras. Hier ist die Zuordnung komplett anders gestaltet.

Der Auszug aus dem Skript stammt aus der Zeit, als es nur Propset 1 und 2 gab. Das war die Hochzeit der CHDK-Entwicklung. Da wurden auch sehr viele Skripte entwickelt. Viele User haben sich aktiv beteiligt. Mittlerweile hält sich die aktive Mitarbeit in Grenzen.

Generell sollen CHDK-Skripte individuelle an die Kamera angepasste Aufgaben erledigen. Bei mehr als 120 CHDK-unterstützten Kameramodellen kann man nicht erwarten, dass jedes Skript auf jeder Kamera immer vollständig funktioniert. Das kann CHDK und können die Skriptautoren nicht leisten. Man kann sich diesem Ziel immer nur nähern.

Hier sind wir dann auch wieder bei dem Problem der aktiven Mitarbeit. Gegenwärtig melden sich die meisten User nur noch zu Wort, wenn etwas (vermeintlich) nicht funktioniert. Es ist ziemlich schwierig, etwas über eine Kamera in Erfahrung zu bringen, die man nicht selbst in der Hand halten kann.

Für die Pflege der Skripte auf der Kamera ist jeder Nutzer selbst verantwortlich. Die im CHDK-Komplettpaket enthaltenen Skripte werden durch das Entwickler-Team gepflegt. Aber auch hier ist man auf Rückmeldungen angewiesen. Bei den Skripten, die hier und an anderer Stelle bereitgestellt werden, handelt es sich immer um ein unverbindliches Angebot.

Ãœber die Jahre der CHDK-Entwicklung ist bei den PropertyCase-Variablen noch eine Sache zur Gewissheit geworden. Das Auslesen ist kein Problem. Viele der Variablen lassen sich aber durch set_prop() nicht wirklich beeinflussen. Da muss man dann ziemlich tief in die CHDK-Trickkiste greifen, Stichwort logische Events und Native Calls.

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

Re: Probleme bei der Verwendung von get_propset / set_prop

Beitragvon c_joerg » 21.08.2014, 15:10

Hallo msl,

grundsätzlich sollte das keine Kritik sein. Ich rechne die Arbeit hier aller sehr hoch an.
Ich wollte nur für Anfänger darauf hinweisen...
Ich habe am Anfang auch ziemlich lange gebraucht, bis mir das Problem klar wurde….

Das man eigenverantwortlich handelt, wenn man hier Scripte herunter lädt, ist auch schon klar.
Alle kann man auch nicht bereinigen.


Die im CHDK-Komplettpaket enthaltenen Skripte werden durch das Entwickler-Team gepflegt.


Zumindest die im CHDK-Komplettpaket, sollte man aber anpassen oder zumindest entfernen
z.B.:

CHDK\SCRIPTS\EXAM\tv_uni_e.lua
CHDK\SCRIPTS\USER\br_easy.lua
CHDK\SCRIPTS\USER\conf_rw.lua
CHDK\SCRIPTS\USER\tv_mode.lua

Grüße Jörg
c_joerg
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 456
Registriert: 14.08.2014, 06:50
Wohnort: Bremen
Kamera(s): S110 103a
S45
2 * G1X 101a, 100e
G9xII 1.00c,
SX230 101a
SX50hs 100c
EOS M3 101a
EOS M100 100a

Re: Probleme bei der Verwendung von get_propset / set_prop

Beitragvon msl » 21.08.2014, 15:42

Hallo,

das ist doch mal eine Ansage. Ich schaue mir die genannten Skripte an.

Kritik, insbesondere konstruktiver Art, ist immer willkommen. Ich wollte auch nur mal schildern, wie es zu der Situation gekommen ist.

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

Re: Probleme bei der Verwendung von get_propset / set_prop

Beitragvon msl » 21.08.2014, 18:19

Update:

CHDK\SCRIPTS\EXAM\tv_uni_e.lua

Das Skript habe ich aus dem Komplettpaket gelöscht. Es gibt mittlerweile interessantere Skripte zu dem Thema.

CHDK\SCRIPTS\USER\br_easy.lua
CHDK\SCRIPTS\USER\conf_rw.lua
CHDK\SCRIPTS\USER\tv_mode.lua

Den Unterordner \User\... gibt im aktuellen CHDK-Paket nicht mehr. Der stammt noch aus dem alten CHDK-DE-Repositorium.
- br_easy.lua wurde durch br_easy2.lua abgelöst und sollte für alle Propsets funktionieren: viewtopic.php?t=1440
- conf_rw.lua sollte auf allen Kameras funktionieren, da die Verschiebung erst ab ungefähr PropertyCasy 140 beginnt. Außerdem gibt es für die mehrteiligen Konfigurationsdateien ein neues Skript: viewtopic.php?f=7&t=3234
- tv_mode.lua ist obsolet. Da lohnt eine Ãœberarbeitung aus meiner Sicht nicht mehr.

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

Re: Probleme bei der Verwendung von get_propset / set_prop

Beitragvon Werner_O » 22.08.2014, 19:24

Hallo c_joerg,

ich möchte hier ehrlich gesagt mal nachfragen, was Du mit Befehlen zu etwa "get_propset" etc. überhaupt erreichen willst.
Ohne besonderen Grund muß man sich m.E. als Lua-Einsteiger nicht mit solchen sehr speziellen Befehlen herumschlagen.

Bei meinen eigenen (momentan fünf) hier im Forum angebotenen Lua-Skripten, die zum Teil sehr umfangreich sind, komme ich jedenfalls ganz ohne solche Befehle aus.

Liebe Grüße
Werner_O
Zuletzt geändert von Werner_O am 23.08.2014, 16:00, insgesamt 1-mal geändert.
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: Probleme bei der Verwendung von get_propset / set_prop

Beitragvon c_joerg » 23.08.2014, 11:18

Hallo Werner,

wie kommst du darauf, dass ich damit etwas anfangen will?

Ich kann darauf auch komplett verzichten. Das erinnert mich immer so an die Peek und Poke Zeiten in Basic….

Ich habe am Anfang fast alle Scripte im Komplettpaket ausprobiert und mich gewundert, warum einige nicht richtig funktionieren. Auch bei etlichen Beispielen gibt es diese Befehle. Als Anfänger ist es dann sehr schwierig dies zu überblicken. Ich habe sie in meinen Scripten auch Weitgehens entfernt. Wüsste auch nicht, wo man sie noch wirklich braucht…

Das ganze hier, sollte nur noch mal ein Hinweis für Anfänger sein, worauf zu achten ist.

PS: Hattest du dir meine Fragen zu IntervWO.lua schon mal angesehen?

Grüße Jörg
c_joerg
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 456
Registriert: 14.08.2014, 06:50
Wohnort: Bremen
Kamera(s): S110 103a
S45
2 * G1X 101a, 100e
G9xII 1.00c,
SX230 101a
SX50hs 100c
EOS M3 101a
EOS M100 100a

Re: Probleme bei der Verwendung von get_propset / set_prop

Beitragvon Werner_O » 23.08.2014, 15:59

Hallo Jörg,

Deine Fragen habe ich gesehen und hatte dazu auch bereits am Donnerstag eine fast fertige aufwendige Antwort erstellt.
Durch einen versehentlichen Tastendruck am Laptop ist diese Antwort aber leider im digitalen Nirvana verschollen :-(

Ich muß also alles komplett neu schreiben, was ich aber hoffentlich heute noch schaffen sollte.

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a


Zurück zu Code-Ecke

Wer ist online?

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