Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: // This file contains the DCC and LED definitions. 2: // 3: // It was automatically generated by the program ProgGenerator Ver. 3.3.2G by Hardi 4: // File creation: 05/17/25 14:19:30 5: // (Attention: The display in the Arduino IDE is not updated if Options/External Editor is disabled) 6: 7: #ifndef __LEDS_AUTOPROG_H__ 8: #define __LEDS_AUTOPROG_H__ 9: 10: #ifndef CONFIG_ONLY 11: #ifndef ARDUINO_RASPBERRY_PI_PICO 12: #ifndef FASTLED_ESP32_I2S 13: #define FASTLED_INTERNAL // Disable version number message in FastLED library (looks like an error) 14: #endif 15: #include <FastLED.h> // The FastLED library must be installed in addition if you got the error message "..fatal error: FastLED.h: No such file or directory" 16: // Arduino IDE: Sketch / Include library / Manage libraries Deutsche IDE: Sketch / Bibliothek einbinden / Bibliothek verwalten 17: // Type "FastLED" in the "Filter your search..." field "FastLED" in das "Grenzen Sie ihre Suche ein" Feld eingeben 18: // Select the entry and click "Install" Gefundenen Eintrag auswaehlen und "Install" anklicken 19: #else 20: #include <PicoFastLED.h> // Juergens minimum version or FastLED for Raspberry Pico 21: #endif 22: #endif // CONFIG_ONLY 23: 24: #include <MobaLedLib.h> 25: 26: #define START_MSG "LEDs_AutoProg Ver 3: ESP32 3.3.2G 05.17.25 14:19" 27: 28: #define TWO_BUTTONS_PER_ADDRESS 1 // Two buttons (Red/Green) are used (DCC/LNet/CAN) 29: #ifdef NUM_LEDS 30: #warning "'NUM_LEDS' definition in the main program is replaced by the included 'LEDs_AutoProg.h' with 248" 31: #undef NUM_LEDS 32: #endif 33: 34: #define NUM_LEDS 248 // Number of LEDs (Maximal 256 RGB LEDs could be used) 35: 36: #define LEDS_PER_CHANNEL ",247,1" 37: 38: #define USE_PROTOCOL_DCC 39: 40: #define RECEIVE_LED_COLOR_PER_RS232 41: 42: #define GEN_BUTTON_RELEASE 43: #define GEN_BUTTON_RELEASE_COM GEN_OFF 44: #define USE_EXT_ADDR 45: #define USE_RS232_OR_SPI_AS_INPUT // Use the RS232 or SPI Input to read DCC/SX commands from the second Arduino and from the PC (The SPI is only used if enabled with USE_SPI_COM) 46: #define ADDR_OFFSET 0 47: 48: #define ADDR_MSK 0x3FFF // 14 Bits are used for the Address 49: 50: #define S_ONOFF (uint16_t)0 51: #define B_RED (uint16_t)(1<<14) 52: #define B_GREEN (uint16_t)(2<<14) 53: #define O_RET_MSG (uint16_t)(3<<14) // Return messages (Rueckmelder) 54: #define B_TAST B_RED 55: 56: 57: typedef struct 58: { 59: uint16_t AddrAndTyp; // Addr range: 0..16383. The upper two bytes are used for the type 60: uint8_t InCnt; 61: } __attribute__ ((packed)) Ext_Addr_T; 62: 63: // Definition of external adresses 64: #ifdef CONFIG_ONLY 65: const Ext_Addr_T Ext_Addr[] __attribute__ ((section (".MLLAddressConfig"))) = 66: #else 67: const PROGMEM Ext_Addr_T Ext_Addr[] = 68: #endif 69: { // Addr & Typ InCnt 70: { 100 + S_ONOFF, 1 }, // RGB Lichtwechsel Durchfahrten (3x WS2812) > 2x kopiert 71: { 981 + S_ONOFF, 1 }, // Relais 1x UM (frei) 72: { 982 + S_ONOFF, 1 }, // Relais 1x UM (frei) 73: { 983 + S_ONOFF, 1 }, // Relais 1x UM (frei) 74: { 984 + S_ONOFF, 1 }, // Relais 1x UM (frei) 75: { 977 + S_ONOFF, 1 }, // ZIMO MXDECUP 76: { 978 + S_ONOFF, 1 }, // Programmer Reserve 77: { 976 + S_ONOFF, 1 }, // Steckdose 78: { 103 + S_ONOFF, 1 }, // Relais 2 79: { 101 + B_RED, 4 }, // Weiß, Regenbogen und Farbwechsel > 9x kopiert (N_Buttons) 80: { 27 + S_ONOFF, 1 }, // Kontrollleuchte PC (pc) 81: { 28 + S_ONOFF, 1 }, // Blaulicht (pc) 82: { 805 + S_ONOFF, 1 }, // Motor Hubwagen 83: { 975 + S_ONOFF, 1 }, // Licht rot in Molkerei/Spritzerei bei Z21 Prog 84: { 30 + S_ONOFF, 1 }, // Rundumlicht links, Sprinter & Vario 4 Stück (8x 0402 gelb) 85: { 979 + S_ONOFF, 1 }, // Schattenbahnhof Beleuchtung 86: { 980 + S_ONOFF, 1 }, // Freies Relais (rechts) 87: { 201 + S_ONOFF, 1 }, // Excel row 350 88: }; 89: 90: 91: // Input channel defines for local inputs and expert users 92: #define INCH_DCC_100_ONOFF 0 // RGB Lichtwechsel Durchfahrten (3x WS2812) > 2x kopiert 93: #define INCH_DCC_981_ONOFF 1 // Relais 1x UM (frei) 94: #define INCH_DCC_982_ONOFF 2 // Relais 1x UM (frei) 95: #define INCH_DCC_983_ONOFF 3 // Relais 1x UM (frei) 96: #define INCH_DCC_984_ONOFF 4 // Relais 1x UM (frei) 97: #define INCH_DCC_977_ONOFF 5 // ZIMO MXDECUP 98: #define INCH_DCC_978_ONOFF 6 // Programmer Reserve 99: #define INCH_DCC_976_ONOFF 7 // Steckdose 100: #define INCH_DCC_103_ONOFF 8 // Relais 2 101: #define INCH_DCC_101_RED 9 // Weiß, Regenbogen und Farbwechsel > 9x kopiert (N_Buttons) 102: #define INCH_DCC_101_GREEN 10 // " 103: #define INCH_DCC_102_RED 11 // " 104: #define INCH_DCC_102_GREEN 12 // " 105: #define INCH_DCC_27_ONOFF 13 // Kontrollleuchte PC (pc) 106: #define INCH_DCC_28_ONOFF 14 // Blaulicht (pc) 107: #define INCH_DCC_805_ONOFF 15 // Motor Hubwagen 108: #define INCH_DCC_975_ONOFF 16 // Licht rot in Molkerei/Spritzerei bei Z21 Prog 109: #define INCH_DCC_30_ONOFF 17 // Rundumlicht links, Sprinter & Vario 4 Stück (8x 0402 gelb) 110: #define INCH_DCC_979_ONOFF 18 // Schattenbahnhof Beleuchtung 111: #define INCH_DCC_980_ONOFF 19 // Freies Relais (rechts) 112: #define INCH_DCC_201_ONOFF 20 // Excel row 350 113: 114: // Local InCh variables 115: #define LOC_INCH0 21 116: #define LOC_INCH1 22 117: #define LOC_INCH2 23 118: #define LOC_INCH3 24 119: #define LOC_INCH4 25 120: #define LOC_INCH5 26 121: #define LOC_INCH6 27 122: #define LOC_INCH7 28 123: #define LOC_INCH8 29 124: #define LOC_INCH9 30 125: #define LOC_INCH10 31 126: #define LOC_INCH11 32 127: #define LOC_INCH12 33 128: #define LOC_INCH13 34 129: #define LOC_INCH14 35 130: #define LOC_INCH15 36 131: #define LOC_INCH16 37 132: #define LOC_INCH17 38 133: #define LOC_INCH18 39 134: #define LOC_INCH19 40 135: #define LOC_INCH20 41 136: #define LOC_INCH21 42 137: #define LOC_INCH22 43 138: #define LOC_INCH23 44 139: #define LOC_INCH24 45 140: #define LOC_INCH25 46 141: #define LOC_INCH26 47 142: #define LOC_INCH27 48 143: #define LOC_INCH28 49 144: #define LOC_INCH29 50 145: #define LOC_INCH30 51 146: #define LOC_INCH31 52 147: #define LOC_INCH32 53 148: #define LOC_INCH33 54 149: #define LOC_INCH34 55 150: #define LOC_INCH35 56 151: #define LOC_INCH36 57 152: #define LOC_INCH37 58 153: 154: 155: //*** Direct connected switches *** 156: 157: #define START_SWITCHES_D 59 // Define the start number for the first mainboard switch 158: #define SwitchD1 59 // Z21-RM-Rückmelder: Adresse:1 Eingang:1 159: #define SwitchD2 60 // Z21-RM-Rückmelder: Adresse:1 Eingang:2 160: #define SwitchD3 61 // Z21-RM-Rückmelder: Adresse:1 Eingang:3 161: 162: //*** Output Channels *** 163: #define START_VARIABLES 62 // Define the start number for the variables. 164: #define D1 62 // Z21-RM-Rückmelder: Adresse:1 Eingang:4 165: #define D2 63 // Z21-RM-Rückmelder: Adresse:1 Eingang:5 166: #define D3 64 // Z21-RM-Rückmelder: Adresse:1 Eingang:6 167: #define Licht_Main 65 // Z21-RM-Rückmelder: Adresse:1 Eingang:7 168: #define Licht_Z21 66 // Z21-RM-Rückmelder: Adresse:1 Eingang:8 169: #define Licht_ESU 67 // Z21-RM-Rückmelder: Adresse:2 Eingang:1 170: #define Licht_Zimo 68 // Z21-RM-Rückmelder: Adresse:2 Eingang:2 171: #define Licht_Res 69 // Z21-RM-Rückmelder: Adresse:2 Eingang:3 172: #define Licht_OutN 70 // Z21-RM-Rückmelder: Adresse:2 Eingang:4 173: #define Licht_OutG 71 // Z21-RM-Rückmelder: Adresse:2 Eingang:5 174: #define Licht_OutB 72 // Z21-RM-Rückmelder: Adresse:2 Eingang:6 175: #define Licht_OutY 73 // Z21-RM-Rückmelder: Adresse:2 Eingang:7 176: #define Licht_OutW 74 // Z21-RM-Rückmelder: Adresse:2 Eingang:8 177: #define Licht_OutR 75 // Z21-RM-Rückmelder: Adresse:3 Eingang:1 178: #define Stapler 76 // Z21-RM-Rückmelder: Adresse:3 Eingang:2 179: 180: const PROGMEM uint8_t SwitchD_Pins[] = { 12,26,25 }; // Array of pins which read switches 'D' 181: #define SWITCH_D_INP_CNT sizeof(SwitchD_Pins) 182: 183: 184: #define START_SEND_INPUTS 59 // Start address of all switches/variables 185: #define TOTAL_SEND_INPUTS 18 // Number of used switches/variables 186: #define TOTAL_SWITCHES_A 0 // Number of used inputs for analog keyboard 187: #define TOTAL_SWITCHES_B 0 // Number of used inputs for keyboard 1 188: #define TOTAL_SWITCHES_C 0 // Number of used inputs for keyboard 2 189: #define TOTAL_SWITCHES_D 3 // Number of used inputs for main board switches 190: #define TOTAL_VARIABLES 15 // Number of used variables 191: /*********************/ 192: #define SETUP_FASTLED() \ 193: /*********************/ \ 194: CLEDController& controller0 = FastLED.addLeds<NEOPIXEL, 27>(leds+ 0,247); \ 195: CLEDController& controller1 = FastLED.addLeds<NEOPIXEL, 32>(leds+247, 1); \ 196: \ 197: controller0.clearLeds(256); \ 198: controller1.clearLeds(256); \ 199: FastLED.setDither(DISABLE_DITHER); // avoid sending slightly modified brightness values 200: /*End*/ 201: 202: #define USE_ADDITIONAL_SETUP_PROC // Activate the usage of the Additional_Setup_Proc() 203: 204: //-------------------------- 205: void Additional_Setup_Proc() 206: //-------------------------- 207: { 208: 209: for (uint8_t i = 0; i < SWITCH_D_INP_CNT; i++) 210: pinMode(pgm_read_byte_near(&SwitchD_Pins[i]), INPUT_PULLUP); 211: } 212: 213: /****************************/ 214: #define Additional_Loop_Proc() \ 215: /****************************/ \ 216: { \ 217: for (uint8_t i = 0; i < 3; i++) \ 218: MobaLedLib.Set_Input(SwitchD1 + i, !digitalRead(pgm_read_byte_near(&SwitchD_Pins[i])));\ } 220: 221: 222: //******************************************************************* 223: // *** Configuration array which defines the behavior of the LEDs *** 224: MobaLedLib_Configuration() 225: { 226: #define SEND_INPUTS /* Excel row 6 */ 227: #ifdef ESP32 /* Excel row 7 */ 228: #define USE_ESP32_EXTENSIONS /* " */ 229: #define USE_UI /* " */ 230: #define DISPLAY_FASTLED_FAULTS /* " */ 231: #endif /* " */ 232: T_FlipFlopReset(D1, SwitchD1, SI_0) /* Schalter D1 */ 233: T_FlipFlopReset(D2, SwitchD2, SI_0) /* Schalter D2 */ 234: T_FlipFlopReset(D3, SwitchD3, SI_0) /* Schalter D3 */ 235: RGB_Heartbeat_Color(0, 60, 120, 150, 1 Sek) /* Kanal 0 Heartbeat ausgehend */ 236: RGB_Heartbeat_Color(247, 60, 120, 150, 1 Sek) /* Kanal 1 Heartbeat ausgehend (deaktivieren bei PushButtons) */ 237: Set_TV_COL1(SI_1, 31, 156, 40, 65, 0, 85, 70, 210, 60, 150) /* Excel row 29 */ 238: Set_TV_COL2(SI_1, 31, 156, 40, 65, 0, 85, 70, 210, 60, 150) /* Excel row 30 */ 239: RGB_Heartbeat_Color(1, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 240: XPatternT1(2,28,0,3,0,255,0,PM_NORMAL,8 Sec,0,35,35,0,0,210,42,0,42,70,0,0,42,42,0,0,77,0) /* RGB Lichtwechsel Durchfahrten (3x WS2812) > 2x kopiert */ 241: CopyLED(3, SI_1, 2) /* Kopie von RGB Lichtwechsel */ 242: CopyLED(4, SI_1, 2) /* Kopie von RGB Lichtwechsel */ 243: Const(5, C_ALL, INCH_DCC_100_ONOFF, 0, 40) /* Stadtmauer (3x PLCC2ww) */ 244: PatternT4(6,0,INCH_DCC_100_ONOFF,7,0,255,0,PM_NORMAL,19 Sek,2 Sek,5 Sek,4 Sek,0,32,48,24,8,2,133,2,33,144,72,32,2,145,8,36,16,10,129,2,193,32,48,16,8,0,0,0) /* Museum (7x PLCC2ww) */ 245: Const(8, C23, INCH_DCC_100_ONOFF, 0, 30) /* Hauptturm (PLCC2ww), Türmchen 1+2 (2x 0603ww) */ 246: Const(9, C_ALL, INCH_DCC_100_ONOFF, 0, 30) /* Türmchen 3 + 4 (2x 0603ww), Uhr (PLCC2ww) */ 247: HouseT(10, INCH_DCC_100_ONOFF, 2, 2, 0, 0, NEON_LIGHT1M, NEON_LIGHT2M) /* Friseur */ 248: // Next_LED(-1) /* Excel row 44 */ 249: HouseT(10, INCH_DCC_100_ONOFF, 2, 4, 15, 60, NEON_LIGHT3M, SINGLE_LED1, SINGLE_LED2D, SINGLE_LED3, ROOM_TV0) /* Hinter der Brauerei 7 */ 250: HouseT(13, INCH_DCC_100_ONOFF, 2, 3, 15, 45, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, ROOM_TV0, ROOM_TV1, ROOM_TV0, NEON_LIGHT1M) /* Hinter der Brauerei 6 */ 251: // Next_LED(-1) /* Excel row 47 */ 252: Const(17, C3, INCH_DCC_100_ONOFF, 0, 25) /* Außenbeleuchtung Grün = Frei, Blau = Wandlampe */ 253: HouseT(18, INCH_DCC_100_ONOFF, 2, 4, 15, 45, NEON_LIGHT1M, SINGLE_LED2D, SINGLE_LED3D, ROOM_TV0_CHIMNEY, ROOM_TV1) /* Hinter der Brauerei 5 */ 254: HouseT(21, INCH_DCC_100_ONOFF, 2, 2, 0, 0, CANDLE1, CANDLE2) /* Pizzeria (1 + 2) */ 255: // Next_LED(-1) /* Excel row 51 */ 256: House(21, INCH_DCC_100_ONOFF, 1, 1, NEON_LIGHT3) /* Außenbeleuchtung Frei (3) */ 257: HouseT(22, INCH_DCC_100_ONOFF, 5, 5, 0, 0, CANDLE1, CANDLE2, SINGLE_LED3D, SINGLE_LED1D, GAS_LIGHT2D) /* Eisdiele (1 - 4), Außenleuchte (5), Frei (6) */ 258: HouseT(24, INCH_DCC_100_ONOFF, 0, 2, 15, 45, SINGLE_LED1, SINGLE_LED2D, SINGLE_LED3, ROOM_TV0, ROOM_CHIMNEYD) /* Hinter der Brauerei 4 */ 259: HouseT(27, INCH_DCC_100_ONOFF, 1, 1, 0, 1, NEON_LIGHT1) /* Wanduhr */ 260: // Next_LED(-1) /* Excel row 58 */ 261: Const(27, C23, INCH_DCC_100_ONOFF, 0, 25) /* Wandlampen Eingang */ 262: Const(28, C12, INCH_DCC_100_ONOFF, 0, 25) /* Wandlampen Eingang */ 263: // Next_LED(-1) /* Excel row 61 */ 264: HouseT(28, INCH_DCC_100_ONOFF, 10, 10, 0, 0, NEON_LIGHT3M, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M) /* Leuchtreklame */ 265: RGB_Heartbeat_Color(32, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 266: RGB_Heartbeat_Color(33, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 267: RGB_Heartbeat_Color(34, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 268: Const(35, C_ALL, INCH_DCC_100_ONOFF, 0, 20) /* Flutlichter rechts */ 269: Const(36, C_ALL, INCH_DCC_100_ONOFF, 0, 20) /* Flutlichter rechts */ 270: Const(37, C_ALL, INCH_DCC_100_ONOFF, 0, 20) /* Flutlichter links */ 271: Const(38, C_ALL, INCH_DCC_100_ONOFF, 0, 20) /* Flutlichter links */ 272: // Reserve LEDs(1) /* Fotografen u. Ä. */ 273: Const(40, C_ALL, INCH_DCC_100_ONOFF, 0, 50) /* Schiff links */ 274: Const(41, C12, INCH_DCC_100_ONOFF, 0, 50) /* Schiff links, rund */ 275: Const(41, C3, INCH_DCC_100_ONOFF, 0, 20) /* Schiff links */ 276: Const(42, C_ALL, INCH_DCC_100_ONOFF, 0, 50) /* Schiff hinten */ 277: Const(43, C12, INCH_DCC_100_ONOFF, 0, 50) /* Schiff rechts */ 278: Const(43, C3, INCH_DCC_100_ONOFF, 0, 20) /* Schiff rechts, rund */ 279: Const(44, C_ALL, INCH_DCC_100_ONOFF, 0, 50) /* Schiff rechts */ 280: Const(45, C1, INCH_DCC_100_ONOFF, 0, 50) /* Turm Front */ 281: Const(45, C23, INCH_DCC_100_ONOFF, 0, 20) /* Turm Rund */ 282: Const(46, C12, SI_1, 0, 127) /* Wandlampen Eingang */ 283: GasLights(47, INCH_DCC_100_ONOFF, CANDLE, CANDLE) /* Wandlampen Eingang */ 284: Const(49, C_ALL, INCH_DCC_100_ONOFF, 0, 32) /* Turm */ 285: Const(50, C_ALL, INCH_DCC_100_ONOFF, 0, 32) /* Turm */ 286: Const(51, C12, INCH_DCC_100_ONOFF, 0, 32) /* Turm */ 287: Const(51, C3, INCH_DCC_100_ONOFF, 0, 25) /* Spitze */ 288: Const(52, C_ALL, INCH_DCC_100_ONOFF, 0, 25) /* Spitze */ 289: Const(53, C1, 1, 0, 255) /* Relais 1x UM (frei) */ 290: Const(53, C2, 2, 0, 255) /* Relais 1x UM (frei) */ 291: Const(53, C3, 3, 0, 255) /* Relais 1x UM (frei) */ 292: Const(54, C1, 4, 0, 255) /* Relais 1x UM (frei) */ 293: Const(54, C23, 5, 0, 255) /* ZIMO MXDECUP */ 294: Const(55, C3, INCH_DCC_977_ONOFF, 0, 255) /* Steckdose */ 295: // Next_LED(-2) /* Excel row 101 */ 296: Const(54, C23, 6, 0, 255) /* Programmer Reserve */ 297: Const(55, C_ALL, INCH_DCC_978_ONOFF, 0, 255) /* Programmer Reserve */ 298: // Next_LED(-1) /* Excel row 104 */ 299: Const(55, C3, 7, 0, 255) /* Steckdose */ 300: RGB_Heartbeat_Color(56, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 301: RGB_Heartbeat_Color(57, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 302: RGB_Heartbeat_Color(58, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 303: RGB_Heartbeat_Color(59, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 304: Const(60, C1, 8, 0, 255) /* Relais 2 */ 305: Const(60, C3, INCH_DCC_103_ONOFF, 0, 255) /* Relais 1 (Rauchgenerator) */ 306: Set_CandleTab(0, 40, 40, 80, 90, 130, 150, 150, 0) /* Einstellungen für Kerzen */ 307: GasLights(61, INCH_DCC_103_ONOFF, CANDLE, CANDLE) /* Glut Grill + Feuerstelle */ 308: GasLights(63, INCH_DCC_103_ONOFF, GAS_LIGHT1, GAS_LIGHT2, GAS_LIGHT3, NEON_LIGHT1, NEON_LIGHT2, NEON_LIGHT3) /* Beleuchtung Grillplatz */ 309: Set_CandleTab(25, 25, 80, 100, 120, 145, 64, 50, 5) /* Standard-Einstellungen für Kerze */ 310: HouseT(65, INCH_DCC_100_ONOFF, 4, 8, 5, 15, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, ROOM_DARK, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D) /* Gebäude */ 311: HouseT(71, INCH_DCC_100_ONOFF, 6, 6, 0, 0, GAS_LIGHT1, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D) /* Laterne + 5x Flutlicht innen */ 312: GasLights(73, INCH_DCC_100_ONOFF, CANDLE1, CANDLE2, CANDLE3) /* Durchgang (Kerzen) */ 313: GasLights(74, INCH_DCC_100_ONOFF, SINGLE_LED1, SINGLE_LED2, SINGLE_LED3) /* 3x Flutlicht innen */ 314: Set_CandleTab(35, 60, 80, 100, 120, 145, 64, 50, 5) /* Einstellungen für Kerzen */ 315: // Reserve LEDs(1) /* Kerzen im Turm nach hinten */ 316: GasLights(76, INCH_DCC_100_ONOFF, CANDLE, CANDLE) /* Kerzen im Turm */ 317: // Reserve LEDs(1) /* Kerzen im Turm nach hinten */ 318: Set_CandleTab(25, 25, 80, 100, 120, 145, 64, 50, 5) /* Standard-Einstellungen für Kerze */ 319: HouseT(79, INCH_DCC_100_ONOFF, 2, 2, 0, 0, CANDLE, CANDLE) /* Fackeln */ 320: // Activation: N_Buttons /* Weiß, Regenbogen und Farbwechsel > 9x kopiert (N_Buttons) */ 321: InCh_to_TmpVar(9, 4) /* " */ 322: XPatternT1(81,28,SI_LocalVar,18,0,255,0,PM_NORMAL,3 Sek,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,13,5,15,13,5,15,13,5,15,13,5,15,13,5,15,13,5,0,0,150,30,0,60,50,0,0,30,30,0,0,55,0,0,25,50,30,0,60,50,0,0,30,30,0,0,55,0,0,25,50,0,0,150,50,0,0,30,30,0,0,55,0,0,25,50,0,0,150,30,0,60,30,30,0,0,55,0,0,25,50,0,0,150,30,0,60,50,0,0,0,55,0,0,25,50,0,0,150,30,0,60,50,0,0,30,30,0,0,25,50,0,0,150,30,0,60,50,0,0,30,30,0,0,55,0,0,0,150,0,0,150,0,0,150,0,0,150,0,0,150,0,0,150,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,55,0,0,55,0,0,55,0,0,55,0,0,55,0,0,55,0,0,30,30,0,30,30,0,30,30,0,30,30,0,30,30,0,30,30,0,0,55,0,0,55,0,0,55,0,0,55,0,0,55,0,0,55,0,0,25,50,0,25,50,0,25,50,0,25,50,0,25,50,0,25,50 ,63,191,192,0,0,0,0,1,192,0,0,0,0,2) /* " */ 323: CopyLED(87, SI_1, 81) /* Kopie von Regenbogen */ 324: CopyLED(88, SI_1, 81) /* Kopie von Regenbogen */ 325: CopyLED(89, SI_1, 86) /* Kopie von Regenbogen plus 5 */ 326: CopyLED(90, SI_1, 85) /* Kopie von Regenbogen plus 4 */ 327: CopyLED(91, SI_1, 84) /* Kopie von Regenbogen plus 3 */ 328: CopyLED(92, SI_1, 83) /* Kopie von Regenbogen plus 2 */ 329: CopyLED(93, SI_1, 82) /* Kopie von Regenbogen plus 1 */ 330: CopyLED(94, SI_1, 81) /* Kopie von Regenbogen */ 331: CopyLED(95, SI_1, 81) /* Kopie von Regenbogen */ 332: RGB_Heartbeat_Color(96, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 333: RGB_Heartbeat_Color(97, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 334: GasLights(98, INCH_DCC_100_ONOFF, NEON_LIGHT1M, SINGLE_LED2D, SINGLE_LED3D) /* Außenbeleuchtung Halle */ 335: // Activation: RandomTime(40, 60) /* Kontrollleuchte PC (pc) */ 336: Random(LOC_INCH0, 13, RM_NORMAL, 40, 60, 1 ms, 1 ms) /* " */ 337: New_Local_Var() /* " */ 338: // Attention: State 0 is used if input is disabled /* " */ 339: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH0, 13, 0 Sec, 20) /* " */ 340: PatternT1(99,4,SI_LocalVar,3,0,150,0,0,60,64,85,85,85,85,21,17,85,102,86,221,93,85,17,81 ,63,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191) /* " */ 341: APatternT1(100,4,14,4,0,60,0,PM_NORMAL,32,52,112,208,192,64,1,3,7,13,28) /* Blaulicht (pc) */ 342: // Next_LED(-1) /* Excel row 215 */ 343: Const(101, C2, 15, 0, 255) /* Motor Hubwagen */ 344: Blink2(101, C3, INCH_DCC_805_ONOFF, 12 Sek, 1 Sek, 0, 255) /* Motor Hubwagen */ 345: // Activation: Binary /* Schaltschrank (pc) */ 346: Bin_InCh_to_TmpVar(INCH_DCC_27_ONOFF, 1) /* " */ 347: PatternT1(102,196,SI_LocalVar,3,0,40,0,0,15 Sec,2,192,3 ,0,63,191) /* " */ 348: // Set_ColTab(Red Green Blue) /* Excel row 220 */ 349: Set_ColTab( 15, 13, 3, // ROOM_COL0 /* " */ 350: 22, 44, 27, // ROOM_COL1 /* " */ 351: 155, 73, 5, // ROOM_COL2 /* " */ 352: 39, 18, 1, // ROOM_COL3 /* " */ 353: 30, 0, 0, // ROOM_COL4 /* " */ 354: 79, 39, 7, // ROOM_COL5 /* " */ 355: 50, 50, 50, // GAS_LIGHT D /* " */ 356: 255, 255, 255, // GAS LIGHT /* " */ 357: 20, 20, 27, // NEON_LIGHT D /* " */ 358: 75, 100, 99, // *NEON_LIGHT M /* " */ 359: 245, 245, 255, // NEON_LIGHT /* " */ 360: 50, 50, 20, // ROOM_TV0 A /* " */ 361: 70, 70, 30, // ROOM_TV0 B /* " */ 362: 50, 50, 8, // ROOM_TV1 A /* " */ 363: 50, 50, 8, // ROOM_TV1 B /* " */ 364: 255, 255, 255, // SINGLE_LED /* " */ 365: 50, 50, 50) // SINGLE_LED D /* " */ 366: Logic(Licht_Main, INCH_DCC_100_ONOFF) /* Licht in Molkerei/Spritzerei ohne Programmierung */ 367: Logic(Licht_Z21, 16) /* Licht rot in Molkerei/Spritzerei bei Z21 Prog */ 368: Logic(Licht_ESU, INCH_DCC_976_ONOFF) /* Licht blau in Molkerei/Spritzerei bei ESU Prog */ 369: Logic(Licht_Zimo, INCH_DCC_977_ONOFF) /* Licht gelb in Molkerei/Spritzerei bei Zimo Prog */ 370: Logic(Licht_Res, INCH_DCC_978_ONOFF) /* Licht weiß in Molkerei/Spritzerei Reserve */ 371: Logic(Licht_OutN, Licht_Main AND NOT Licht_Z21 AND NOT Licht_ESU AND NOT Licht_Zimo AND NOT Licht_Res) /* Licht Neonröhre */ 372: Logic(Licht_OutG, Licht_Z21 AND NOT Licht_ESU AND NOT Licht_Zimo AND NOT Licht_Res) /* Licht Grün - Z21 */ 373: Logic(Licht_OutB, Licht_ESU AND NOT Licht_Z21 AND NOT Licht_Zimo AND NOT Licht_Res) /* Licht Blau - ESU */ 374: Logic(Licht_OutY, Licht_Zimo AND NOT Licht_Z21 AND NOT Licht_ESU AND NOT Licht_Res) /* Licht Blau - Zimo */ 375: Logic(Licht_OutW, Licht_Res AND NOT Licht_ESU AND NOT Licht_Zimo AND NOT Licht_Z21) /* Licht Weiß - Reserve */ 376: Logic(Licht_OutR, Licht_Z21 AND Licht_ESU OR Licht_Z21 AND Licht_Zimo OR Licht_Z21 AND Licht_Res OR Licht_ESU AND Licht_Zimo OR Licht_ESU AND Licht_Res OR Licht_Zimo AND Licht_Res) /* Licht Rot - Fehler */ 377: HouseT(103, Licht_OutN, 6, 6, 0, 1, NEON_LIGHTM, NEON_LIGHTM, NEON_LIGHTM, NEON_LIGHTM, NEON_LIGHTM, NEON_LIGHTM) /* Licht Neonröhre */ 378: // Next_LED(-6) /* LEDs doppelt zuweisen */ 379: Flash(103, C2, Licht_OutG, LOC_INCH1, 500, 500) /* Licht Grün - Z21 */ 380: Flash(104, C2, Licht_OutG, LOC_INCH2, 500, 500) /* Excel row 236 */ 381: Flash(105, C2, Licht_OutG, LOC_INCH3, 500, 500) /* Excel row 237 */ 382: Flash(106, C2, Licht_OutG, LOC_INCH4, 500, 500) /* Excel row 238 */ 383: Flash(107, C2, Licht_OutG, LOC_INCH5, 500, 500) /* Excel row 239 */ 384: Flash(108, C2, Licht_OutG, LOC_INCH6, 500, 500) /* Excel row 240 */ 385: // Next_LED(-6) /* Excel row 242 */ 386: Flash(103, C23, Licht_OutB, LOC_INCH7, 500, 500) /* Licht Blau - ESU */ 387: Flash(104, C23, Licht_OutB, LOC_INCH8, 500, 500) /* Excel row 244 */ 388: Flash(105, C23, Licht_OutB, LOC_INCH9, 500, 500) /* Excel row 245 */ 389: Flash(106, C23, Licht_OutB, LOC_INCH10, 500, 500) /* Excel row 246 */ 390: Flash(107, C23, Licht_OutB, LOC_INCH11, 500, 500) /* Excel row 247 */ 391: Flash(108, C23, Licht_OutB, LOC_INCH12, 500, 500) /* Excel row 248 */ 392: // Next_LED(-6) /* Excel row 250 */ 393: Flash(103, C12, Licht_OutY, LOC_INCH13, 500, 500) /* Licht Gelb - Zimo */ 394: Flash(104, C12, Licht_OutY, LOC_INCH14, 500, 500) /* Excel row 252 */ 395: Flash(105, C12, Licht_OutY, LOC_INCH15, 500, 500) /* Excel row 253 */ 396: Flash(106, C12, Licht_OutY, LOC_INCH16, 500, 500) /* Excel row 254 */ 397: Flash(107, C12, Licht_OutY, LOC_INCH17, 500, 500) /* Excel row 255 */ 398: Flash(108, C12, Licht_OutY, LOC_INCH18, 500, 500) /* Excel row 256 */ 399: // Next_LED(-6) /* Excel row 258 */ 400: Flash(103, C_ALL, Licht_OutW, LOC_INCH19, 500, 500) /* Licht Weiß - Reserve */ 401: Flash(104, C_ALL, Licht_OutW, LOC_INCH20, 500, 500) /* Excel row 260 */ 402: Flash(105, C_ALL, Licht_OutW, LOC_INCH21, 500, 500) /* Excel row 261 */ 403: Flash(106, C_ALL, Licht_OutW, LOC_INCH22, 500, 500) /* Excel row 262 */ 404: Flash(107, C_ALL, Licht_OutW, LOC_INCH23, 500, 500) /* Excel row 263 */ 405: Flash(108, C_ALL, Licht_OutW, LOC_INCH24, 500, 500) /* Excel row 264 */ 406: // Next_LED(-6) /* Excel row 266 */ 407: Flash(103, C1, Licht_OutR, LOC_INCH25, 500, 500) /* Licht Rot - Fehler */ 408: Flash(104, C1, Licht_OutR, LOC_INCH26, 500, 500) /* Excel row 268 */ 409: Flash(105, C1, Licht_OutR, LOC_INCH27, 500, 500) /* Excel row 269 */ 410: Flash(106, C1, Licht_OutR, LOC_INCH28, 500, 500) /* Excel row 270 */ 411: Flash(107, C1, Licht_OutR, LOC_INCH29, 500, 500) /* Excel row 271 */ 412: Flash(108, C1, Licht_OutR, LOC_INCH30, 500, 500) /* Excel row 272 */ 413: // Activation: RandomTime(12 Sek, 30 Sek) /* Signalsäule 1 */ 414: Random(LOC_INCH31, INCH_DCC_27_ONOFF, RM_NORMAL, 12 Sek, 30 Sek, 1 ms, 1 ms) /* " */ 415: New_Local_Var() /* " */ 416: // Attention: State 0 is used if input is disabled /* " */ 417: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH31, INCH_DCC_27_ONOFF, 0 Sec, 14) /* " */ 418: PatternT14(109,68,SI_LocalVar,3,0,40,0,0,20,20,700,500,500,500,500,1,1,1,1,1,1,1,192,0,44,192,2,48,12,195,48,12,163,170,42 ,63,192,1,192,2,192,3,191,191,191,191,191,191,191,191,191,191) /* " */ 419: // Activation: RandomTime(12 Sek, 30 Sek) /* Signalsäule 2 */ 420: Random(LOC_INCH32, INCH_DCC_27_ONOFF, RM_NORMAL, 12 Sek, 30 Sek, 1 ms, 1 ms) /* " */ 421: New_Local_Var() /* " */ 422: // Attention: State 0 is used if input is disabled /* " */ 423: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH32, INCH_DCC_27_ONOFF, 0 Sec, 14) /* " */ 424: PatternT14(110,68,SI_LocalVar,3,0,40,0,0,20,20,700,500,500,500,500,1,1,1,1,1,1,1,192,0,44,192,2,48,12,195,48,12,163,170,42 ,63,192,1,192,2,192,3,191,191,191,191,191,191,191,191,191,191) /* " */ 425: // Activation: RandomTime(12 Sek, 30 Sek) /* Signalsäule 3 */ 426: Random(LOC_INCH33, INCH_DCC_27_ONOFF, RM_NORMAL, 12 Sek, 30 Sek, 1 ms, 1 ms) /* " */ 427: New_Local_Var() /* " */ 428: // Attention: State 0 is used if input is disabled /* " */ 429: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH33, INCH_DCC_27_ONOFF, 0 Sec, 14) /* " */ 430: PatternT14(111,68,SI_LocalVar,3,0,40,0,0,20,20,700,500,500,500,500,1,1,1,1,1,1,1,192,0,44,192,2,48,12,195,48,12,163,170,42 ,63,192,1,192,2,192,3,191,191,191,191,191,191,191,191,191,191) /* " */ 431: Blink2(112, C1, INCH_DCC_27_ONOFF, 0.7 Sek, 0.02 Sek, 0, 40) /* Signalsäule 4 - defekt */ 432: // Activation: RandomTime(12 Sek, 30 Sek) /* Signalsäule 5 */ 433: Random(LOC_INCH34, INCH_DCC_27_ONOFF, RM_NORMAL, 12 Sek, 30 Sek, 1 ms, 1 ms) /* " */ 434: New_Local_Var() /* " */ 435: // Attention: State 0 is used if input is disabled /* " */ 436: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH34, INCH_DCC_27_ONOFF, 0 Sec, 14) /* " */ 437: PatternT14(113,68,SI_LocalVar,3,0,40,0,0,20,20,700,500,500,500,500,1,1,1,1,1,1,1,192,0,44,192,2,48,12,195,48,12,163,170,42 ,63,192,1,192,2,192,3,191,191,191,191,191,191,191,191,191,191) /* " */ 438: // Activation: RandomTime(12 Sek, 30 Sek) /* Signalsäule 6 */ 439: Random(LOC_INCH35, INCH_DCC_27_ONOFF, RM_NORMAL, 12 Sek, 30 Sek, 1 ms, 1 ms) /* " */ 440: New_Local_Var() /* " */ 441: // Attention: State 0 is used if input is disabled /* " */ 442: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH35, INCH_DCC_27_ONOFF, 0 Sec, 14) /* " */ 443: PatternT14(114,68,SI_LocalVar,3,0,40,0,0,20,20,700,500,500,500,500,1,1,1,1,1,1,1,192,0,44,192,2,48,12,195,48,12,163,170,42 ,63,192,1,192,2,192,3,191,191,191,191,191,191,191,191,191,191) /* " */ 444: // Activation: RandomTime(12 Sek, 30 Sek) /* Signalsäule 7 */ 445: Random(LOC_INCH36, INCH_DCC_27_ONOFF, RM_NORMAL, 12 Sek, 30 Sek, 1 ms, 1 ms) /* " */ 446: New_Local_Var() /* " */ 447: // Attention: State 0 is used if input is disabled /* " */ 448: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH36, INCH_DCC_27_ONOFF, 0 Sec, 14) /* " */ 449: PatternT14(115,68,SI_LocalVar,3,0,40,0,0,20,20,700,500,500,500,500,1,1,1,1,1,1,1,192,0,44,192,2,48,12,195,48,12,163,170,42 ,63,192,1,192,2,192,3,191,191,191,191,191,191,191,191,191,191) /* " */ 450: Set_CandleTab(81, 100, 60, 160, 60, 72, 80, 50, 5) /* Excel row 282 */ 451: HouseT(116, INCH_DCC_27_ONOFF, 1, 1, 2, 5, CANDLE2) /* Schaltschrank */ 452: HouseT(117, INCH_DCC_27_ONOFF, 1, 1, 2, 5, CANDLE2) /* Schaltschrank */ 453: HouseT(118, INCH_DCC_27_ONOFF, 1, 1, 2, 5, CANDLE2) /* Schaltschrank */ 454: PatternT2(119,64,INCH_DCC_27_ONOFF,3,0,80,0,0,800,200,10) /* Schaltschrank_defekt (pc) */ 455: HouseT(120, INCH_DCC_27_ONOFF, 1, 1, 2, 5, CANDLE2) /* Schaltschrank */ 456: // Activation: RandomTime(5 Sek, 8 Sek) /* Waage (pc) */ 457: Random(LOC_INCH37, INCH_DCC_27_ONOFF, RM_NORMAL, 5 Sek, 8 Sek, 1 ms, 1 ms) /* " */ 458: New_Local_Var() /* " */ 459: // Attention: State 0 is used if input is disabled /* " */ 460: Counter(CF_ONLY_LOCALVAR | CF_RANDOM | CF_SKIP0, LOC_INCH37, INCH_DCC_27_ONOFF, 0 Sec, 4) /* " */ 461: PatternT1(121,0,SI_LocalVar,3,0,10,0,0,1200,64,4,65 ,63,128,0,63,128,63,128,63) /* " */ 462: Set_CandleTab(120, 150, 60, 65, 10, 20, 80, 50, 5) /* Excel row 290 */ 463: HouseT(122, INCH_DCC_27_ONOFF, 2, 2, 0, 0, CANDLE2, CANDLE3) /* Schaltschrank */ 464: HouseT(123, INCH_DCC_27_ONOFF, 2, 2, 0, 0, CANDLE2, CANDLE3) /* Schaltschrank */ 465: HouseT(124, INCH_DCC_27_ONOFF, 2, 2, 0, 0, CANDLE2, CANDLE3) /* Schaltschrank */ 466: Set_CandleTab(25, 25, 80, 100, 120, 145, 64, 50, 5) /* Excel row 294 */ 467: APatternT1(125,4,17,16,0,60,0,PM_NORMAL,32,52,3,192,13,112,7,64,28,208,13,1,52,192,28,3,112,64,52,7,208,1,112,13,192,3,208,28,64,7,192,52,1,13,64,112,3,28,1,208,7) /* Rundumlicht links, Sprinter & Vario 4 Stück (8x 0402 gelb) */ 468: // Next_LED(-1) /* Excel row 305 */ 469: Blink2(130, C23, INCH_DCC_30_ONOFF, 300, 400, 0, 20) /* Blinker Sprinter, vorn */ 470: Const(131, C12, INCH_DCC_30_ONOFF, 0, 5) /* Standlicht Sprinter, vorn */ 471: Const(131, C3, INCH_DCC_30_ONOFF, 0, 8) /* Standlicht Sprinter, hinten links */ 472: Const(132, C1, INCH_DCC_30_ONOFF, 0, 8) /* Standlicht Sprinter, hinten rechts */ 473: Blink2(132, C23, INCH_DCC_30_ONOFF, 300, 400, 0, 18) /* Blinker Sprinter, hinten */ 474: APatternT9(133,168,INCH_DCC_30_ONOFF,9,0,200,0,PM_NORMAL,20,40,20,100,320,180,330,180,460,63,0,0,248,1,0,0,0,0,0,0,0,0,0,0,0,0,64,146,36,1,146,36,9,0,0,0,0,0,0,0) /* Sicherungsanhänger */ 475: Blink2(136, C1, INCH_DCC_30_ONOFF, 350, 450, 0, 20) /* Blinker Vario, vorn (in Reihe) */ 476: Blink2(136, C2, INCH_DCC_30_ONOFF, 350, 450, 0, 80) /* Blinker Vario, hinten (in Reihe) */ 477: Const(136, C3, INCH_DCC_30_ONOFF, 0, 20) /* Standlicht Vario, hinten */ 478: Const(137, C12, INCH_DCC_30_ONOFF, 0, 6) /* Standlicht Vario vorn */ 479: Const(137, C3, INCH_DCC_30_ONOFF, 0, 12) /* Standlicht Sicherungsanhänger */ 480: Blink2(138, C1, INCH_DCC_30_ONOFF, 350, 450, 0, 60) /* Blinker Sicherungsanhänger */ 481: // Next_LED(-1) /* Excel row 320 */ 482: GasLights(138, INCH_DCC_30_ONOFF, GAS_LIGHT2, GAS_LIGHT3) /* Baustellenbeleuchtung (2x) */ 483: // Reserve LEDs(2) /* 2 Ausgänge an WS2811 frei */ 484: RGB_Heartbeat_Color(141, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 485: Const(142, C12, INCH_DCC_975_ONOFF, 0, 255) /* Programmiergleis Z21 */ 486: // Next_LED(-1) /* Excel row 332 */ 487: Const(142, C_ALL, INCH_DCC_976_ONOFF, 0, 255) /* ESU Lokprogrammer */ 488: Const(143, C1, INCH_DCC_976_ONOFF, 0, 255) /* ESU Lokprogrammer */ 489: Const(143, C23, INCH_DCC_975_ONOFF, 0, 255) /* Sicherheitszone */ 490: // Next_LED(-1) /* Excel row 336 */ 491: Const(143, C23, INCH_DCC_976_ONOFF, 0, 255) /* Sicherheitszone */ 492: // Next_LED(-1) /* Excel row 338 */ 493: Const(143, C23, INCH_DCC_977_ONOFF, 0, 255) /* Sicherheitszone */ 494: // Next_LED(-1) /* Excel row 340 */ 495: Const(143, C23, INCH_DCC_978_ONOFF, 0, 255) /* Sicherheitszone */ 496: Const(144, C1, 18, 0, 255) /* Schattenbahnhof Beleuchtung */ 497: Const(144, C2, 19, 0, 255) /* Freies Relais (rechts) */ 498: HouseT(145, INCH_DCC_100_ONOFF, 3, 5, 5, 15, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D) /* Verwaltung */ 499: // Next_LED(-1) /* Excel row 347 */ 500: HouseT(147, INCH_DCC_100_ONOFF, 7, 7, 0, 1, SINGLE_LED3D, SINGLE_LED1D, NEON_LIGHT2D, NEON_LIGHT3D, NEON_LIGHT1D, NEON_LIGHT2D, NEON_LIGHT3D) /* Lagerhalle */ 501: HouseT(150, INCH_DCC_100_ONOFF, 6, 6, 0, 1, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M) /* Rampe */ 502: MonoFlop(Stapler, 20, 18 Sek) /* Excel row 350 */ 503: // Activation: Binary /* Gabelstapler (pc) */ 504: Bin_InCh_to_TmpVar(Stapler, 1) /* " */ 505: PatternT2(152,112,SI_LocalVar,3,0,255,0,0,2100,100,0,4,0,8,0,4,0,242,62,1,128,0,64,0,32,0,16,0,8,0,4,0,2,0,1,128,60,64,30,32,0,16,0,8,0,4 ,63,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63) /* " */ 506: // Reserve LEDs(8) /* Freier Single LED-Connector */ 507: GasLights(161, INCH_DCC_100_ONOFF, NEON_LIGHT1, NEON_LIGHT3) /* Licht */ 508: RGB_Heartbeat_Color(162, 60, 255, 170, 700) /* Verstärker-LED ankommend */ 509: Const(163, C1, INCH_DCC_100_ONOFF, 0, 255) /* Telekom Magenta */ 510: // Next_LED(-1) /* Excel row 361 */ 511: HouseT(163, INCH_DCC_100_ONOFF, 2, 2, 0, 0, SINGLE_LED2, SINGLE_LED3) /* Telekom Laden + Leuchtreklame */ 512: HouseT(164, INCH_DCC_100_ONOFF, 1, 3, 10, 20, SINGLE_LED1, SINGLE_LED2, SINGLE_LED3, SINGLE_LED1, SINGLE_LED2, SINGLE_LED3) /* Wohnungen */ 513: Const(166, C1, INCH_DCC_100_ONOFF, 0, 255) /* Buchhandlung */ 514: HouseT(167, INCH_DCC_100_ONOFF, 0, 3, 10, 15, NEON_LIGHT1, NEON_LIGHT2M, NEON_LIGHT3M) /* Treppenhaus */ 515: HouseT(168, INCH_DCC_100_ONOFF, 0, 2, 20, 60, ROOM_TV0, ROOM_TV1, ROOM_TV0, ROOM_TV1) /* Wohnungen */ 516: HouseT(172, INCH_DCC_100_ONOFF, 3, 4, 8, 30, ROOM_TV0, ROOM_TV1, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D) /* Wohnungen */ 517: HouseT(176, INCH_DCC_100_ONOFF, 4, 4, 5, 10, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M, NEON_LIGHT1M) /* Geschäfte (Erdgeschoss) */ 518: // Next_LED(-1) /* Excel row 370 */ 519: HouseT(177, INCH_DCC_100_ONOFF, 4, 4, 1, 3, SINGLE_LED2, SINGLE_LED3, SINGLE_LED1, SINGLE_LED2) /* Bar (Erste Etage) */ 520: // Next_LED(-1) /* Excel row 372 */ 521: HouseT(178, INCH_DCC_100_ONOFF, 4, 4, 0, 0, NEON_LIGHT3, NEON_LIGHT1, NEON_LIGHT2M, NEON_LIGHT3M) /* Leuchtreklame */ 522: HouseT(180, INCH_DCC_100_ONOFF, 18, 18, 0, 0, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M, GAS_LIGHT1D, NEON_LIGHT2M, NEON_LIGHT3M, NEON_LIGHT1M, NEON_LIGHT2M, NEON_LIGHT3M) /* Gasthof zm Stern - Außenbeleuchtung */ 523: HouseT(185, INCH_DCC_100_ONOFF, 3, 3, 1, 1, SINGLE_LED1, SINGLE_LED2, SINGLE_LED3) /* Gasthof zm Stern - Restaurant */ 524: HouseT(186, INCH_DCC_100_ONOFF, 1, 2, 15, 45, ROOM_TV0, ROOM_TV1, ROOM_TV0, ROOM_TV1) /* Gasthof zm Stern - Zimmer Etage 2 */ 525: HouseT(190, INCH_DCC_100_ONOFF, 1, 3, 15, 45, ROOM_TV0, ROOM_TV1, ROOM_TV0, ROOM_TV1, ROOM_TV1, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3) /* Gasthof zm Stern - Zimmer Etage 3 */ 526: HouseT(196, INCH_DCC_100_ONOFF, 2, 4, 16, 44, ROOM_TV0, ROOM_TV1, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, NEON_LIGHT3D) /* Bahnhofsstraße 1 */ 527: GasLights(200, INCH_DCC_100_ONOFF, NEON_LIGHT1D, GAS_LIGHT2D) /* Bahnhofsstraße - Laden + Außenbeleuchtung + frei */ 528: HouseT(201, INCH_DCC_100_ONOFF, 2, 4, 15, 45, ROOM_TV1, ROOM_TV0, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, NEON_LIGHT1M) /* Bahnhofsstraße 2 */ 529: // Next_LED(-1) /* Excel row 383 */ 530: GasLights(205, INCH_DCC_100_ONOFF, NEON_LIGHT2M, GAS_LIGHT3) /* Bahnhofsstraße 2 - Laden + Außenbeleuchtung */ 531: HouseT(206, INCH_DCC_100_ONOFF, 3, 5, 15, 45, ROOM_CHIMNEYD, ROOM_TV0, ROOM_TV1, SINGLE_LED1D, NEON_LIGHT2, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D, SINGLE_LED2D, SINGLE_LED3D, SINGLE_LED1D) /* Bahnhofsstraße 3 */ 532: // Next_LED(-1) /* Excel row 386 */ 533: GasLights(212, INCH_DCC_100_ONOFF, GAS_LIGHT2) /* Bahnhofsstraße 3 - Außenbeleuchtung + 1 freier Ausgang */ 534: GasLights(213, INCH_DCC_100_ONOFF, NEON_LIGHT1D, SINGLE_LED2) /* Excel row 390 */ 535: // Reserve LEDs(7) /* Single LED Connector überspringen */ 536: // Activation: Binary /* Ampel inkl. Rückleuchten > 2x kopiert */ 537: Bin_InCh_to_TmpVar(INCH_DCC_100_ONOFF, 1) /* " */ 538: PatternT20(221,16,SI_LocalVar,8,0,255,0,0,500,5000,500,1000,500,12000,500,500,500,500,500,500,500,500,500,500,500,500,500,4500,0,0,0,0,0,6,0,3,128,16,198,0,3,128,16,198,0,3,128,16,198,0,3,64,8,0,16,3,64,8,0,16,3,66,8,0,16,3,64,8,0,16,3,66,8,0,16,3,64,8,192,0,3,66,8,192,0,3,128,8,192,0,3,130,8,192,0,3,128,16,6,0,3,130,16,6,0,3,128,16,6,0,3,130,16,6,0,3,128,16,6,0,32,130,16,6,0,32,128,16 ,63,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1) /* " */ 539: Const(223, C3, INCH_DCC_100_ONOFF, 0, 7) /* Scheinwerfer Auto rechts */ 540: CopyLED(224, INCH_DCC_100_ONOFF, 221) /* Kopie von "Ampel inkl. Rückleuchten" */ 541: CopyLED(225, INCH_DCC_100_ONOFF, 222) /* Kopie von "Ampel inkl. Rückleuchten" plus 1 */ 542: Const(226, C1, INCH_DCC_100_ONOFF, 0, 127) /* Scheinwerfer Auto links */ 543: // Reserve LEDs(8) /* Single LED Connector überspringen */ 544: RGB_Heartbeat_Color(235, 80, 255, 0, 700) /* Verstärker-LED zurück 12 */ 545: RGB_Heartbeat_Color(236, 80, 255, 0, 700) /* Verstärker-LED zurück 11 */ 546: RGB_Heartbeat_Color(237, 80, 255, 0, 700) /* Verstärker-LED zurück 10 */ 547: RGB_Heartbeat_Color(238, 80, 255, 0, 700) /* Verstärker-LED zurück 09 */ 548: RGB_Heartbeat_Color(239, 80, 255, 0, 700) /* Verstärker-LED zurück 08 */ 549: RGB_Heartbeat_Color(240, 80, 255, 0, 700) /* Verstärker-LED zurück 07 */ 550: RGB_Heartbeat_Color(241, 80, 255, 0, 700) /* Verstärker-LED zurück 06 */ 551: RGB_Heartbeat_Color(242, 80, 255, 0, 700) /* Verstärker-LED zurück 05 */ 552: RGB_Heartbeat_Color(243, 80, 255, 0, 700) /* Verstärker-LED zurück 04 */ 553: RGB_Heartbeat_Color(244, 80, 255, 0, 700) /* Verstärker-LED zurück 03 */ 554: RGB_Heartbeat_Color(245, 80, 255, 0, 700) /* Verstärker-LED zurück 02 */ 555: RGB_Heartbeat_Color(246, 80, 255, 0, 700) /* Verstärker-LED zurück 01 */ 556: 557: EndCfg // End of the configuration 558: }; 559: //******************************************************************* 560: 561: #ifndef COPYLED_OFF 562: #define COPYLED_OFF 0 563: #endif 564: 565: #ifndef COPYLED_OFF_ONCE 566: #define COPYLED_OFF_ONCE 1 567: #endif 568: 569: //--------------------------------------------- 570: void Set_Start_Values(MobaLedLib_C &MobaLedLib) 571: //--------------------------------------------- 572: { 573: } 574: 575: 576: // if function returns TRUE the calling loop stops 577: typedef bool(*HandleValue_t) (uint8_t CallbackType, uint8_t ValueId, uint8_t* Value, uint16_t EEPromAddr, uint8_t TargetValueId, uint8_t Options); 578: 579: 580: #define InCnt_MSK 0x003F // 6 bits are used for the InCnt, 2 bits for the type ttcc cccc => Max InCnt=63 581: #define IS_COUNTER (uint8_t)0x80 582: #define IS_PULSE (uint8_t)0x40 583: #define IS_TOGGLE (uint8_t)0x00 584: #define COUNTER_ID 585: 586: typedef struct 587: { 588: uint8_t TypAndInCnt; // Type bits 7 & 6, InCnt 0..5 589: uint8_t Channel; 590: } __attribute__ ((packed)) Store_Channel_T; 591: 592: // Definition of channels and counters that need to store state in EEProm 593: const PROGMEM Store_Channel_T Store_Values[] = 594: { // Mode + InCnt , Channel 595: { IS_COUNTER , COUNTER_ID 1 }, // Schalter D1 596: { IS_COUNTER , COUNTER_ID 2 }, // Schalter D2 597: { IS_COUNTER , COUNTER_ID 3 }, // Schalter D3 598: { IS_TOGGLE + 1 , INCH_DCC_100_ONOFF }, // RGB Lichtwechsel Durchfahrten (3x WS2812) > 2x kopiert 599: { IS_TOGGLE + 1 , INCH_DCC_981_ONOFF }, // Relais 1x UM (frei) 600: { IS_TOGGLE + 1 , INCH_DCC_982_ONOFF }, // Relais 1x UM (frei) 601: { IS_TOGGLE + 1 , INCH_DCC_983_ONOFF }, // Relais 1x UM (frei) 602: { IS_TOGGLE + 1 , INCH_DCC_984_ONOFF }, // Relais 1x UM (frei) 603: { IS_TOGGLE + 1 , INCH_DCC_977_ONOFF }, // ZIMO MXDECUP 604: { IS_TOGGLE + 1 , INCH_DCC_978_ONOFF }, // Programmer Reserve 605: { IS_TOGGLE + 1 , INCH_DCC_976_ONOFF }, // Steckdose 606: { IS_TOGGLE + 1 , INCH_DCC_103_ONOFF }, // Relais 2 607: { IS_PULSE + 4 , INCH_DCC_101_RED }, // Weiß, Regenbogen und Farbwechsel > 9x kopiert (N_Buttons) 608: { IS_TOGGLE + 1 , INCH_DCC_28_ONOFF }, // Blaulicht (pc) 609: { IS_TOGGLE + 1 , INCH_DCC_805_ONOFF }, // Motor Hubwagen 610: { IS_TOGGLE + 1 , INCH_DCC_975_ONOFF }, // Licht rot in Molkerei/Spritzerei bei Z21 Prog 611: { IS_TOGGLE + 1 , INCH_DCC_30_ONOFF }, // Rundumlicht links, Sprinter & Vario 4 Stück (8x 0402 gelb) 612: { IS_TOGGLE + 1 , INCH_DCC_979_ONOFF }, // Schattenbahnhof Beleuchtung 613: { IS_TOGGLE + 1 , INCH_DCC_980_ONOFF }, // Freies Relais (rechts) 614: }; 615: 616: #ifndef CONFIG_ONLY 617: #endif // CONFIG_ONLY 618: 619: 620: 621: 622: 623: #endif // __LEDS_AUTOPROG_H__ 624: