assert-Funktion von lua

Fragen zur Bedienung und Funktionsweise des CHDKs
Forumsregeln
Überprüfe folgende Dinge:
Bist stets der Dokumentation gefolgt?
Hast du im Forum schon nach ähnlichen Problemen gesucht?
Hast du bei deiner Frage das Problem umfassend beschrieben?
Welche Kamera und CHDK-Version betrifft das Problem?

Probleme mit einem Skript sollten möglichst und wenn vorhanden in dem zugehörigen Thema zum Skript besprochen werden.

assert-Funktion von lua

Beitragvon Joedi » 15.04.2020, 06:21

HI, ich verwende das erste mal die assert-Funktion in einem lua.script, um ein script abzubrechen, wenn bestimmte Bedingungen nicht erfüllt sind. Aber irgendwie verhält sich
assert(Bedingung,[Meldung]) (chdk-Handbuch 1.5, S. 116)
genau umgekehrt wie beschriebe:, mit negierter Bedingung.
Oder mache ich einen Denkfehler?
Folgendes funktioniert nur mit dem "not" richtig:

Code: Alles auswählen
@chdk  1.5
...
props= require("propcase")
bi=get_buildinfo()
camid=bi.platformid
-- viz. camid: see  "https://chdk.fandom.com/wiki/P-ID_(Table)?oldid=38012"
-- 32A0 == 12960 EOS M10   ("Canon" lt. lsusb)
assert(not (camid ~= 12960) ,"NOT an EOS M10, script stopped")

....
Grüsse von joedi
Joedi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 17
Registriert: 17.02.2020, 21:02
Wohnort: MA/HD
Kamera(s): IXUS60, A470, A530, A570IS, A590IS, SX230, M10

Re: assert-Funktion von lua

Beitragvon msl » 15.04.2020, 12:21

Hallo,

die Verwendung von assert ist in dem Fall etwas unglücklich, weil assert nur true, false und nil auswerten kann. assert wird eher für einen Syntax-Check verwendet, z.B. ob eine Zahl eine Zahl ist. In deinen Fall würde ich error verwenden.
Code: Alles auswählen
if camid ~= 12960 then error("ungültige Kamera") end

Damit bricht das Skript an der Stelle mit der Fehlermeldung "ungültige Kamera" ab.

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: assert-Funktion von lua

Beitragvon Joedi » 22.04.2020, 20:18

Danke msl! Ich hatte die error()-funktion übersehen, weil da im Handbuch auch das "script beenden" nicht explizit erwähnt war, aber ist ja eientlich logisch...
Habe das fertige script bei "code-ecke" unter "Blütenfotografie" gepostet
Gruss joedi
Joedi
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 17
Registriert: 17.02.2020, 21:02
Wohnort: MA/HD
Kamera(s): IXUS60, A470, A530, A570IS, A590IS, SX230, M10


Zurück zu Probleme

Wer ist online?

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