Files
WLED_MM_Infinity/usermods/usermod_v2_weather
Ewoud c928df9d70 Usermod class vars pt3:
Moved initDone, addToConfig and readFromConfig to Usermod superclass

Updated cleanup procedure:

Part 1
- remove bool enabled = false/true (now default false)
- remove static const char _name[] and _enabled[]
- add constructor which calls superclass (temp?): XXXUsermod(const char *name, bool enabled):Usermod(name, enabled) {} 
- replace _enabled with "enabled"
- remove const char PROGMEM init for  _name[] and _enabled[]
Part 2
- Remove bool initDone = false;
- addToConfig: replace createNestedObject with Usermod::addToConfig(root); JsonObject top = root[FPSTR(_name)];
- readFromConfig: replace !top.isNull and enabled with bool configComplete = Usermod::readFromConfig(root);JsonObject top = root[FPSTR(_name)];

See Temperature, MPU6050 and weather as examples (rest to be done)
2023-03-16 15:41:23 +01:00
..
2023-01-12 17:32:11 +01:00
2023-03-16 15:41:23 +01:00

Usermods API v2 example usermod

In this usermod file you can find the documentation on how to take advantage of the new version 2 usermods!

adding usermod specific effects

This usermod also provides an example on how to add your own effects in a usermod.

  • the new effect code is in this function, similar to other effects fx.cpp:
//effect function
uint16_t mode_2DWeather(void) { 

....

  return FRAMETIME;
}
static const char _data_FX_MODE_2DWEATHER[] PROGMEM = "Weather@;!;!;2;pal=54"; //temperature palette
  • then activated in the usermod setup function
class WeatherUsermod : public Usermod {
  public:
    void setup() {
      strip.addEffect(255, &mode_2DWeather, _data_FX_MODE_2DWEATHER);
    }

Installation

Copy usermod_v2_example.h to the wled00 directory.
Uncomment the corresponding lines in usermods_list.cpp and compile!
(You shouldn't need to actually install this, it does nothing useful)