File: leds_autoprog.h

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/04/25 09:43:56
       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: #include "MobaLedLib.h"
      11: 
      12: #define START_MSG "LEDs_AutoProg Ver 3: AM328 3.3.2G 05.04.25 09:43"
      13: 
      14: #define TWO_BUTTONS_PER_ADDRESS 1      // Two buttons (Red/Green) are used (DCC/LNet/CAN)
      15: #ifdef NUM_LEDS
      16:   #warning "'NUM_LEDS' definition in the main program is replaced by the included 'LEDs_AutoProg.h' with 32"
      17:   #undef NUM_LEDS
      18: #endif
      19: 
      20: #define NUM_LEDS 32                    // Number of LEDs (Maximal 256 RGB LEDs could be used)
      21: 
      22: #define LEDS_PER_CHANNEL ",32"
      23: 
      24: #define USE_PROTOCOL_DCC
      25: 
      26: #define RECEIVE_LED_COLOR_PER_RS232
      27: 
      28: #define GEN_BUTTON_RELEASE
      29: #define GEN_BUTTON_RELEASE_COM GEN_OFF
      30: #define USE_EXT_ADDR
      31: #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)
      32: #define ADDR_OFFSET 0
      33: 
      34: #define ADDR_MSK  0x3FFF  // 14 Bits are used for the Address
      35: 
      36: #define S_ONOFF   (uint16_t)0
      37: #define B_RED     (uint16_t)(1<<14)
      38: #define B_GREEN   (uint16_t)(2<<14)
      39: #define O_RET_MSG (uint16_t)(3<<14)    // Return messages (Rueckmelder)
      40: #define B_TAST    B_RED
      41: 
      42: 
      43: typedef struct
      44:     {
      45:     uint16_t AddrAndTyp; // Addr range: 0..16383. The upper two bytes are used for the type
      46:     uint8_t  InCnt;
      47:     } __attribute__ ((packed)) Ext_Addr_T;
      48: 
      49: // Definition of external adresses
      50: #ifdef CONFIG_ONLY
      51: const Ext_Addr_T Ext_Addr[] __attribute__ ((section (".MLLAddressConfig"))) =
      52: #else
      53: const PROGMEM Ext_Addr_T Ext_Addr[] =
      54: #endif
      55:          { // Addr & Typ    InCnt
      56:            { 100  + S_ONOFF,   1 },      // Excel row 10
      57:          };
      58: 
      59: 
      60: // Input channel defines for local inputs and expert users
      61: #define INCH_DCC_100_ONOFF      0      // Excel row 10
      62: 
      63: 
      64: //*** Output Channels ***
      65: #define START_VARIABLES   1                                        // Define the start number for the variables.
      66: #define V1                      1                                        // Z21-RM-Rückmelder: Adresse:1 Eingang:1
      67: 
      68: 
      69: #define START_SEND_INPUTS 1                                        // Start address of all switches/variables
      70: #define TOTAL_SEND_INPUTS 1                                        // Number of used switches/variables
      71: #define TOTAL_SWITCHES_A  0                                        // Number of used inputs for analog keyboard
      72: #define TOTAL_SWITCHES_B  0                                        // Number of used inputs for keyboard 1
      73: #define TOTAL_SWITCHES_C  0                                        // Number of used inputs for keyboard 2
      74: #define TOTAL_SWITCHES_D  0                                        // Number of used inputs for main board switches
      75: #define TOTAL_VARIABLES   1                                        // Number of used variables
      76: /*********************/
      77: #define SETUP_FASTLED()                                                      \
      78: /*********************/                                                      \
      79:   CLEDController& controller0 = FastLED.addLeds<NEOPIXEL,  6>(leds+  0, 32); \
      80:                                                                              \
      81:   controller0.clearLeds(256);                                                \
      82:   FastLED.setDither(DISABLE_DITHER);       // avoid sending slightly modified brightness values
      83: /*End*/
      84: 
      85: // ----- LED to Var -----
      86:   #define USE_LED_TO_VAR
      87: 
      88:   #define T_EQUAL_THEN     0
      89:   #define T_NOT_EQUAL_THEN 1
      90:   #define T_LESS_THEN      2
      91:   #define T_GREATER_THAN   3
      92:   #define T_BIN_MASK       4
      93:   #define T_NOT_BIN_MASK   5
      94: 
      95:   typedef struct
      96:       {
      97:       uint8_t  Var_Nr;
      98:       uint8_t  LED_Nr;
      99:       uint8_t  Offset_and_Typ; // ---oottt    Offset: 0..2
     100:       uint8_t  Val;
     101:       } __attribute__ ((packed)) LED2Var_Tab_T;
     102: 
     103: #ifdef CONFIG_ONLY
     104:   const LED2Var_Tab_T LED2Var_Tab[] __attribute__ ((section (".MLLL2VConfig"))) =
     105: #else
     106:   const PROGMEM LED2Var_Tab_T LED2Var_Tab[] =
     107: #endif
     108:       {
     109:         // Var name           LED_Nr LED Offset   Typ                Compare value
     110:         { V1,                 0,     (0   << 3) | T_GREATER_THAN,    100 }
     111:       };
     112: 
     113: 
     114: 
     115: 
     116: //*******************************************************************
     117: // *** Configuration array which defines the behavior of the LEDs ***
     118: MobaLedLib_Configuration()
     119:   {
     120:   RGB_Heartbeat(0)                                                                                            /* LED auf dem Mainboard                                                                                                                                                                       */
     121:   // LED_to_Var(V1, 0, >, 100)                                                                                /* Excel row 4                                                                                                                                                                                 */
     122:   ConstRGB(1, V1, 0, 0, 0, 127, 127, 127)                                                                     /* Excel row 5                                                                                                                                                                                 */
     123:   // #xLEDColorAnim(0,0,500,1000,1000,0,1,0,1,3)                                                              /* Excel row 9                                                                                                                                                                                 */
     124:   APatternT1(2,28,SI_1,3,0,128,0,PM_NORMAL,500,0,0,0,0,0,0,0,0,0)                                             /*     "                                                                                                                                                                                       */
     125:   // Activation: Binary #ServoAnim(2,0,500,20,220,2500,2500,0,0,0,0,1,0,0,0,1)                                /* Excel row 10                                                                                                                                                                                */
     126:   Bin_InCh_to_TmpVar(0, 1)                                                                                    /*     "                                                                                                                                                                                       */
     127:   #define ENABLE_STORE_STATUS()                                                                               /*     "                                                                                                                                                                                       */
     128:   APatternT1(3,28,SI_LocalVar,1,0,128,0,PM_NORMAL,500,20,60,100,140,180,220,180,140,100,60,20  ,0,0,0,0,0,63,128,0,0,0,63) /*     "                                                                                                                                                                          */
     129:   HouseT(4, SI_1, 2, 5, 5, 15, ROOM_DARK, ROOM_WARM_W, NEON_LIGHT, NEON_LIGHTD, GAS_LIGHT2, CANDLE, ROOM_RED) /* Excel row 11                                                                                                                                                                                */
     130:   HouseT(11, SI_1, 2, 5, 5, 15, ROOM_DARK, ROOM_WARM_W, NEON_LIGHT, NEON_LIGHTD, GAS_LIGHT2, CANDLE, ROOM_RED) /* Excel row 12                                                                                                                                                                               */
     131:   HouseT(18, SI_1, 2, 3, 5, 15, ROOM_DARK, ROOM_WARM_W, NEON_LIGHT, NEON_LIGHTD, GAS_LIGHT2, NEON_LIGHT, NEON_LIGHT, NEON_LIGHT, NEON_LIGHT, NEON_LIGHT, NEON_LIGHT, NEON_LIGHT, NEON_LIGHT, NEON_LIGHT) /* Excel row 13                                                                                     */
     132: 
     133:   EndCfg // End of the configuration
     134:   };
     135: //*******************************************************************
     136: 
     137: #ifndef COPYLED_OFF
     138: #define COPYLED_OFF 0
     139: #endif
     140: 
     141: #ifndef COPYLED_OFF_ONCE
     142: #define COPYLED_OFF_ONCE 1
     143: #endif
     144: 
     145: //---------------------------------------------
     146: void Set_Start_Values(MobaLedLib_C &MobaLedLib)
     147: //---------------------------------------------
     148: {
     149: }
     150: 
     151: 
     152: // if function returns TRUE the calling loop stops
     153: typedef bool(*HandleValue_t) (uint8_t CallbackType, uint8_t ValueId, uint8_t* Value, uint16_t EEPromAddr, uint8_t TargetValueId, uint8_t Options);
     154: 
     155: 
     156: #define InCnt_MSK  0x003F  // 6 bits are used for the InCnt, 2 bits for the type ttcc cccc => Max InCnt=63
     157: #define IS_COUNTER (uint8_t)0x80
     158: #define IS_PULSE   (uint8_t)0x40
     159: #define IS_TOGGLE  (uint8_t)0x00
     160: #define COUNTER_ID
     161: 
     162: typedef struct
     163:     {
     164:     uint8_t TypAndInCnt; // Type bits 7 & 6, InCnt 0..5
     165:     uint8_t Channel;
     166:     } __attribute__ ((packed)) Store_Channel_T;
     167: 
     168: // Definition of channels and counters that need to store state in EEProm
     169: const PROGMEM Store_Channel_T Store_Values[] =
     170:          { // Mode + InCnt , Channel
     171:            { IS_TOGGLE + 1 , INCH_DCC_100_ONOFF  },      // Excel row 10
     172:          };
     173: 
     174: #ifndef CONFIG_ONLY
     175: #endif // CONFIG_ONLY
     176: 
     177: 
     178: 
     179: 
     180: 
     181: #endif // __LEDS_AUTOPROG_H__
     182: