Commit Graph

77 Commits

Author SHA1 Message Date
Frank
63e63ad156 minor speedup for liveview and websockets
it seems that getFreeHeap() needs some time, and blocks other tasks until completion.
sendDataWS() does not need ESP.getFreeHeap() results on esp32.
2023-05-21 21:01:23 +02:00
Frank
72f7f9c555 fix 8266 compile error
*hrmpf* 8266 does not support C++ try-catch and exceptions.
2023-05-15 21:38:23 +02:00
Frank
6d23eb6874 improve robustness when heap is low
* customMappingTable: allocate using calloc instead of new (new will throw exception if nor enough heap)
* fixing a few minor memory leaks
* ws.cpp: catch out-of-memory in sendLiveLedsWs
* ws.cpp: change interval to 80ms (120 ws very slow...)
2023-05-15 21:15:24 +02:00
Frank
7d0e627e14 some effect optimizations
* getpixelcolor: attribute pure - it reads memory, but does not write
* some optimizations for SEGMENT.blur() and SEGMENT.fadeToBlackBy()

* FX.c:pp remove double calls to blur() and fade_out()
* FX.cpp: SEGMENT.setUpLeds() added to effects, to enable LED buffering (safe some time because getPixelColor does not need to access NeopixelBus)

* a few other optimizations to safe time and avoid "expensive" operations
* set I2C bus speed to 400kHz (default is 100Khz)

* a few other small optimizations and tweaks
* pio: esp32 V4 builds use "patch5" toolchain version, which contains a few bugfixes especially for memory management.
2023-05-03 20:33:23 +02:00
Frank
e1cadbc337 (experimental) reduced websocket frequency
fastpath: reduced websocket frequency, to have more time for physically attached LEDs.

