Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Allgemeine Info zu BiDiB:


Treiberinstallation:


Programme für BiDiB:


Das BiDiB-System:

One-Serie:

Addon-Module:

Ready-Line:

Beispielkonfigurationen:

Konfigurationsvorlagen:


Das OpenCarSystem:


Anwendungsunterstützung:


Kompatibilität:


Codehilfe für eigene BiDiBOne Entwicklungen:

tools:scripting-node-example

Erläuterung eines Beispielscript

Die im Script verwendete Syntax wird hier anhand eines Beispiels erläutert: die Signalbilder eines Ausfahrsignals werden in vier Macros abgebildet und einem Accessory zugewiesen.
Es wurde mit den Vorabversionen von Wizard getestet.
:!: Der Monitor unterstützt diese Script-Versionen (noch) nicht. :!:

Hier das Script zum Download: lichtausfahrsignal_dimming_8bit.zip

Eingabe des Anwenders

Mit diesen vier Zeilen, wird die Eingabemaske konfiguriert, in der der Anwender den ersten Lightport, das erste Makro und das Accessory eingeben, kann, das er verwenden möchte. (Menubefehle)
Durch die letzte ##INPUT-Zeile, kann der Anwender eine Entscheidung treffen, ob bereits vorhandene Namen (Labels) der Ports, Macros und Accessories überschrieben werden sollen.

##instruction(text:de="Konfiguration eines DB Lichtausfahrsignal: <br>Erster Lightport = gn, rt1, rt2, ge, beide ws <br>Erstes Macro = Hp0, Hp1, Hp2, Hp0Sh1", text:en="Configuration of a light signal (DB): first lightport = gn, rt1, rt2, ge, ws")
##
##input($my_accessory:accessory, text:de="Nummer des zu erzeugenden Accessory", text:en="Nummber of the Accessory", default=5)
##input($my_macro:macro, text:de="Nummer des ersten Macros (Hp0)", text:en="Number of the first macro ", default=10)
##input($start_led:int, text:de="Nummer des ersten Lightport (gn LED)", text:en="Number of the first Lightport", default=2)
##input($prevent_replace_labels:boolean, text:de="Keine Namen f\u00fcr Accessory, Makros, Ports ersetzen", text:en="Prevent replace labels for accessory, macro and ports", default=false)

Die Eingabemaske sieht in diesem Fall, so aus:

Variablen definieren

Hier werden einige Variablen per Templatebefehl definiert, die velocity dann im Script entsprechend verwendet/​einsetzt.

## 
#​set($led_gap = 1)           ## die anderen vier LED sind an den folgenden vier Lightports angeschlossen
#​set($AccessoryName = "​Lichtausfahrsignal"​)
##
## -------------- 2. set Parameters for Ports
#​set($WertbeiOff = 0)
#​set($WertbeiOn = 200)
#​set($DimmzeitOff = 10) 
#​set($DimmzeitOn = 10)
#​set($Ueberblenden = 15)
#​set($OnTime = 0)

Port- und Macro-Nummern

In Abhängigkeit von den Eingaben des Anwenders, werden hier die Nummern der Marcos und Ports gesetzt. Die Berechnungen werden wieder von velocity „durchgeführt“.

## Nummer der verwendeten Macros definieren.
## Die erste Macronummer wird vom Anwender vorgegeben.
#set($macro0 = $my_macro)    ## need some additional macros
#set($macro1 = $macro0 + 1)    ## need some additional macros
#set($macro2 = $macro0 + 2)    ## need some additional macros
#set($macro3 = $macro0 + 3)    ## need some additional macros

## Nummer der verwendeten Lightports definieren.
## Die erste Portnummer wird vom Anwender vorgegeben.
#set($led_gn = $start_led)    ## LED rt1 an erstem lightport, der eingegeben wurde
#set($led_rt1 = 1 * $led_gap + $start_led) ## LED rt2 an nächstem lightport
#set($led_rt2 = 2 * $led_gap + $start_led)  ## LED gn an nächstem lightport
#set($led_ge = 3 * $led_gap + $start_led)  ## LED ge an nächstem lightport
#set($led_ws = 4 * $led_gap + $start_led)  ## LED ws an nächstem lightport

Namen zuweisen

Den Ports, Macros und Accessoies werden Namen (Label) zugewiesen.
In diesem Beispiel werden die Label aus den Eingaben des Anwenders (Accessory-Nr., Port-Nr.) und dem Accessoynamen gebildet. Der Accessoryname ist in der Variablen ${AccessoryName} als „Lichteinfahrsignal“ definiert.
In diesem Beispiel bekommt Macro0 den Namen „Lichtausfahrsignal<Accessorynummer>_Hp0“ Lightport mit der eingegebenen Nummer aus ${led_rt1} bekommt das Label „Lichtausfahrsignal<Accessorynummer>_<Portnummer>_rt1
Und das Accessory das Label „Lichtausfahrsignal<Accessorynummer>

#######################################
## Setzt label, wenn ${prevent_replace_labels} NICHT true
#if (!${prevent_replace_labels})
## 
## Set label of Ports
set light ${led_rt1} name="${AccessoryName}${my_accessory}_${led_rt1}_rt1"
set light ${led_rt2} name="${AccessoryName}${my_accessory}_${led_rt2}_rt2"
set light ${led_gn} name="${AccessoryName}${my_accessory}_${led_gn}_gn"
set light ${led_ge} name="${AccessoryName}${my_accessory}_${led_ge}_ge"
set light ${led_ws} name="${AccessoryName}${my_accessory}_${led_ws}_ws"

