56 Commits

Author SHA1 Message Date
Blaž Kristan
210191b251 Fix for realtime drawing on main segment 2024-10-07 20:19:07 +02:00
Blaz Kristan
20444ee7d5 Debug optimisations 2024-09-10 15:20:34 +02:00
Blaz Kristan
8d00e4d31d Save some tiny amounts of RAM
- use `-D WLED_SAVE_RAM`
2024-08-17 15:09:41 +02:00
Blaz Kristan
efa32ed4f6 Size optimisations 2024-07-09 21:50:27 +02:00
Andreas Kling
c3787af29d Send ArtnetPollReply for Art-Net proxy universe 2024-04-09 20:00:00 +02:00
Will Miles
62f845a94e DDP: Support sources that don't push
If the source never sends the push flag, WLED buffers the update but
never publishes it to the LEDs.  This causes the confusing case where
the peek display shows one thing but the LEDs themselves something else.

Add a static flag that tracks if we've seen a push from the source;
until we do, apply every update as soon as it's received, per the DDP
specification.
2024-03-18 19:49:26 -04:00
Blaz Kristan
b849ea8eaa Fix for #3827 2024-03-18 20:01:32 +01:00
Blaž Kristan
ec4afb2cbc
Merge pull request #3616 from demophoon/dmx-segment-options-expanded
Add additional segment options when controlling over e1.31
2024-03-01 16:28:19 +01:00
Blaz Kristan
bfb217c203 Implement multiple WiFi
- similar to #3705
- solves #2845, #2974, #852, #1228
2024-01-21 00:30:15 +01:00
Britt Gresham
9e54de8a8a Set 2 values between each segment option
Due to the midi interface being difficult/impossible to increment on
values of 1 because it has 7-bits of granularity, this commit moves all
the bitfields for configuring segment options left by one which
guarantees that every option has 2 values next to each other.

This allows midi controllers to more easily select an individual segment
option for 2D arrays.
2024-01-08 11:16:55 -08:00
Britt Gresham
fd2809e367 Replace bitshifts with masks and division 2024-01-08 11:16:55 -08:00
Britt Gresham
18874c2069 Remove unneeded floor call on segment option channel 2024-01-08 11:16:55 -08:00
Britt Gresham
115eb0ddef Add additional segment options when controlling over e1.31
Before this commit it was only possible to control mirror and reverse on
a 1d segment. All of the other options for 2d effects could not be set
and thus they would be kept disabled.

