diff --git a/wled00/bus_manager.h b/wled00/bus_manager.h index 7b134986..92018405 100644 --- a/wled00/bus_manager.h +++ b/wled00/bus_manager.h @@ -127,6 +127,7 @@ class Bus { inline bool isOk() { return _valid; } inline bool isOffRefreshRequired() { return _needsRefresh; } bool containsPixel(uint16_t pix) { return pix >= _start && pix < _start+_len; } + virtual uint16_t getMaxPixels() { return MAX_LEDS_PER_BUS; }; virtual bool hasRGB() { if ((_type >= TYPE_WS2812_1CH && _type <= TYPE_WS2812_WWA) || _type == TYPE_ANALOG_1CH || _type == TYPE_ANALOG_2CH || _type == TYPE_ONOFF) return false; @@ -296,6 +297,7 @@ class BusNetwork : public Bus { public: BusNetwork(BusConfig &bc); + uint16_t getMaxPixels() override { return 4096; }; bool hasRGB() { return true; } bool hasWhite() { return _rgbw; } diff --git a/wled00/data/settings_leds.htm b/wled00/data/settings_leds.htm index 9ff77269..3d9cd6c6 100644 --- a/wled00/data/settings_leds.htm +++ b/wled00/data/settings_leds.htm @@ -60,10 +60,14 @@ x.style.animation = 'none'; timeout = setTimeout(function(){ x.className = x.className.replace("show", ""); }, 2900); } - function bLimits(b,v,p,m,l) { - maxB = b; maxV = v; maxM = m; maxPB = p; maxL = l; + function bLimits(b,v,m,l) { + maxB = b; maxV = v; maxM = m; maxL = l; } - function pinsOK() { + function setPixelLimit(i, max) { + var lc = d.getElementsByName("LC"+i)[0]; + lc.max = max; + } + function pinsOK() { var LCs = d.getElementsByTagName("input"); for (i=0; igetMaxPixels()); oappend(SET_F(");")); + } sappend('v',SET_F("MA"),strip.ablMilliampsMax); sappend('v',SET_F("LA"),strip.milliampsPerLed);