kopia lustrzana https://github.com/Aircoookie/WLED
				
				
				
			
						commit
						afd990bd71
					
				|  | @ -47,6 +47,7 @@ Type: | |||
| </select><br> | ||||
| <div id=xp>Port: <input name="EP" type="number" min="1" max="65535" value="5568" class="d5" required><br></div> | ||||
| Multicast: <input type="checkbox" name="EM"><br> | ||||
| Proxy Universe <input name=PU type=number min=0 max=63999 required> to DMX via MAX485 DI pin connected to D4 (0=disabled, compile with WLED_ENABLE_DMX)<br> | ||||
| Start universe: <input name="EU" type="number" min="0" max="63999" required><br> | ||||
| <i>Reboot required.</i> Check out <a href="https://github.com/ahodges9/LedFx" target="_blank">LedFx</a>!<br> | ||||
| Skip out-of-sequence packets: <input type="checkbox" name="ES"><br> | ||||
|  |  | |||
|  | @ -8,11 +8,12 @@ | |||
|  */ | ||||
| 
 | ||||
| #ifdef WLED_ENABLE_DMX | ||||
| #include "src/dependencies/dmx/ESPDMX.h" | ||||
| DMXESPSerial dmx; | ||||
| 
 | ||||
| void handleDMX() | ||||
| { | ||||
|   // don't act, when in DMX Proxy mode
 | ||||
|   if (e131ProxyUniverse != 0) return; | ||||
| 
 | ||||
|   // TODO: calculate brightness manually if no shutter channel is set
 | ||||
| 
 | ||||
|   uint8_t brightness = strip.getBrightness(); | ||||
|  |  | |||
|  | @ -25,6 +25,15 @@ void handleE131Packet(e131_packet_t* p, IPAddress clientIP, bool isArtnet){ | |||
|     seq = p->sequence_number; | ||||
|   } | ||||
| 
 | ||||
|   #ifdef WLED_ENABLE_DMX | ||||
|   // does not act on out-of-order packets yet
 | ||||
|   if (e131ProxyUniverse > 0 && uni == e131ProxyUniverse) { | ||||
|     for (uint16_t i = 1; i <= dmxChannels; i++) | ||||
|       dmx.write(i, e131_data[i]); | ||||
|     dmx.update(); | ||||
|   } | ||||
|   #endif | ||||
| 
 | ||||
|   // only listen for universes we're handling & allocated memory
 | ||||
|   if (uni >= (e131Universe + E131_MAX_UNIVERSE_COUNT)) return; | ||||
| 
 | ||||
|  |  | |||
|  | @ -212,6 +212,7 @@ function S(){GCH(15);GetV();mMap();}function H(){window.open("https://github.com | |||
| <button type="button" onclick="B()">Back</button><button type="submit">Save</button><hr> | ||||
| <h2>Imma firin ma lazer (if it has DMX support)</h2><!-- TODO: Change to something less-meme-related //-->
 | ||||
| 
 | ||||
| <i>This functionality may be disabled by DMX Proxy Universe ≠ 0 on sync settings page</i><br> | ||||
| <i>Number of fixtures is taken from LED config page</i><br> | ||||
| 
 | ||||
| Channels per fixture (15 max): <input type="number" min="1" max="15" name="CN" maxlength="2" onchange="mMap();"><br /> | ||||
|  | @ -293,6 +294,7 @@ Type: | |||
| </select><br> | ||||
| <div id=xp>Port: <input name=EP type=number min=1 max=65535 value=5568 class=d5 required><br></div> | ||||
| Multicast: <input type=checkbox name=EM><br> | ||||
| Proxy Universe <input name=PU type=number min=0 max=63999 required> to DMX via MAX485 DI pin connected to D4 (0=disabled, compile with WLED_ENABLE_DMX)<br> | ||||
| Start universe: <input name=EU type=number min=0 max=63999 required><br> | ||||
| <i>Reboot required.</i> Check out <a href=https://github.com/ahodges9/LedFx target=_blank>LedFx</a>!<br>
 | ||||
| Skip out-of-sequence packets: <input type=checkbox name=ES><br> | ||||
|  |  | |||
|  | @ -144,6 +144,10 @@ void handleSettingsSet(AsyncWebServerRequest *request, byte subPage) | |||
|     e131Multicast = request->hasArg("EM"); | ||||
|     t = request->arg("EP").toInt(); | ||||
|     if (t > 0) e131Port = t; | ||||
|     #ifdef WLED_ENABLE_DMX // include only if DMX is enabled
 | ||||
|     t = request->arg("PU").toInt(); | ||||
|     if (t >= 0  && t <= 63999) e131ProxyUniverse = t; | ||||
|     #endif | ||||
|     t = request->arg("EU").toInt(); | ||||
|     if (t >= 0  && t <= 63999) e131Universe = t; | ||||
|     t = request->arg("DA").toInt(); | ||||
|  |  | |||
|  | @ -76,6 +76,10 @@ | |||
|   #include "src/dependencies/blynk/BlynkSimpleEsp.h" | ||||
| #endif | ||||
| 
 | ||||
| #ifdef WLED_ENABLE_DMX | ||||
|   #include "src/dependencies/dmx/ESPDMX.h" | ||||
| #endif | ||||
| 
 | ||||
| #include "src/dependencies/e131/ESPAsyncE131.h" | ||||
| #include "src/dependencies/async-mqtt-client/AsyncMqttClient.h" | ||||
| #include "src/dependencies/json/AsyncJson-v6.h" | ||||
|  | @ -227,6 +231,10 @@ WLED_GLOBAL bool receiveDirect _INIT(true);                       // receive UDP | |||
| WLED_GLOBAL bool arlsDisableGammaCorrection _INIT(true);          // activate if gamma correction is handled by the source
 | ||||
| WLED_GLOBAL bool arlsForceMaxBri _INIT(false);                    // enable to force max brightness if source has very dark colors that would be black
 | ||||
| 
 | ||||
| #ifdef WLED_ENABLE_DMX | ||||
| WLED_GLOBAL DMXESPSerial dmx; | ||||
| WLED_GLOBAL uint16_t e131ProxyUniverse _INIT(0);                  // output this E1.31 (sACN) / ArtNet universe via MAX485 (0 = disabled)
 | ||||
| #endif | ||||
| WLED_GLOBAL uint16_t e131Universe _INIT(1);                       // settings for E1.31 (sACN) protocol (only DMX_MODE_MULTIPLE_* can span over consequtive universes)
 | ||||
| WLED_GLOBAL uint16_t e131Port _INIT(5568);                        // DMX in port. E1.31 default is 5568, Art-Net is 6454
 | ||||
| WLED_GLOBAL byte DMXMode _INIT(DMX_MODE_MULTIPLE_RGB);            // DMX mode (s.a.)
 | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
|  */ | ||||
| 
 | ||||
| //eeprom Version code, enables default settings instead of 0 init on update
 | ||||
| #define EEPVER 19 | ||||
| #define EEPVER 20 | ||||
| //0 -> old version, default
 | ||||
| //1 -> 0.4p 1711272 and up
 | ||||
| //2 -> 0.4p 1711302 and up
 | ||||
|  | @ -28,6 +28,7 @@ | |||
| //17-> 0.9.1-dmx
 | ||||
| //18-> 0.9.1-e131
 | ||||
| //19-> 0.9.1n
 | ||||
| //20-> 0.9.1p
 | ||||
| 
 | ||||
| void commit() | ||||
| { | ||||
|  | @ -211,6 +212,11 @@ void saveSettingsToEEPROM() | |||
|   EEPROM.write(2181, macroNl); | ||||
|   EEPROM.write(2182, macroDoublePress); | ||||
| 
 | ||||
|   #ifdef WLED_ENABLE_DMX | ||||
|   EEPROM.write(2185, e131ProxyUniverse & 0xFF); | ||||
|   EEPROM.write(2186, (e131ProxyUniverse >> 8) & 0xFF); | ||||
|   #endif | ||||
| 
 | ||||
|   EEPROM.write(2187, e131Port & 0xFF); | ||||
|   EEPROM.write(2188, (e131Port >> 8) & 0xFF); | ||||
| 
 | ||||
|  | @ -524,6 +530,13 @@ void loadSettingsFromEEPROM(bool first) | |||
|     e131Port = EEPROM.read(2187) + ((EEPROM.read(2188) << 8) & 0xFF00); | ||||
|   } | ||||
| 
 | ||||
|   #ifdef WLED_ENABLE_DMX | ||||
|   if (lastEEPROMversion > 19) | ||||
|   { | ||||
|     e131ProxyUniverse = EEPROM.read(2185) + ((EEPROM.read(2186) << 8) & 0xFF00); | ||||
|   } | ||||
|   #endif | ||||
| 
 | ||||
|   receiveDirect = !EEPROM.read(2200); | ||||
|   notifyMacro = EEPROM.read(2201); | ||||
| 
 | ||||
|  |  | |||
|  | @ -330,6 +330,9 @@ void getSettingsJS(byte subPage, char* dest) | |||
|     sappend('v',"EP",e131Port); | ||||
|     sappend('c',"ES",e131SkipOutOfSequence); | ||||
|     sappend('c',"EM",e131Multicast); | ||||
|     #ifdef WLED_ENABLE_DMX | ||||
|     sappend('v',"PU",e131ProxyUniverse); | ||||
|     #endif | ||||
|     sappend('v',"EU",e131Universe); | ||||
|     sappend('v',"DA",DMXAddress); | ||||
|     sappend('v',"DM",DMXMode); | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Aircoookie
						Aircoookie