diff --git a/wled00/xml.cpp b/wled00/xml.cpp index 09931c7bf..17fda39d6 100644 --- a/wled00/xml.cpp +++ b/wled00/xml.cpp @@ -309,62 +309,67 @@ void getSettingsJS(byte subPage, char* dest) char nS[8]; // add reserved and usermod pins as d.um_p array + oappend(SET_F("d.um_p=[6,7,8,9,10,11")); + DynamicJsonDocument doc(JSON_BUFFER_SIZE/2); JsonObject mods = doc.createNestedObject(F("um")); usermods.addToConfig(mods); - oappend(SET_F("d.um_p=[6,7,8,9,10,11")); - if (!mods.isNull()) { - fillUMPins(mods); - #ifdef WLED_ENABLE_DMX - oappend(SET_F(",2")); // DMX hardcoded pin - #endif - #ifdef WLED_ENABLE_ADALIGHT - // inform settings page that pin 3 is used by ADALights if not aleready used by strip (previous setup) - // NOTE: this will prohibit pin 3 use on new installs - { - bool pin3used = false; - for (uint8_t s=0; s < busses.getNumBusses(); s++) { - Bus* bus = busses.getBus(s); - uint8_t pins[5]; - uint8_t nPins = bus->getPins(pins); - for (uint8_t i = 0; i < nPins; i++) { - if (pins[i] == 3) { - pin3used = true; - break; - } + if (!mods.isNull()) fillUMPins(mods); + + #ifdef WLED_ENABLE_DMX + oappend(SET_F(",2")); // DMX hardcoded pin + #endif + + #ifdef WLED_ENABLE_ADALIGHT + // inform settings page that pin 3 is used by ADALights if not aleready used by strip (previous setup) + // NOTE: this will prohibit pin 3 use on new installs + { + bool pin3used = false; + for (uint8_t s=0; s < busses.getNumBusses(); s++) { + Bus* bus = busses.getBus(s); + uint8_t pins[5]; + uint8_t nPins = bus->getPins(pins); + for (uint8_t i = 0; i < nPins; i++) { + if (pins[i] == 3) { + pin3used = true; + break; } - if (pin3used) break; } - if (!pin3used && pinManager.isPinAllocated(3)) oappend(SET_F(",3")); // ADALight (RX) pin + if (pin3used) break; } - #endif - #ifdef WLED_DEBUG - oappend(SET_F(",1")); // debug output (TX) pin - #endif - #if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) - if (psramFound()) oappend(SET_F(",16,17")); // GPIO16 & GPIO17 reserved for SPI RAM - #endif - #ifdef WLED_USE_ETHERNET - if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) { - for (uint8_t p=0; p=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_power,nS,10)); } - if (ethernetBoards[ethernetType].eth_mdc>=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdc,nS,10)); } - if (ethernetBoards[ethernetType].eth_mdio>=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdio,nS,10)); } - switch (ethernetBoards[ethernetType].eth_clk_mode) { - case ETH_CLOCK_GPIO0_IN: - case ETH_CLOCK_GPIO0_OUT: - oappend(SET_F(",0")); - break; - case ETH_CLOCK_GPIO16_OUT: - oappend(SET_F(",16")); - break; - case ETH_CLOCK_GPIO17_OUT: - oappend(SET_F(",17")); - break; - } - } - #endif + if (!pin3used && pinManager.isPinAllocated(3)) oappend(SET_F(",3")); // ADALight (RX) pin } + #endif + + #ifdef WLED_DEBUG + oappend(SET_F(",1")); // debug output (TX) pin + #endif + + #if defined(ARDUINO_ARCH_ESP32) && defined(WLED_USE_PSRAM) + if (psramFound()) oappend(SET_F(",16,17")); // GPIO16 & GPIO17 reserved for SPI RAM + #endif + + #ifdef WLED_USE_ETHERNET + if (ethernetType != WLED_ETH_NONE && ethernetType < WLED_NUM_ETH_TYPES) { + for (uint8_t p=0; p=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_power,nS,10)); } + if (ethernetBoards[ethernetType].eth_mdc>=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdc,nS,10)); } + if (ethernetBoards[ethernetType].eth_mdio>=0) { oappend(","); oappend(itoa(ethernetBoards[ethernetType].eth_mdio,nS,10)); } + switch (ethernetBoards[ethernetType].eth_clk_mode) { + case ETH_CLOCK_GPIO0_IN: + case ETH_CLOCK_GPIO0_OUT: + oappend(SET_F(",0")); + break; + case ETH_CLOCK_GPIO16_OUT: + oappend(SET_F(",16")); + break; + case ETH_CLOCK_GPIO17_OUT: + oappend(SET_F(",17")); + break; + } + } + #endif + oappend(SET_F("];")); // set limits