Wo werden die Variablen aus einem Skript gespeichert?

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

Wo werden die Variablen aus einem Skript gespeichert?

Beitragvon kolja » 04.06.2017, 19:41

Nabend

Ich würde gerne versuchen über eine Wlan-SD-Karte die Einstellungen im Skript zu ändern.
Z.B. die Intervallzeit bzw. den manuellen Focus.

Nur wo werden diese Daten gespeichert?

Die Kamera ist "auto-on" sobald der Strom angeschlossen ist,
also sollte die Änderung nach dem Neustart kativ sein, oder?

Gruß Kolja
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Bilder: 1
Registriert: 27.08.2012, 13:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Wo werden die Variablen aus einem Skript gespeichert?

Beitragvon Werner_O » 05.06.2017, 13:20

Hallo Kolja,

am sichersten ist es, verschiedene Skriptvorgabekombinationen im Skriptmenü als Parameter-Sätze 0 bis 9 zu speichern. Siehe dazu Seite 42 im Handbuch hb15002.

Dazu ein Beispiel zu meinem Skript IntervWO v1.16beta. Dazu hatte ich 4 Parametersätze eingestellt, die auf der CAM im Ordner CHDK/DATA unter den Namen IntervWO.0 bis IntervWO.3 gepeichert wurden (siehe das erste Bild).
Die zusätzliche Datei IntervWO.cfg besteht nur aus einer Ziffer (0-9) und sagt, welcher Parametersatz beim Skripstart verwendet werden soll. Ändert man deren Wert, wird beim Skriptstart ein anderer Parametersatz aufgerufen.

Das ist die sicherste Weise, ein Skript mit unterschiedlichen Parametern zu starten, da so für jede Variable immer nur ein gültiger Wert eingestellt werden kann.

Grundsätzlich könnte man auch die Parameter-Sätze manuell ändern, wobei dann aber auch ungültige Werte für Variablen möglich wären mit nicht absehbaren Folgen!

Mein Beispielsskript hat z.B. viele Variablen:

Code: Alles auswählen
--[[
*********************************************
Script IntervWO v1.16 Beta
(c) Werner_O 2016/07/20
Thx msl
Licence: GPL
Dieses Skript benötigt CHDK ab Version 1.3.0!
*********************************************
@title IntervWO 1.16b
@chdk_version 1.3

@param     n Anzahl Bilder/Serien (0=inf)
  @default n 3
  @range   n 0 10000

@param     g Intervallzeit (hour)
  @default g 0
  @range   g 0 24

@param     i Intervallzeit (min)
  @default i 0
  @range   i 0 60

@param     j Intervallzeit (sec)
  @default j 3
  @range   j 0 60

@param     c Startverzögerung (hour)
  @default c 0
  @range   c 0 24

@param     d Startverzögerung (min)
  @default d 0
  @range   d 0 60

@param     e Startverzögerung (sec)
  @default e 5
  @range   e 0 60

@param     z Bilder je Unterserie (1=OFF)
  @default z 1
  @range   z 1 60

@param     y Interv.Zeit Unterserie (sec)
  @default y 1
  @range   y 0 60

@param     l AF-Lock bei 1. Bild/Serie
  @default l 0
  @range   l 0 1
 
@param     t Timeout für AF-Lock (sec)
  @default t 2
  @range   t 1 5
 
@param     a AE-Lock bei 1. Bild/Serie
  @default a 0
  @range   a 0 1
 
@param     f Auto-FixFokus verwenden
  @default f 0
  @values  f OFF MAN HYP INF MACRO
 
@param     m Man. A-FixFokus Distanz (mm)
  @default m 2000
  @range   m 0 65000

@param     b Blitzbereitschaft abwarten           
  @default b 0
  @range   b 0 1
 
@param     p Display aus n. Bild/Serie
  @default p 0
  @values  p OFF MAN 1 3 5 10
 
@param     q Zuweisung Display-Taste
  @default q 0
  @values  q DISPLAY SET DOWN

@param     s Save Mode (nur P;Tv;Av;M)
  @default s 1
  @range   s 0 1

@param     v Konsolenoffset vertikal
  @default v 2
  @range   v 0 6
 
@param     h Konsolenoffset horizontal
  @default h 0
  @range   h 0 9
]]

Das ergibt für bspw. die Parametersatzdatei 0 (IntervWO.0) den Inhalt vom zweiten Bild (ein Screenshot von Notepad++).
Zu sehen sind dabei auch die unter Windows unüblichen Trennzeichen (LF), welchen keinen Zeilenumbruch mit enthalten.
Daran etwas zu ändern geht zwar, ist aber wie bereits gesagt durchaus fehlerträchtig.

Liebe Grüße
Werner_O
Dateianhänge
Variablen.gif
Variablen.gif (6.83 KiB) 8220-mal betrachtet
Parametersatz.gif
Parameter-Satz
Parametersatz.gif (14.75 KiB) 8220-mal betrachtet
Zuletzt geändert von Werner_O am 06.06.2017, 00:58, insgesamt 3-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: Wo werden die Variablen aus einem Skript gespeichert?

Beitragvon kolja » 05.06.2017, 15:43

Hallo Werner

Danke für die ausführliche Antwort.
Ganz verstanden habe ich das Prinzip zwar nicht,
aber dafür deine Warnungen bzgl der Trennzeichen.

Versuchen werde ich es aber trotzdem mal.

Gruß Kolja
kolja
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 74
Bilder: 1
Registriert: 27.08.2012, 13:05
Wohnort: Kassel
Kamera(s): G7, momentan nur eine...

Re: Wo werden die Variablen aus einem Skript gespeichert?

Beitragvon Werner_O » 06.06.2017, 00:41

Hallo Kolja,

keep cool, vieles ist mit CHDK viel einfacher als gedacht.

Im Anhang findest Du ein Bild vom Skriptmenü mit aktiviertem Parameter-Satz 0 (die blau markierte Zeile).
Ich habe dabei im Beispiel nur die Anzahl der Bilder von 3 (Default) auf 6 erhöht, obwohl eigentlich alle Parameter geändert werden könnten.

Alle gemachten Skriptvorgabeänderungen landen nun in der Datei IntervWO.0 im Ordner CHDK/DATA.
Hat die Datei IntervWO.cfg im gleichen Ordner nun den Wert 0, würde mein Skript IntervWO.lua 1.16beta nun mit den Vorgabewerten der Datei IntervWO.0 starten anstelle der Default-Vorgabewerte des Skriptes.

Auf die gleiche Weise können an der CAM auch die zusätzlichen Parametersätze 1 bis 9 angelegt werden mit jeweils unterschiedlichen Vorgabewerten für die verfügbaren Parameter.

Das gilt übrigens generell für alle Skripte. Nur die Namen der Parameter-Sätze ändern sich abhängig vom Namen des jeweiligen Skriptes, das Prinzip bleibt aber immer gleich.

CHDK ist schon echt cool,
liebe Grüße
Werner_O
Dateianhänge
ScriptMenu.gif
Skript-Menü
ScriptMenu.gif (8.88 KiB) 8190-mal betrachtet
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 5 Gäste

cron