Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
data.nodescript.signals.SBB_Hauptsignal_System_L.nodescript Maven / Gradle / Ivy
### Dieses Script definiert ein Asseccory,
### um die zwei bis sechs LED eines SBB Hauptsignals System L
### anzusteuern.
###
### Hardware: 2 - 6 Lightports (Port 0 = rt halt, 1 = gn fahrt, 2 = ge 40 km/h, 3 = gn 60 km/h, 4 = ge kurze Fahrt, 5 = gn 90 km/h)
### Software: 1 accessory
### 2 - 6 Makros, 0 = FB1 freie Fahrt,
### 1 = Halt,
### 2 = FB2 Geschwindigkeits-Ausführung 40 km/h (optional)
### 3 = FB3 Geschwindigkeits-Ausführung 60 km/h (optional)
### 4 = FB5 Geschwindigkeits-Ausführung 90 km/h (optional)
### 5 = FB6 Kurze Fahrt (optional)
###
###
### history: 2017-12-04 A.Tillner, inital Version
### 2018-02-18 A.Tillner, Optionale Lightports für Signalbilder
### 2018-02-21 Markus von Allmen, Stellwerkstypen
### 2018-03-04 A.Tillner, Macronamen in FBn und Halt umbenannt
###
### how to use:
### A) configure
### In section 1, define your ports and the desired accessory number
### In section 2, define your settings (like brightness and speed)
### B) load and run this script
### what will happen?
### 1. the ports will be configured with the given parameters
### 2. three new macros for the aspects will be defined
### 3. these macros will be assigned to the accessory
### C) have fun
###
### -------------- 1. Select Target
##application(text:de="SBB Hauptsignal System L, 2 - 6 Fahrbegriffe", text:en="SBB Main signal System L, 2 - 6 Aspects")
##instruction(text:de="SBB Hauptsignal System L, 2 - 6 Fahrbegriffe Lightports = rt_halt, gn_fahrt, ge_40, gn_60, ge_kurz, gn_90 Macros = FB1 Freie Fahrt, Halt Optional: FB2 Geschwindigkeits-Ausführung 40 km/h, FB3 Geschwindigkeits-Ausführung 60 km/h, FB5 Geschwindigkeits-Ausführung 90 km/h, FB6 Kurze Fahrt", link="https://forum.opendcc.de/wiki/doku.php?id=konfigvorlagen:sbb_system_l" )
##instruction(text:en="SBB main signal System L, 2 - 6 Aspects Lightports = rt_halt, ge_fahrt, ge_40, gn_60, ge_kurz, gn_90 Macros = FB1 free ride, stop Optional FB2 speed 40 km/h, FB3 speed 60 km/h, FB5 speed 90 km/h, FB6 short drive", link="https://forum.opendcc.de/wiki/doku.php?id=konfigvorlagen:sbb_system_l" )
###
##input($AccessoryName:string, text:de="Name des Signal-Accessories: ", text:en="Name of the signal Accessory: ", default="SBB Hauptsignal System L")
##input($my_accessory:accessory, text:de="Nummer des zu erzeugenden Accessory: ", text:en="Number of the Accessory: ", default=0)
##input($my_macro:macro, text:de="Nummer des ersten Macros (Warning): ", text:en="Number of the first macro (warning): ", default=0)
##input($start_led:light, text:de="Nummer des ersten Lightport (gn_links): ", text:en="Number of the first Lightport (gn_left): ", default=0)
##input($speed_40:boolean, text:de="Optional: FB2 Geschwindigkeits-Ausführung 40 km/h : ", text:en="Optional: FB2 Speed 40 km/h : ", default=0)
##input($speed_60:boolean, text:de="Optional: FB3 Geschwindigkeits-Ausführung 60 km/h : ", text:en="Optional: FB3 Speed 60 km/h : ", default=0)
##input($speed_90:boolean, text:de="Optional: FB5 Geschwindigkeits-Ausführung 90 km/h : ", text:en="Optional: FB5 Speed 90 km/h : ", default=0)
##input($shortdrive:boolean, text:de="Optional: FB6 Kurze Fahrt : ", text:en="Optional: FB6 Short drive : ", default=0)
##input($STW:int, text:de="Stellwerkstyp: 0: Sichtbarer Lampentest wie z.B. SpDrS (default); 1: langsames Überblenden wie z.B. ELEKTRA; 2: schnelles Überblenden wie z.B. Domino 67: (Bei anderen Eingaben wird SpDrS verwendet)", text:en="Railway control center type: 0: Visible bulb test as e.g. SpDrs (default); 1: slow cross-fading as e.g. ELEKTRA; 2: fast cross-fading as e.g. Domino 67: (If another number is entered, 0 is used)", default=0)
##input($prevent_replace_labels:boolean, text:de="Keine Namen fuer Accessory, Makros, Ports ersetzen", text:en="Prevent replace labels for accessory, macro and ports", default=false)
#set($led_gap = 1) ### die anderen vier LED sind an den folgenden vier Lightports angeschlossen
###
### -------------- 2. set Parameters for Ports
#set($WertbeiOff = 0)
#set($WertbeiOn = 200)
#if (${STW} == 1)
#set($Ueberblenden = 25)
#set($BulbTestDelay = 0)
#elseif (${STW} == 2)
#set($Ueberblenden = 5)
#set($BulbTestDelay = 0)
#else
#set(${STW} = 0)
#set($Ueberblenden = 5)
#set($BulbTestDelay = 5)
#end
#set($OnTime = 0)
#if (${dimm_range} == 8) ### Es handelt sich um einen Knoten mit 8 Bit Dimming
#set($DimmzeitOff = 10)
#set($DimmzeitOn = 7)
#set($DimmzeitOffParam = "DimmOff=${DimmzeitOff}")
#set($DimmzeitOnParam = "DimmOn=${DimmzeitOn}")
#else ### Es handelt sich um einen Knoten mit 16 Bit Dimming
#set($DimmzeitOff = 2500)
#set($DimmzeitOn = 1750)
#set($DimmzeitOffParam = "DimmOff88=${DimmzeitOff}")
#set($DimmzeitOnParam = "DimmOn88=${DimmzeitOn}")
#end
### -------------- 3. define macros and lightports
#set($mCount = 0)
#set($macro_halt = $my_macro + $mCount) ### Macro Halt
#set($led_rt_halt = $start_led + $mCount) ### Lightport LED rot
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} ${DimmzeitOffParam} ${DimmzeitOnParam} number=${led_rt_halt}
#set($mCount = $mCount + 1)
#set($macro_fahrt = $my_macro + $mCount) ### FB1 freie Fahrt
#set($led_gn_fahrt = $start_led + $mCount) ### Lightport LED grün
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} ${DimmzeitOffParam} ${DimmzeitOnParam} number=${led_gn_fahrt}
#if (${speed_40})
#set($mCount = $mCount + 1)
#set($macro_40 = $my_macro + $mCount) ### FB2 Geschwindigkeits-Ausführung 40 km/h
#set($led_ge_40 = $start_led + $mCount) ### Lightport LED gelb
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} ${DimmzeitOffParam} ${DimmzeitOnParam} number=${led_ge_40}
#end
#if (${speed_60})
#set($mCount = $mCount + 1)
#set($macro_60 = $my_macro + $mCount) ### FB3 Geschwindigkeits-Ausführung 60 km/h
#set($led_gn_60 = $start_led + $mCount) ### Lightport LED grün
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} ${DimmzeitOffParam} ${DimmzeitOnParam} number=${led_gn_60}
#end
#if (${shortdrive})
#set($mCount = $mCount + 1)
#set($macro_short = $my_macro + $mCount) ### FB6 Kurze Fahrt
#set($led_ge_short = $start_led + $mCount) ### Lightport LED gelb
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} ${DimmzeitOffParam} ${DimmzeitOnParam} number=${led_ge_short}
#end
#if (${speed_90})
#set($mCount = $mCount + 1)
#set($macro_90 = $my_macro + $mCount) ### FB5 Geschwindigkeits-Ausführung 90 km/h
#set($led_gn_90 = $start_led + $mCount) ### Lightport LED grün
config port ptype=light ValueOff=${WertbeiOff} ValueOn=${WertbeiOn} ${DimmzeitOffParam} ${DimmzeitOnParam} number=${led_gn_90}
#end
###############################################################
########################################
### Setzt label, wenn ${prevent_replace_labels} NICHT true
#if (!${prevent_replace_labels})
###
### Set label of Ports
set macro ${macro_halt} name="${AccessoryName}_${my_accessory}_Halt"
set light ${led_gn_fahrt} name="${AccessoryName}_${my_accessory}_${led_gn_fahrt}_gn_fahrt"
set macro ${macro_fahrt} name="${AccessoryName}_${my_accessory}_FB1"
set light ${led_rt_halt} name="${AccessoryName}_${my_accessory}_${led_rt_halt}_rt_halt"
#if (${speed_40})
set macro ${macro_40} name="${AccessoryName}_${my_accessory}_FB2"
set light ${led_ge_40} name="${AccessoryName}_${my_accessory}_${led_ge_40}_ge_40"
#end
#if (${speed_60})
set macro ${macro_60} name="${AccessoryName}_${my_accessory}_FB3"
set light ${led_gn_60} name="${AccessoryName}_${my_accessory}_${led_gn_60}_gn_60"
#end
#if (${speed_90})
set macro ${macro_90} name="${AccessoryName}_${my_accessory}_FB5"
set light ${led_gn_90} name="${AccessoryName}_${my_accessory}_${led_gn_90}_gn_90"
#end
#if (${shortdrive})
set macro ${macro_short} name="${AccessoryName}_${my_accessory}_FB6"
set light ${led_ge_short} name="${AccessoryName}_${my_accessory}_${led_ge_short}_ge_short"
#end
### Set label of Accessories
set accessory ${my_accessory} name="${AccessoryName}_${my_accessory}"
#end
########################################
################################################/
### Macro Hauptsignal Halt
###
select macro ${macro_halt}
config macro repeat=1 slowdown=1
### nicht benoetigte LED's ausschalten
add step ptype=light action=down number=${led_rt_halt}
add step ptype=light action=down number=${led_gn_fahrt}
#if (${speed_40})
add step ptype=light action=down number=${led_ge_40}
#end
#if (${speed_60})
add step ptype=light action=down number=${led_gn_60}
#end
#if (${speed_90})
add step ptype=light action=down number=${led_gn_90}
#end
#if (${shortdrive})
add step ptype=light action=down number=${led_ge_short}
#end
### Halt setzten, nach $Ueberblenden Ticks
add step ptype=light action=up delay=${Ueberblenden} number=${led_rt_halt}
###
### Ende Macro Hauptsignal Halt
###
################################################/
################################################/
### Macro Hauptsignal FB1 Freie Fahrt
###
select macro ${macro_fahrt}
config macro repeat=1 slowdown=1
### nicht benoetigte LED's ausschalten
#if (${speed_90})
add step ptype=light action=down number=${led_gn_90}
#end
#if (${speed_60})
add step ptype=light action=down number=${led_gn_60}
#end
#if (${shortdrive})
add step ptype=light action=down number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=down number=${led_ge_40}
#end
#if (${STW} == 0)
add step ptype=light action=down number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down number=${led_rt_halt}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_fahrt}
#elseif (${STW} == 1)
add step ptype=light action=down number=${led_gn_fahrt}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#else
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#end
### Ende Macro FB1 Hauptsignal Freie Fahrt
###
################################################/
#if (${speed_40})
################################################/
### Macro Hauptsignal FB2 Geschwindigkeits-Ausführung 40 km/h
###
select macro ${macro_40}
config macro repeat=1 slowdown=1
### nicht benoetigte LED's ausschalten
#if (${speed_90})
add step ptype=light action=down number=${led_gn_90}
#end
#if (${speed_60})
add step ptype=light action=down number=${led_gn_60}
#end
#if (${shortdrive})
add step ptype=light action=down number=${led_ge_short}
#end
#if (${STW} == 0)
add step ptype=light action=down number=${led_gn_fahrt}
add step ptype=light action=down number=${led_ge_40}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down number=${led_rt_halt}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_ge_40}
add step ptype=light action=up delay=${BulbTestDelay} number=${led_gn_fahrt}
#elseif (${STW} == 1)
add step ptype=light action=down number=${led_gn_fahrt}
add step ptype=light action=down number=${led_ge_40}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_ge_40}
add step ptype=light action=up number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#else
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_ge_40}
add step ptype=light action=up number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#end
###
### Ende Macro Hauptsignal FB2 Geschwindigkeits-Ausführung 40 km/h
###
################################################/
#end
#if (${speed_60})
################################################/
### Macro Hauptsignal FB3 Geschwindigkeits-Ausführung 60 km/h
###
select macro ${macro_60}
config macro repeat=1 slowdown=1
### nicht benoetigte LED's ausschalten / Halt, falls geschaltet bleibt
#if (${speed_90})
add step ptype=light action=down number=${led_gn_90}
#end
#if (${shortdrive})
add step ptype=light action=down number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=down number=${led_ge_40}
#end
#if (${STW} == 0)
add step ptype=light action=down number=${led_gn_fahrt}
add step ptype=light action=down number=${led_gn_60}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down number=${led_rt_halt}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_60}
add step ptype=light action=up delay=${BulbTestDelay} number=${led_gn_fahrt}
#elseif (${STW} == 1)
add step ptype=light action=down number=${led_gn_fahrt}
add step ptype=light action=down number=${led_gn_60}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_60}
add step ptype=light action=up number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#else
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_60}
add step ptype=light action=up number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#end
###
### Ende Macro Hauptsignal FB3 Geschwindigkeits-Ausführung 60 km/h
###
################################################/
#end
#if (${speed_90})
################################################/
### Macro Hauptsignal FB5 Geschwindigkeits-Ausführung 90 km/h
###
select macro ${macro_90}
config macro repeat=1 slowdown=1
### nicht benoetigte LED's ausschalten / Halt, falls geschaltet bleibt
#if (${shortdrive})
add step ptype=light action=down number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=down number=${led_ge_40}
#end
#if (${STW} == 0)
add step ptype=light action=down number=${led_gn_fahrt}
add step ptype=light action=down number=${led_gn_90}
add step ptype=light action=down number=${led_gn_60}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down number=${led_rt_halt}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_90}
add step ptype=light action=up delay=${BulbTestDelay}number=${led_gn_60}
add step ptype=light action=up delay=${BulbTestDelay} number=${led_gn_fahrt}
#elseif (${STW} == 1)
add step ptype=light action=down number=${led_gn_fahrt}
add step ptype=light action=down number=${led_gn_90}
add step ptype=light action=down number=${led_gn_60}
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_90}
add step ptype=light action=up number=${led_gn_60}
add step ptype=light action=up number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#else
### Fahrbegriffsstromkreis "testen" / einschalten
add step ptype=light action=up delay=${Ueberblenden} number=${led_gn_90}
add step ptype=light action=up number=${led_gn_60}
add step ptype=light action=up number=${led_gn_fahrt}
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#end
###
### Ende Macro FB5 Geschwindigkeits-Ausführung 90 km/h
###
################################################/
#end
#if ( ${shortdrive} )
################################################/
### Macro Hauptsignal FB6 Kurze Fahrt
###
select macro ${macro_short}
config macro repeat=1 slowdown=1
### nicht benoetigte LED's ausschalten / Halt, falls geschaltet bleibt
add step ptype=light action=down number=${led_gn_fahrt}
#if (${speed_90})
add step ptype=light action=down number=${led_gn_90}
#end
#if (${speed_60})
add step ptype=light action=down number=${led_gn_60}
#end
#if (${STW} == 0)
#if (${shortdrive})
add step ptype=light action=down number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=down number=${led_ge_40}
#end
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down number=${led_rt_halt}
### Fahrbegriffsstromkreis "testen" / einschalten
#if (${shortdrive})
add step ptype=light action=up delay=${Ueberblenden} number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=up delay=${BulbTestDelay} number=${led_ge_40}
#end
#elseif (${STW} == 1)
#if (${shortdrive})
add step ptype=light action=down number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=down number=${led_ge_40}
#end
### Fahrbegriffsstromkreis "testen" / einschalten
#if (${shortdrive})
add step ptype=light action=up delay=${Ueberblenden} number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=up number=${led_ge_40}
#end
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#else
### Fahrbegriffsstromkreis "testen" / einschalten
#if (${shortdrive})
add step ptype=light action=up delay=${Ueberblenden} number=${led_ge_short}
#end
#if (${speed_40})
add step ptype=light action=up number=${led_ge_40}
#end
### Halt wegnehmen, nach $Ueberblenden Ticks
add step ptype=light action=down delay=${Ueberblenden} number=${led_rt_halt}
#end
###
### Ende Macro Hauptsignal FB6 Kurze Fahrt
###
################################################/
#end
### Define Accessory
#set($aCount = 0)
select accessory ${my_accessory}
add aspect ${aCount} macronumber=${macro_fahrt}
#set($aCount = $aCount + 1)
add aspect ${aCount} macronumber=${macro_halt}
#if(${speed_40})
#set($aCount = $aCount + 1)
add aspect ${aCount} macronumber=${macro_40}
#end
#if(${speed_60})
#set($aCount = $aCount + 1)
add aspect ${aCount} macronumber=${macro_60}
#end
#if(${speed_90})
#set($aCount = $aCount + 1)
add aspect ${aCount} macronumber=${macro_90}
#end
#if(${shortdrive})
#set($aCount = $aCount + 1)
add aspect ${aCount} macronumber=${macro_short}
#end