Modules
This module should provide some simple macros that allow to define the led strip and to update it. The code you would write (in livebook) would look something like the following
This module is a small wrapper around hte Fledex.Scheduler library and adds Fledex specific aspsects into the scheduler.
Protocol that can be implemented to convert from some kind of color representation
This module defines the conversion from RGB to HSV.
Most functions are reimplementations from FastLED. Here is a detailed explanation of those functions: https://github.com/FastLED/FastLED/wiki/High-performance-math
Module defininig an hsv2rgb/2 conversion following the rainbow
color map.
Spectrum color conversion from HSV to RGB
Definitions and functions to perform color corrections
Color correction depending on the hardware used
Color temperature values
A collection of color functions (namely rainbow and gradient)
This module represents the color representation for colors encoded in the HSL (hue, saturation, lightness) color space
This module represents the color representation for colors encoded in the HSV (hue, saturation, value) color space
This module implements a KinoRender that converts a Fledex color to a markdown
representation that can be used in a Livebook and allows nicer rendering of return
values. Just return an instance of this module
This module is a bridge between color name modules and the Fledex.Color
protocol. It uses the Fledex.Config to know about the configured colors
This module defines all the named colors in the CSS standard, see: https://drafts.csswg.org/css-color/#named-colors
This module defines the standard interface (behaviour) for color names modules which they should implement.
Some utility functions that can help when loading color names from a CSV file
This module allows to easily create color name modules (implementing the
Fledex.Color.Names.Interface behaviour) by simply using this module. Use
it in the following way
This module defines all the named colors in the RAL Design System Plus, see: https://en.wikipedia.org/wiki/List_of_RAL_colours#RAL_Design_System+
This module defines all the named colors in the SVG standard, see: https://www.w3.org/TR/SVG11/types.html#ColorKeywords
This module defines a couple of types related to color names
This module defines all the named colors specified on Wikipedia, which is a collection of various sources. See
This module represents an RGB color. Fledex does commonly use a {r, g, b}-tuple, but
this module makes the purpose more clear.
This module represents an RGBW color. Fledex does commonly use a {r, g, b}-tuple, but
this module allows to also set the white (:w1) or even a secondary white color (:w2)
led commonly found in modern led strips
(e.g. WS2813B-RGBW).
A couple of color related type definitions.
This component creates a clock
A component that will draw a single "dot".
This interface needs to be implemente by a compoenent. It should be noted that a component is always an animation.
This components receives some color information through PubSub and colors the leds accordingly.
This is only an example component to demonstrate how a component could look like. The component is not properly tested no major effort will be spend on getting this to a better state.
Utility functions that are useful when defining components
This module gives access to configure Fledex at runtime.
This is a dummy implementation of the Driver that doesn't do
anything (similar to a /dev/null device). This can be useful if you
want to run some tests without getting any output or sending it to hardware.
This driver collects the led definitions and transfers them through PubSub
to somewhere else where they can be repainted through the Fledex.Component.PubSub
component
This module is the base for SPI based drivers.
Utility functions for the SPI drivers
This module is a concrete driver that will push the led data through an SPI port.
This module is a concrete driver that will push the led data through an SPI port. It is mainly intended for WS2812 led strip,
This interface defines the @behaviour for drivers. They can be
dummy implementations like a driver that dumps the output to IO,
wich can be useful for testing without real hardware.
A proper implementation probably opens a channel (if not already open)
to the bus (like SPI) and sends the data to the bus.
This modules manages a (set of) concrete driver(s).
This is an effect that will set the intensity of the LEDs according to a Bell curve distribution.
This is an effect that will dim all the leds.
This module defines the interface for an LED effect. Effects can be used in Animations. Examples are
An effect that will offset the colors.
This effect will apply a rotation to the leds
This is an effect that will slowly desolve the animation. Once it has desolved completely the effect will (by default) inverse itself and the leds will reappear.
This module defines a GenServer that manages the LED strip (be it a real one with the
Fledex.Driver.Impl.Spi or a virtual one with e.g. the Fledex.Driver.Impl.Kino).
This module allows to define a sequence of Leds. You first create the new sequence of leds
by calling one of the leds functions.
This module starts and supervises all the services required for running
animations. You rarely will use this module directly, but rather use it
through the Fledex DSL.
This is the supervisor for an led strip and all it's workers, like :animators, :coordinators, and :jobs
Some utilities related to the animation system.
This module collects functionality around clustering and to connect several Fledex instances together. This allows to do some processing on one node and to pass some pixel definitions to another node to display them there.
The module is only intended to be used by the Fledex module.
This module collects all useful guards. If you want to use one of them
you need to import this module.
This module collects all functions that are about publish and subscribe (PubSub) functionality.
Mix Tasks
Generate documentation for all the available Fledex colors from various known color modules
See Fledex.Config.known_color_modules/0 for more details.