This commit replaces the Effect Option dmx channel with a bitfield which
allows for each segment option to be individually toggled depending on
which bit is set in the field. Backwards compatibility has been
maintained with existing 1d segment options.
2024-01-08 11:16:55 -08:00
Blaz Kristan
92390d1d59 Bugfix in DDP handling. 2023-06-04 17:55:29 +02:00
coral
7d84de6690
Fix errors in DDP implementation (#3193)
* fix DDP spec

* Adjust DDP type byte to latest spec

Allow receiving of RGBW DDP with either old or new bits per channel value

---------

Co-authored-by: Aircoookie <21045690+Aircoookie@users.noreply.github.com>
2023-05-26 14:58:40 +02:00
strikeout
56a854ec88 limit max. selectable preset ID to 250, according to WLED capabilities 2023-03-17 13:40:21 +01:00
strikeout
de4ff4e58d Fixes preset and brightness selection via DMX controller to DoS WLED, now same packets are discarded 2023-03-16 17:56:29 +01:00
mx
0d3debf9b9
sACN/E1.31 Port Priority (#3052)
* Added E1.31 port priority handling #768

* Ignore E1.31 data when priority doesn't match #768

* Enable E1.31 priority handling for WLED_ENABLE_DMX

* Only handle e131Priority for P_E131 protocol

* Corrected comments

* Highest priority package first handling

* Removed obsolete code & comments

* Improved comments

* Reduce priority timeout to be uint8_t

* Optimized code & comments

* E1.31: Ignore non-zero start code and preview data
These are not level data, they have other purposes

* Style change cca41508 preview & ignore non-zero start code

---------

Co-authored-by: RichardTea <31507749+RichardTea@users.noreply.github.com>
2023-02-21 17:13:15 +01:00
mx
d892c7290c
Merge branch 'Aircoookie:main' into pr_fxsegs 2023-01-16 17:28:44 +01:00
Blaž Kristan
506b6b51ce whitespace cleanup 2023-01-06 09:24:29 +01:00
Blaz Kristan
6f67132f4b PROGMEM string optimisation. 2022-12-26 10:20:45 +01:00
mxklb
c51dbae8b6 Removed bad code comments 2022-12-14 22:55:42 +01:00
mxklb
f38747aa28 Fixed bug: Last segment in universe skipped 2022-12-09 02:11:16 +01:00
mxklb
507e198b70 Minor cleanups 2022-11-26 17:22:03 +01:00
mxklb
8c5f9b4501 Added missing DMX effect options and 3rd color 2022-11-26 14:41:59 +01:00
mxklb
87fa14b281 Use up-to-date fashion for segment dmx control 2022-11-23 23:19:53 +01:00
mxklb
043947fdcb Added missing brightness to preset DMX mode 2022-11-23 00:38:42 +01:00
mxklb
84628bd9fc Refactored DMX effect mode + new segement controls (#2325) 2022-11-19 14:10:40 +01:00
Christian Schwinne
5f606bb0b7
DMX improvements (merge #2619) (#2794)
* Art-Net improvements

* Fix brightness level

* Update cfg.cpp

Co-authored-by: 4lloyd <github@lloydpost.nl>
2022-09-23 01:02:49 +02:00
4lloyd
d0189b0719
Add ArtPoll support (#2615)
* Add ArtPoll support

* Improved calculations

* Add support for legacy DMX start address 0

* Small efficiency improvement

* ESP8266 doesn't like yield

* Optimized ArtPoll memory use

Co-authored-by: cschwinne <dev.aircoookie@gmail.com>
2022-09-22 20:34:46 +02:00
cschwinne
3270605b4f DDP network bus RGBW support 2022-09-02 03:12:03 +02:00
Blaz Kristan
a75b3a53aa Use getModeCount() instead of MODE_COUNT
Clear strip if spacing changes.
Rewrite 2DGEQ.
2022-06-26 23:01:22 +02:00
Blaz Kristan
70b4cdf520 Merge branch 'master' into merge-master 2022-04-04 21:16:18 +02:00
4lloyd
8b79a9708b
Next universe overflow and Art-Net DMX start address (#2607)
* Improve calculation LEDs in next universe

* Fix Art-Net DMX start address
2022-04-03 17:52:36 +02:00
Blaz Kristan
41aa1ee318 Use UDP live/realtime data on main segment only.
Includes Adalight revert, CSS optimizations and setPixelColor() refactoring.
2022-03-25 16:36:05 +01:00
cschwinne
4865ddb377 Fix realtime mode disabled by brightness change
Fix realtime mode not working immediately at turn on
Fix individual segment control not working immediately at turn on
2022-03-10 20:40:48 +01:00
cschwinne
a556732e4f Add ability to set presets from DMX
(effect mode with single channel)
2022-03-10 12:13:12 +01:00
cschwinne
b44ffffed8 Fixed DDP override 2021-11-03 16:14:01 +01:00
Christian Schwinne
7e1920dc4b
Remove ledCount (#2300)
Bus initialization on reading from eeprom
2021-10-31 11:57:41 +01:00
cschwinne
a17f83cedd Renamed NOTIFIER_CALL_MODE_ to CALL_MODE_ 2021-07-09 18:54:28 +02:00
Louis Beaudoin
b460d0f533
Fix Warnings (#1744)
* Remove -w (Suppress all warnings, including those which GNU CPP issues by default.) and add back in -Wall (Turn on all optional warnings which are desirable for normal code.) from build_flags

* Fixes warning: suggest parentheses around '+' in operand of '&' [-Wparentheses]

* Fixes warning: "CONFIG_LITTLEFS_FOR_IDF_3_2" redefined

* Fixes warning: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'uint64_t {aka long long unsigned int}' [-Wformat=]

* Fixes warning: enumeration value 'onoff' not handled in switch [-Wswitch]

* Fixes warning: "ntohl" redefined, warning: "ntohs" redefined, warning: "htonl" redefined, warning: "htons" redefined
- Original fix: 858f8f4ee9

* Fixes warning: unused variable 'mainSeg' [-Wunused-variable]

* Fixes warning: unused variable 'start' [-Wunused-variable]

* (untested!) Fixes warning: operation on '...' may be undefined [-Wsequence-point]

* Fixes warning: unused variable

* Fixes warning: unused variable and warning: narrowing conversion

* Fixes warning: unused variable

* Fixes warning: unused variable

* (untested!) Fixes warning: statement has no effect [-Wunused-value]

* Fixes warning: control reaches end of non-void function

* Fixes warning: unused variable

* Fixes warning: left operand of comma operator has no effect

* Fixes warning: no return statement in function returning non-void

* (untested!) Fixes warning: ISO C++ forbids converting a string constant to 'char*' and fixes warning: unused variable 'nPins'

* Fixes warning: deleting array 'dmxData'

* Fixes warning: unused variable

* Remove all warning suppression buildflags

Co-authored-by: Louis Beaudoin <louis@embedded-creations.com>
Co-authored-by: Aircoookie <dev.aircoookie@gmail.com>
2021-02-27 00:20:31 +01:00
cschwinne
88e0da765c Remove code duplication for RGBW 2020-12-01 14:40:00 +01:00
sunbowch
3d89588eb1 mutiple RGBW leds support for DMX control
RGBW leds can be individually adressed through E1.31 control.
-Added option 'Multi RGBW' to the settings
-Modified e131.cpp accordingly
-Tuned other parameters to make it work
2020-11-27 11:37:39 +01:00
cschwinne
d2ffb3ca9d FQ quota and info 2020-10-07 17:48:22 +02:00
cschwinne
ee8596d175 DDP working 2020-09-29 01:13:29 +02:00
cschwinne
52df963be9 DDP Support 2020-09-28 16:29:01 +02:00
cschwinne
edbe8131ab Reduce heap usage by 4kB 2020-09-20 01:18:31 +02:00
cschwinne
10c22efbb5 Fixed 170th pixel dark in E1.31 2020-09-17 10:40:32 +02:00
cschwinne
7730a00dbb Rename local ledCount 2020-08-03 12:27:16 +02:00
Ted Schundler
3a4f4c8c34 Fix multi-universe ArtNet output
The existing code was very buggy - a 512 channel ArtNet packet sent data to
171 LEDs, not 170. Also the second ArtNet universe was off-by-one.

The math was very confusing with so many branches. The reduces the
amount of code and amount of branching.

Tested with Resolume + my own ArtNet software + 252 LEDs for ArtNet.
Tested with LedFx for e1.31
2020-08-02 17:48:47 -07:00