fingers crossed that this won't break anything....
2023-04-30 21:00:28 +02:00
Frank
40c96c14f5 a bunch of smaller speedups to core functions
*  make local functions "static"
* use fast_ int types where possible
* use native min/max instead of MIN/MAX macros. Macros evaluate each parameter TWICE!!
* adding __attribute__((pure)) and __attribute((const)) to help the compiler optimize
* ws.cpp: reduce max "live leds" in fastpath mode
2023-04-30 18:41:30 +02:00
Ewoud
753f5621d1 ws sendLiveLedsWs: no skiplines to show large matrices uncompressed 2023-04-06 11:49:16 +02:00
Ewoud
5991aa8624 UI/GFX improvements 2023-03-27 20:41:53 +02:00
Ewoud
9b25b6d8c6 Changes in Debug messages 2023-03-27 20:26:03 +02:00
Frank
f52e706c95 minor improvements for debugging
* Info page: status of Serial (can be disconnected on new MCUs), and owner of RX/TX pins
* improved handling of Serial (don't write if not connected)
* added min available stack size to debug output (esp32 only)
* webserver show remaining stack size
* webserver: show string buffer usage
2023-03-25 21:10:15 +01:00
Ewoud
8485be27f2 Merge remote-tracking branch 'upstream/main' into mdev 2023-03-21 11:39:30 +01:00
Blaz Kristan
08e2bfe9a2 Scale 2D peek for large matrices. 2023-03-18 18:22:31 +01:00
Ewoud
9f282f831e GEQ: even distribution of bands and small changes
FX.cpp: GEQ: even distribution of bands
FX_fcn: tiny change
wled.cpp: setupMatrix also if loadedledmap != 0
ws.cpp: replace getLengthTotal by width * height (for ledmaps)
2023-03-11 13:59:23 +01:00
Ewoud
d8f625beea show only ledmap pixels, show bus lengths in segment visualization
index.js: segment visualization:
- max width if no pc
- don't show nr if only one segment
- Ledmap nr color depending on bus output

FX_2Dfcn.cpp / FX_fcn.cpp
- don't show ledmap -1 pixels

json.cpp: add busses.length to outputs

ws.cpp: peek back to strip.gPC only
2023-02-14 17:22:58 +01:00
Ewoud
476105a267 Add serpentine to default peek + version date 2023-02-13 19:14:11 +01:00
Ewoud
9ba9a61af5 Add support for default ledmap.json + peek with ledmap if default panel
Thx to @Troy#2642
2023-02-13 19:09:02 +01:00
Ewoud
3139f5228d Merge remote-tracking branch 'origin/ac_main' into mdev 2022-12-19 14:00:52 +01:00
Blaz Kristan
3c5838cafd Remove "strip" dependency in Segment class 2022-12-16 22:31:07 +01:00
Ewoud
3160a0b090 Merge remote-tracking branch 'origin/ac_main' into mdev 2022-12-06 14:38:49 +01:00
cschwinne
efc476e50b Disable register keyword to reduce compiler warnings
Minor formatting improvements
"ps" string optimization
Removed travis envs
2022-12-03 20:55:17 +01:00
Ewoud
ace3035d4a Small changes and version 0.14.0.6.0
Including 2D peek max 4096 leds
2022-11-24 10:57:18 +01:00
Ewoud
c3c3ff39b5 Change WLEDSR to WLEDMM in comments 2022-11-09 12:14:42 +01:00
Ewowi
8e70176de6 Add compatibility for SR playlists (to support HB effects)
liveviewws2D and ws.cpp: show preset and playlist id
json.cpp: add SR preset compatibility
2022-10-20 10:39:50 +02:00
Blaz Kristan
7824f9ee63 Remove sync preset loading (ugly core check)
WS buffer check for ESP32-S2
Delay for Serial init on CDC USB
2022-09-20 21:17:44 +02:00
Blaz Kristan
957948f906 Code optimisations in effects.
Remove Wire initialisation from RTC.
Peek fix.
2022-08-09 21:14:37 +02:00
Blaž Kristan
c5f3e76b21 Compile optimisations, code reduction.
2D peek resize.
2022-08-03 14:23:24 +02:00
ewowi
affcca8034 Improve liveview2D: add width and height > 256 leds 2022-07-28 16:13:31 +02:00
Blaz Kristan
a46894f395 Bugfixes. 2022-07-19 16:16:43 +02:00
Blaz Kristan
6c6849d8d7 Vectors & dynamic loadJS.
- Segments
- Modes

NOTE: crashes ESP if effect is running while deleting segment.
2022-07-17 15:58:41 +02:00
Blaz Kristan
588c7a81fc Fix for transitions. 2022-07-12 18:10:07 +02:00
Blaz Kristan
14887d5e88 Multiple fixes.
- non matrix bugs in legacy effects
- preset loading (cycling)
- segment length in UI
- possible WS heap corruption prevention
2022-06-01 22:11:25 +02:00
Blaz Kristan
b4d6525899 Added new 2D effects:
- 2D Floating Blobs
- 2D Ghost Rider
Crash fix for 2D Game of Life.
Added support function fill_circle() & wu_pixel().
Removed obsolete debug strings.
2022-05-20 19:35:22 +02:00
Blaz Kristan
0f6b1e4ae1 Synchronus applyPreset() from HTTP JSON API call.
Bugfix for HTTP API preset.
WS multiple broadcast fix.
Turning segment on/off will not reset currentPreset/cause stateChanged.
2022-04-16 16:28:43 +02:00
Blaz Kristan
c14f16bdf1 Merge branch 'master' into master-merge 2022-03-19 21:05:28 +01:00
cschwinne
b93a9cb8bc FIxed liveview 2022-03-18 14:24:10 +01:00
cschwinne
8601052179 Fixed liveview buffer over-write (fixes #2586 )
(with odd LED counts > 256)
2022-03-18 14:08:37 +01:00
Blaz Kristan
41b6f3ffa7 Merge branch 'master' into merge-master 2022-02-20 22:24:11 +01:00
cschwinne
efbb7a034c Slight websocket reconnection tweaks 2022-02-19 22:47:17 +01:00
Blaž Kristan
3be4b69b44 WS reconnect logic & WS memory leak protection 2022-02-17 12:45:50 +01:00
cschwinne
7b969bb8c2 Various state changed logic simplifications
Changed main segment, must be selected
2022-02-16 21:12:33 +01:00
Blaz Kristan
2da14e5b2a Merge branch 'master' into merge-master 2022-02-04 16:29:39 +01:00
Blaž Kristan
84e38f765d Fix for incorrect buffer size when LED count = 256 2022-02-04 07:59:17 +01:00
cschwinne
b33c5798ee Changelog update 2022-02-03 23:37:30 +01:00
Blaz Kristan
81012e60ff Fix for overallocated LiveView buffer. 2022-02-03 20:24:52 +01:00
Blaz Kristan
6180c2f948 Fix for overallocated LiveView buffer. 2022-02-03 20:21:09 +01:00
Blaz Kristan
52f0ae9350 Merge branch 'master' into master-merge
Few UI fixes.
2022-02-03 17:40:44 +01:00
Christian Schwinne
565d8d8f04 Binary Websockets for Peek (#2516)
* Binary Websockets for Peek

* No IRAM_ATTR here

* Use builtin LittleFS for all ESP32 builds

* Attempt LittleFS compilation fix

* Use tasmota zip for all ESP32 builds

* Revert to Arduino Core 1 for the time being
2022-02-01 12:02:04 +01:00
Blaz Kristan
8386b9a0b4 Removed dynamic JSON buffer entirely.
Temporary presets in RAM (ESP32)
Async loading of presets (stability).
Other minor fixes.
Bumped version to 0.13.1-bl6
2022-01-01 12:52:50 +01:00
Blaz Kristan
59216a9ae1 UI refinements.
Disconnect all WS clients on low mem.
2021-12-18 17:13:15 +01:00
Blaz Kristan
37dbf4d8ec Prevent memory exceptions using WS. 2021-12-18 10:25:58 +01:00