From 9a066d286feb649e8b3d3c9860b2cdf1d567a113 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 28 Dec 2025 10:32:31 +0000 Subject: [PATCH 1/5] Initial plan From 96f47e7f715c550e41ade158621a0bf6222df1d0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 28 Dec 2025 10:37:50 +0000 Subject: [PATCH 2/5] Remove MAX_LEDS_PER_BUS limitation for virtual buses - Frontend: Updated settings_leds.htm to allow virtual buses up to 16384 LEDs - Backend: Modified BusConfig::adjustBounds() to skip MAX_LEDS_PER_BUS check for virtual buses - Tests: All npm tests pass successfully Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com> --- wled00/bus_manager.h | 2 +- wled00/data/settings_leds.htm | 20 ++++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index 95772a443f..be7a786e9f 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -451,7 +451,7 @@ struct BusConfig { //validates start and length and extends total if needed bool adjustBounds(uint16_t& total) { if (!count) count = 1; - if (count > MAX_LEDS_PER_BUS) count = MAX_LEDS_PER_BUS; + if (!Bus::isVirtual(type) && count > MAX_LEDS_PER_BUS) count = MAX_LEDS_PER_BUS; if (start >= MAX_LEDS) return false; //limit length of strip if it would exceed total permissible LEDs if (start + count > MAX_LEDS) count = MAX_LEDS - start; diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 2cd5e28393..abe09d5582 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -330,33 +330,29 @@ } // do we have a led count field if (nm=="LC") { + if (!isHub75(t)) { + LC.max = isAna(t) ? 1 : (isDig(t) ? maxPB : 16384); // set max value + } else { + LC.min = undefined; + LC.max = undefined; + } let c = parseInt(LC.value,10); //get LED count if (!customStarts || !startsDirty[toNum(n)]) gId("ls"+n).value = sLC; //update start value gId("ls"+n).disabled = !customStarts; //enable/disable field editing if (c) { let s = parseInt(gId("ls"+n).value); //start value if (s+c > sLC) sLC = s+c; //update total count - if (c > maxLC) maxLC = c; //max per output if (!isVir(t)) sPC += c; //virtual out busses do not count towards physical LEDs if (isDig(t)) { + if (c > maxLC) maxLC = c; //max per output sDI += c; // summarize digital LED count let maPL = parseInt(d.Sf["LA"+n].value); - if (maPL == 255) maPL = 12; + if (maPL == 255) maPL = 12; // wacky WS2815 mode (255 == 12mA per LED) busMA += maPL*c; // summarize maximum bus current (calculated) } } // increase led count return; } - // do we have led pins for digital leds - if (nm=="L0" || nm=="L1") { - if (!isHub75(t)) { - d.Sf["LC"+n].max = maxPB; // update max led count value - } - else { - d.Sf["LC"+n].min = undefined; - d.Sf["LC"+n].max = undefined; - } - } // ignore IP address (stored in pins for virtual busses) if (nm.search(/^L[0-3]/) == 0) { // pin fields if (isVir(t)) { From 7aeee543ef835d5ea445857e3b9b946940adc8a3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 28 Dec 2025 10:42:08 +0000 Subject: [PATCH 3/5] Complete implementation of virtual bus size limit removal Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com> --- _codeql_detected_source_root | 1 + 1 file changed, 1 insertion(+) create mode 120000 _codeql_detected_source_root diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root new file mode 120000 index 0000000000..945c9b46d6 --- /dev/null +++ b/_codeql_detected_source_root @@ -0,0 +1 @@ +. \ No newline at end of file From dc85a0eaf77e4c328feae801360c088bab6e30f1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 28 Dec 2025 10:42:49 +0000 Subject: [PATCH 4/5] Add CodeQL symlink to gitignore Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com> --- .gitignore | 1 + _codeql_detected_source_root | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 120000 _codeql_detected_source_root diff --git a/.gitignore b/.gitignore index ec9d4efcc3..703cc62a46 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ wled-update.sh /wled00/Release /wled00/wled00.ino.cpp /wled00/html_*.h +_codeql_detected_source_root diff --git a/_codeql_detected_source_root b/_codeql_detected_source_root deleted file mode 120000 index 945c9b46d6..0000000000 --- a/_codeql_detected_source_root +++ /dev/null @@ -1 +0,0 @@ -. \ No newline at end of file From fd0fe3e183eea1634d518a57f8220bece77e7a2d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 29 Dec 2025 13:58:10 +0000 Subject: [PATCH 5/5] Revert unnecessary .gitignore change Co-authored-by: DedeHai <6280424+DedeHai@users.noreply.github.com> --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 703cc62a46..ec9d4efcc3 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,3 @@ wled-update.sh /wled00/Release /wled00/wled00.ino.cpp /wled00/html_*.h -_codeql_detected_source_root