Commit Graph

148 Commits

Author SHA1 Message Date
083564caef Reorganized effect selection stuff: No longer a big case clause comparing CRC32. Instead an array of structs. Much nicer. Also, other code can now see which effects there are. 2019-10-02 06:16:07 +02:00
3f6d4cb0be Moved settings from preprocessor directives to variables. Also added a way to (for now only) display them via HTTP server. 2019-10-02 06:13:55 +02:00
382631d7d7 Effect#loop now gets the time since the last run of the loop in ms. This enables
the effects to show animations that stay fluid independent of the current frame rate.
2019-10-01 06:29:32 +02:00
c1024b3423 As noticed, this reverts big_clock to the pre-subsampling state. 2019-09-25 20:04:48 +02:00
2395e51e88 Added different rendering modes for the subpixel stuff. 2019-09-25 20:04:17 +02:00
7cbb156b66 Attempted to make the border of big_clock use subpixel rendering. This is still work in progress. 2019-09-25 18:13:11 +02:00
7ac681002e Added effect night_clock 2019-09-25 18:11:52 +02:00
36edb94ff0 Metrics now include the current effect's name. 2019-09-25 18:11:03 +02:00
c1cfb693d3 Added missing option EFFECT_SINES_COUNT fo congif.sample.h 2019-09-25 06:43:31 +02:00
781954d7f1 Added effect marquee, which will scroll a given message through the display. 2019-09-25 06:41:52 +02:00
73b8d162c7 Metrics logging now includes average time taken per frame. Also, metrics now come in a single JSON payload to /metrics. 2019-09-25 06:40:24 +02:00
3018bc6375 Added font5x7 and turned the letters around so they are now upside up. ;-) 2019-09-25 06:34:26 +02:00
1cd94ac4ae Effect swirl is now shown with clock. 2019-09-25 06:33:26 +02:00
b8f39410c9 Effect matrix now uses subpixel rendering for smoother movements. 2019-09-25 06:32:35 +02:00
711719921a Rewrote effect firework. Now it kinda works. 2019-09-25 06:30:03 +02:00
6ba2854a8d Effect big_dynamic will now be shown with clock. 2019-09-25 06:28:53 +02:00
aa11f5ed8a Added subpixel-rendering as well as blurring methods to Window. 2019-09-25 06:27:43 +02:00
fa5f1c8816 Added effect blur2d 2019-09-25 06:26:27 +02:00
b5c99c320b Added effect sines. 2019-09-25 06:25:16 +02:00
96e144f96b Added effect analog_clock (heavily, not-really-usable work-in-progress!). 2019-09-25 06:24:24 +02:00
792354e371 Updated recorder to only send every 2nd frame, to clear the window when selecting a new effect, doubled the resizing factor and re-enabled gifsicle. 2019-09-25 06:09:00 +02:00
33c2417534 Added recorder to be able to stream the current LED data via network. That way you can create nice looking GIF images of the effects - and even develop effects without having to look at the actual LED panel. 2019-09-04 06:05:45 +02:00
bf1666fb32 Added font numbers3x5_blocky. 2019-09-04 06:02:16 +02:00
0d23e5ec6c Removed old reference to SimpleList. 2019-09-04 06:01:32 +02:00
a05931d7f9 Made twirl effect a lot more beautiful. 2019-09-04 06:01:08 +02:00
a6cd94e416 Fixed rainbow_matrix and random_matrix. 2019-09-04 06:00:18 +02:00
2ddd77eb5c Fixed big_clock effect and made it a lot nicer with moving pixels for seconds. 2019-09-04 05:59:30 +02:00
1122546853 Fixed line and circle drawing code in Window. But it looks bad ans some form of dithering is definitely required. 2019-09-04 05:58:36 +02:00
5b70511570 Added options to config.sample.h
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-19 22:31:11 +02:00
77fdba213a I'm tired and forgot to add two files to previous commits. :-/ 2019-06-19 22:29:11 +02:00
ead076f9a3 You can now set options for effects via MQTT and HTTP. Basic syntax is: <mode>,<option1>=<value1>,<option2>=<value2>,... 2019-06-19 22:28:38 +02:00
26df11fc47 Added tests. Start them by sending a message to MQTT_TOPIC/run_tests. First test will test all effects for memory leaks. 2019-06-19 22:26:38 +02:00
0163bbef6c Some memory leaks fixed. 2019-06-19 22:23:49 +02:00
9eeb4b50fd Missed a patch for the previous commit. 2019-06-19 22:22:37 +02:00
d2c0268dce MatrixEffect can now have multiple columns in the same column. In RandomMatrix, they even run in all directions. 2019-06-19 22:22:03 +02:00
e897c6bdcd New Effect: DvdEffect 2019-06-19 22:17:39 +02:00
f1821b0b85 New Effect: RandomConfettiEffect 2019-06-19 22:17:10 +02:00
41af01ee0b Better handling of Animations, their members and the destructor. 2019-06-19 22:16:06 +02:00
74b967392d Cleanup.
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-18 18:18:07 +02:00
8c9e9e2e2e MQTT: Use new effect structure and logging. 2019-06-18 18:17:48 +02:00
f1424d0277 Extended http server to list files in SPIFFS and allow you to upload and delete files. 2019-06-18 18:17:20 +02:00
0941ad8349 Effects are now constructed when needed instead of having global objects of every effect flying around. 2019-06-18 18:14:59 +02:00
5a02050680 Log using printf with a String stored in PROGMEM. Always. 2019-06-18 18:13:37 +02:00
5af7c6337d Enable CYCLE_MODE_RANOM by default. 2019-06-18 18:12:36 +02:00
3c0e7a116a Animation now uses .pia files from SPIFFS instead of hardcoded C stuff. 2019-06-18 18:10:58 +02:00
1912772da3 Effects now use Constructor and Destructor to initialize or delete their data, instead of using start() and stop(). 2019-06-18 18:09:05 +02:00
e8f3ea3281 Extended MatrixEffect to also get RainbowMatrixEffect and RandomMatrixEffect.
Side note: You know you understand C++ when you understand the meaning 
and reason for "MatrixEffect** _columns". ;-)
2019-06-16 12:43:05 +02:00
3edbf6b252 Added PicelClockEffect.
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-15 14:18:35 +02:00
b65afde142 MatrixEffect now uses dynamically allocated memory. 2019-06-15 14:17:06 +02:00
02b3bbcea8 Added methods for drawing lines and circles to Window. 2019-06-15 14:16:27 +02:00
989eabee4a Added missing setting for GolEffect to config.sample.h
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-14 05:37:35 +02:00
5ce3b0c1b3 Centralized the creation of a hostname to a global variable hostname, set in pitrix.cpp. Added an mDNS record for the webserver. 2019-06-14 05:35:17 +02:00
4fdd1d3739 Added animation 'cake'. 2019-06-14 05:32:55 +02:00
1e23936374 Added effect 'gol': Conway's Game of Life. 2019-06-14 05:32:17 +02:00
291a3be623 Moved platform-specific code related to WiFi and services to my_wifi.h. Also, made the HTTP server stuff compatible to ESP32.
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-13 06:01:44 +02:00
bfe46220ca Added HTTP REST API. 2019-06-12 20:57:31 +02:00
ca980b0c9f You can now set LED_MAX_MILLIAMPS if your power supply is limited. 2019-06-12 20:48:56 +02:00
f8c696c384 Added README as well as some comments in config.sample.h 2019-06-12 20:48:20 +02:00
874b2c212f Small changes to some effects:
All checks were successful
continuous-integration/drone/push Build is passing
* Don't put multi-dynamic and single-dynamic right after one another, 
because that looks strange when not using random cycling between 
effects.
* Removed white from the matrix palette cause we're setting white 
explicitly from the code.
* Increased speed of single_dynamic a little.
2019-06-12 06:32:06 +02:00
477edd1597 I just learned that unintialized variables in C can lead to lots of unexpected and hard-to-debug behaviour... :-/ 2019-06-12 06:30:26 +02:00
2072877159 Handling of incoming MQTT messages improved.
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-11 19:48:42 +02:00
83254f2eaa Windows. Everything now is implemented in Windows. ;-) (Okay, just the drawing stuff. And defnititely nothing by Microsoft.) 2019-06-11 19:48:09 +02:00
ced56d2ae8 Added checks for supported platforms to config.sample.h
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-07 06:30:38 +02:00
38c55e3047 Added missing stuff to config.sample.h 2019-06-07 06:30:15 +02:00
c5856a6f7a Whitespace stuff. Tabs rule!
Some checks failed
continuous-integration/drone/push Build is failing
2019-06-07 06:24:16 +02:00
c153ce915d Added MQTT_TOPIC_WEATHER for receiving and storing weather data. 2019-06-07 06:08:21 +02:00
a821985479 Re-organized Animation code to move from multiple different constructors to one constructor and a handfull of setters for options. 2019-06-07 06:07:29 +02:00
cfc5122e2e Only debug via mqtt_log if MQTT_ENABLE is set. Also include my_mqtt.h there.
All checks were successful
continuous-integration/drone/push Build is passing
2019-06-06 06:57:30 +02:00
f7fc459095 MQTT can now be disabled via MQTT_ENABLE 2019-06-06 06:43:50 +02:00
158847d4c4 Correctly using NTPClient. Now with callback. 2019-06-06 06:43:01 +02:00
26761226d0 Stuff from text.h is now const. 2019-06-06 06:42:00 +02:00
540b188058 Extended config.sample.h 2019-06-06 06:41:11 +02:00
dcf42bbb0c Added animation_weather_icons. 2019-06-06 06:40:51 +02:00
4fe34afd08 Animation.h now also includes AnimationSlice to show only part of an animation. 2019-06-06 06:40:30 +02:00
d4c1c1fc91 Updated config.sample.h 2019-06-05 06:29:47 +02:00
a2b0f7106f Added FireworkEffect, which needs a lot more tweaking. 2019-06-05 06:27:55 +02:00
57815cb3bf Joined SingleDynamicEffect and MultiDynamicEffect into one file and finally got different timings for both classes to work. 2019-06-05 06:27:07 +02:00
b2ff3bdc54 Moved the animation display code into its own class which can and will also be used to display static images and sprites. 2019-06-05 06:25:40 +02:00
f95589763e Added FireEffect. Its values still need a bit of tweaking to look right... 2019-06-04 05:58:23 +02:00
96442b48cc SnakeEffect now turns into a random direction when hitting a wall. The code is now also a whole lot cleaner. 2019-06-04 05:57:27 +02:00
94687bab36 CycleEffect now uses the ID of an effect within cycle_effects to prevent repeating an effect instead of comparing the objects. 2019-06-04 05:56:33 +02:00
46062945ff Changed MatrixEffect to use color palettes. 2019-06-04 05:55:24 +02:00
b2bc8aa75e Experiment in getting the differing delays in Single/MultiDynamic effects to work. Unsuccessful, for now. 2019-06-03 06:43:50 +02:00
29e136b8db NTPClient now does updates asynchronously. Thanks to https://github.com/arduino-libraries/NTPClient/pull/22 2019-05-31 23:58:34 +02:00
f9fba8a8f9 Macros LOG and LOGln now will, if debugging is enabled, log to an mqtt topic as well as Serial. 2019-05-31 23:57:46 +02:00
a7d956209a Added Effect::start() and Effect::stop() to allow effects to reserve memory on start and free it afterwards. 2019-05-31 05:46:17 +02:00
a2fe1461ad Added effect "snake". 2019-05-31 05:45:07 +02:00
36663cf067 Man, I broke config.sample.h. Well, now it is fixed again. ;-) 2019-05-30 13:15:21 +02:00
b4e19dbc02 Updated config.sample.h 2019-05-30 13:11:42 +02:00
5321409727 Added support for reporting for freeHeap via MQTT. 2019-05-30 13:09:38 +02:00
646d3369fb Amount of new Pixels per loop for confetti effect is now configurable. Also, the color is based on a slowly rotating baseHue. 2019-05-30 13:08:24 +02:00
adb03d486b NTPClient has now a method boolean isTimeValid() which indicates whether the last update was successful or not. Clock will blink if it wasn't successful. 2019-05-30 11:36:13 +02:00
0d3896ca0d Got rid of (most of) all of the warnings. 2019-05-30 11:26:13 +02:00
711d028e90 Added effect "confetti". Closes #16. 2019-05-30 11:12:40 +02:00
2f58fd14d0 Splitting the code into single files is done. \o/ 2019-05-30 00:49:54 +02:00
76802ffa78 Lots of re-organizing code and stuff. 2019-05-28 21:19:35 +02:00
2cbb981eea STarted reorganizing files into proper .h and .cpp files. 2019-05-28 05:46:25 +02:00
ce0c834326 Arduino IDE -> PlatformIO 2019-05-27 21:17:05 +02:00