## Set label of Macro
set macro ${macro0} name="${AccessoryName}${my_accessory}_Hp0"
set macro ${macro1} name="${AccessoryName}${my_accessory}_Hp1"
set macro ${macro2} name="${AccessoryName}${my_accessory}_Hp2"
set macro ${macro3} name="${AccessoryName}${my_accessory}_Hp0Sh1"

## Set label of Accessories
set accessory ${my_accessory} name="${AccessoryName}${my_accessory}"

#end
#######################################

Ports einstellen

Mit den folgenden Befehlen werden die Dimmzeiten und Helligkeiten der Ports eingestellt.
Je nach Knoten und Porteigenschaften, können hier auch andere Parameter notwendig sein.
So z.B. bei den Dimmzeiten der LC „DimmOff88“, aber bei der NeoControl dann „DimmOff“.

## 
## Ports konfigurieren
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} DimmOff=${DimmzeitOff} DimmOn=${DimmzeitOn} number=${led_rt1}
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} DimmOff=${DimmzeitOff} DimmOn=${DimmzeitOn} number=${led_rt2}
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} DimmOff=${DimmzeitOff} DimmOn=${DimmzeitOn} number=${led_ge}
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} DimmOff=${DimmzeitOff} DimmOn=${DimmzeitOn} number=${led_gn}
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} DimmOff=${DimmzeitOff} DimmOn=${DimmzeitOn} number=${led_ws}

Ansicht im Wizard, nach dem das Script gestartet wurde:


Macros erstellen

Als erstes muss ein Macro mit dem select-Befehl ausgewählt werden.
Mit select macro ${macro0} wird das erste Macro ausgewählt.
Genauso wird bei dem add step-Befehl für die Portnummern der Variablenname verwendet.

Macro für Hp0

################################################/
## Macro Ausfahrsignal Hp0
##
select macro ${macro0}
config macro repeat=1 slowdown=1
## Signal dunkel
add step ptype=light action=down number=${led_rt1}
add step ptype=light action=down number=${led_rt2}
add step ptype=light action=down number=${led_ge}
add step ptype=light action=down number=${led_gn}
add step ptype=light action=down number=${led_ws}

## Hp0 setzten, $Ueberblenden Ticks dunkel
add step ptype=light action=up delay=${Ueberblenden} number=${led_rt1}
add step ptype=light action=up number=${led_rt2}
##
## Ende Macro Ausfahrsignal Hp0
##



Für die drei weiteren Macros wird genauso vorgegangen:
Macro für Hp1

################################################/
## Macro Ausfahrsignal Hp1
##
select macro ${macro1}
config macro repeat=1 slowdown=1
## Signal dunkel
add step ptype=light action=down number=${led_rt1}
add step ptype=light action=down number=${led_rt2}
add step ptype=light action=down number=${led_ge}
add step ptype=light action=down number=${led_gn}
add step ptype=light action=down number=${led_ws}

## Hp1 setzten, $Ueberblenden Ticks dunkel
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn}
##
## Ende Macro Ausfahrsignal Hp1
##




Macro für Hp2

################################################/
## Macro Ausfahrsignal Hp2
##
select macro ${macro2}
config macro repeat=1 slowdown=1
## Signal dunkel
add step ptype=light action=down number=${led_rt1}
add step ptype=light action=down number=${led_rt2}
add step ptype=light action=down number=${led_ge}
add step ptype=light action=down number=${led_gn}
add step ptype=light action=down number=${led_ws}

## Hp2 setzten, $Ueberblenden Ticks dunkel
add step ptype=light action=up delay=${Ueberblenden} number=${led_ge}
add step ptype=light action=up number=${led_gn}
##
## Ende Macro Ausfahrsignal Hp2
##




Macro für Hp0 Sh1

################################################/
## Macro Ausfahrsignal Hp0+Sh1
##
select macro ${macro3}
config macro repeat=1 slowdown=1
## Signal dunkel
add step ptype=light action=down number=${led_rt1}
add step ptype=light action=down number=${led_rt2}
add step ptype=light action=down number=${led_ge}
add step ptype=light action=down number=${led_gn}
add step ptype=light action=down number=${led_ws}

## Hp0Sh1 setzten, $Ueberblenden Ticks dunkel
add step ptype=light action=up delay=${Ueberblenden} number=${led_rt1}
add step ptype=light action=up number=${led_ws}
##
## Ende Macro Ausfahrsignal Hp0+Sh1
##



Aspecte zuweisen

Zum Schluss werden die Macros den vier ersten Aspecten eines Accessories zugewiesen.
Auch hier werden wieder die Variablennamen verwendet.

## Define Accessory
select accessory ${my_accessory}
add aspect 0 macroname="${AccessoryName}${my_accessory}_Hp0"
add aspect 1 macroname="${AccessoryName}${my_accessory}_Hp1"
add aspect 2 macroname="${AccessoryName}${my_accessory}_Hp2"
add aspect 3 macroname="${AccessoryName}${my_accessory}_Hp0Sh1"


tools/scripting-node-example.txt · Zuletzt geändert: 2017/01/27 19:09 von Michael