Accesso rapido:  

Forum: German Forum

Topic: VDJScript: Batchverarbeitung mehrerer Zeilen

Questo argomento è obsoleto e potrebbe contenere informazioni obsolete o errate.

8anglesHome userMember since 2018
Moin zusammen,
ich habe ein Verständnisproblem mit dem Scriptinterpreter.
In der Anwendungsprogrammierung schreibe ich normalerweise in mehreren Zeilen und kann unabhängige Entscheidungsbäume erstellen.
Beispiel:

Wenn [Bedingung1] dann [Kommando1] ansonsten [AnderesKommando1]
Wenn [Bedingung2] dann [Kommando2] ansonsten [AnderesKommando2]

Unter jeder anderen Programmiersprache werden beide Entscheidungsbäume nacheinander abgearbeitet.
Unter VDJScript scheint das so nicht zu funktionieren.
Hier mal mein aktuelles Script, bei dem ich auf das Problem laufe:
#########################################
var_greater "my_mvol_min" 23 ? set "my_mvol_min" 23 : nothing
var_smaller "my_mvol_max" 53 ? set "my_mvol_max" 53 : nothing
toggle "my_mute" &
var "my_mute" ?
set "my_mvol_max" '`deck 1 level' &
get_var "my_mvol_min" &
param_cast "percentage" &
deck 1 level &
djc_mic on :
set "my_mvol_min" '`deck 1 level' &
get_var "my_mvol_max" &
param_cast "percentage" &
deck 1 level &
djc_mic off
####################################
Die Zeilen 1 und 2 sollen völlig unabhänig von dem nachfolgendem Entscheidungsbaum ausgeführt werden.
Der Interpreter erkennt aber alles nach dem ersten ":" als Komandobaum zur ersten Bedingung in Zeile 1.

Wie kann ich das verhindern?
 

Inviato Tue 24 Jul 18 @ 10:05 am
PachNPRO InfinityMember since 2009
Du kannst das ganze ja weiter miteinander verknüpfen

Wenn [Bedingung1] ? [Kommando1] : Wenn [Bedingung2] ? [Kommando2] : [AnderesKommando2] : [AnderesKommando1]


var_greater "my_mvol_min" 23 ? set "my_mvol_min" 23 ?
var_smaller "my_mvol_max" 53 ? set "my_mvol_max" 53 : nothing

Wenn du es dann völlig unabhängig vom weiteren Skriptteil haben willst, dann würde ich es generell irgendwo separat auf einen Button legen.
So wie es aussieht, willst du dir damit ja nur einmalig zwei Grenzwerte setzen. Dann kannst du das auch im ONINIT Key des Keyboardmappings legen.
 

Inviato Tue 24 Jul 18 @ 11:02 am
8anglesHome userMember since 2018
Hi,

"einmalig" ist nicht korrekt.
Das Script setzt auf knopfdruck die Lautstärke des Deck 1 auf einen Max oder Min Wert (Toggle).
Nun habe ich festgestellt, daß zwei bestimmte Werte die obergrenze, bzw. Untergrenze darstellen, die nach möglichkeit nicht passiert werden sollen.
Verschiebe ich den Regler innerhalb dieser Grenzen, so merkt das Script sich diese Werte für den nächsten Toggle.
Sollte ein Wert aber aus der Grenze gelaufen sein, bsp. Max-Wert liegt plötzlich bei 0, so soll die Prüfung zuschlagen und wieder den Grenzwert 53 setzen.
Daher "muss" die Prüfung jedesmal unabhängig von dem Rest der Routine laufen.

Wenn ich es also richtig verstehe, ist VDJScript kein zeilenorientierter Batchinterpreter -was sehr schade ist.


 

Inviato Thu 26 Jul 18 @ 12:03 pm
PachNPRO InfinityMember since 2009
Dann bau das ganze doch in den Scriptablauf mit ein und prüfe, bevor du das Decklevel setzt.

Das nachfolgende wird wahrscheinlich nicht ganz funktionieren, weil ich nicht genau verstehe was du machen willst.
Aber anpassen kannst du es dir dann ja selbst.

toggle "my_mute" &
var "my_mute" ?
var_greater "my_mvol_min" 23 ? set "my_mvol_min" 23 :
set "my_mvol_max" '`deck 1 level' &
get_var "my_mvol_min" &
param_cast "percentage" &
deck 1 level &
djc_mic on :
var_smaller "my_mvol_max" 53 ? set "my_mvol_max" 53 :
set "my_mvol_min" '`deck 1 level' &
get_var "my_mvol_max" &
param_cast "percentage" &
deck 1 level &
djc_mic off

Damit sollte erst der zustand der Variable geprüft werden, wenn er kleiner als der von dir eingestellte Wert ist wird sie neu gesetzt. Wenn nicht, dann wird mit der aktuellen Einstellung weiter gearbeitet. So zumindest die Idee dahinter.
 

Inviato Fri 27 Jul 18 @ 9:18 am


(Vecchi argomenti e forum sono automaticamente chiusi)